構造体を扱うライブラリの構想
プチコン3号で構造体を扱うライブラリを構想中。
そんなに速度は出ないので、RPGやアドベンチャーとか、ツールのデータ保存とか、それほど速度がシビアに必要とされない用途での利用を想定中。
これから作る各種ソフトの基礎ライブラリとして使う予定。
概要は以下のとおり。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
仮想メモリ空間(実体はプチコンの文字列型変数)上で、各種データ構造を扱う機能を提供する。
この仮想メモリ空間は、データの読み出し・書き込みはライブラリを通して行う。
データは、いくつかの構造をとることができる。
その構造とは、文字列、擬配列、連想配列の3つである。
擬配列は、文字列を列挙したものである。(擬配列の個々のデータを要素と呼ぶ。)
連想配列は、キー・値のペアを列挙したもので、キー・値のいずれも文字列である。(個々のキーと値のペアをKVP(キー値ペア)と呼ぶ。)
このようにすべて文字列をベースとしてデータを扱い、アプリケーション側で必要に応じて文字列を数値として解釈する、という仕組みとする。
このようにすべてを文字列ベースとすることで、データ構造の中にデータ構造を入れることができる。
また、このデータ構造とは独立して、データ構造の中に現れてきた文字列を、どんな型として解釈するかを決めた、「スキーマ」を定義することができる。
スキーマは、擬配列に順に現れる要素それぞれについて、どんな型であるかを示したもので、メンバー名と型の組を列挙したものである。スキーマそのものは連想配列である。
上記の仕組みによって、構造体の集合を扱うことができる。
また、このデータ構造の扱いは簡単で、仮想メモリ空間が単なるプチコンにおける文字列であることから、データ構造の中からデータ構造を取り出すことができる。
データ構造の中にデータ構造を入れることも簡単である。
仮想メモリ空間の永続化は、その実体の文字列をそのまま保存してもよいし、人間がデータを直接編集できるようにするためのシリアライズ/デシリアライズも提供する。
シリアライズにより仮想メモリ空間は、jsonに基づいた記法のテキストファイルに変換される。デシリアライズはその逆の変換を行う。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
とりあえずいじょう。