読者です 読者をやめる 読者になる 読者になる

プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

構造体を扱うライブラリの構想

プチコン3号で構造体を扱うライブラリを構想中。

そんなに速度は出ないので、RPGやアドベンチャーとか、ツールのデータ保存とか、それほど速度がシビアに必要とされない用途での利用を想定中。
これから作る各種ソフトの基礎ライブラリとして使う予定。

概要は以下のとおり。

                                                                          • -

仮想メモリ空間(実体はプチコンの文字列型変数)上で、各種データ構造を扱う機能を提供する。
この仮想メモリ空間は、データの読み出し・書き込みはライブラリを通して行う。

データは、いくつかの構造をとることができる。
その構造とは、文字列、擬配列、連想配列の3つである。
擬配列は、文字列を列挙したものである。(擬配列の個々のデータを要素と呼ぶ。)
連想配列は、キー・値のペアを列挙したもので、キー・値のいずれも文字列である。(個々のキーと値のペアをKVP(キー値ペア)と呼ぶ。)
このようにすべて文字列をベースとしてデータを扱い、アプリケーション側で必要に応じて文字列を数値として解釈する、という仕組みとする。

このようにすべてを文字列ベースとすることで、データ構造の中にデータ構造を入れることができる。

また、このデータ構造とは独立して、データ構造の中に現れてきた文字列を、どんな型として解釈するかを決めた、「スキーマ」を定義することができる。
スキーマは、擬配列に順に現れる要素それぞれについて、どんな型であるかを示したもので、メンバー名と型の組を列挙したものである。スキーマそのものは連想配列である。

上記の仕組みによって、構造体の集合を扱うことができる。

また、このデータ構造の扱いは簡単で、仮想メモリ空間が単なるプチコンにおける文字列であることから、データ構造の中からデータ構造を取り出すことができる。
データ構造の中にデータ構造を入れることも簡単である。

仮想メモリ空間の永続化は、その実体の文字列をそのまま保存してもよいし、人間がデータを直接編集できるようにするためのシリアライズ/デシリアライズも提供する。
シリアライズにより仮想メモリ空間は、jsonに基づいた記法のテキストファイルに変換される。デシリアライズはその逆の変換を行う。

                                                                          • -

とりあえずいじょう。