[Glue!] Accessing value & Name


データの名前と値

Glue Logic の基本要素は名前とそれに割り当てられた値とのペアであり、 取り扱うデータはすべて名前によって参照される。 名前は英字と数字からなる識別子であるか、 あるいは複数個の識別子をピリオドで区切って連ねたものである。 但し、先頭の識別子だけは英字で始まらなければならない。 なお、一般のコンパイラ言語の変数が持つような、 データ型やデータのサイズなどといった概念は存在しない。 この点で、一部のインタプリタ言語の変数に概念的に近いものがある。

すべての名前は、それぞれひとつの値を持つことができるとともに、 その値が変化した時にデータの変更通知を送るべきエージェントのリストなど、 各種の管理用の情報を持っている。 これらの管理情報は、その名前の属性として 管理・参照できる。

Glue Logic の扱うデータはすべて共有データであることから、 複数のデータの間に常に一定の関係が要求されることがあるため、 同時に複数のデータを参照・変更することができるようになっている。 また、排他制御を実現するための、 特殊な参照の方法も用意されている。

データは、 整数・実数・文字列・リンク・演算式のうちから任意の型の値をとることができる。 リンクとは他のデータの名前へのポインタであり、 演算式とは Glue Logic 内の名前と定数のみからなる任意の式である。 なお、ある名前の値の型は一定である必要性はない。

また、名前はどのような値も持っていない状態を取る事ができる。 この状態を unbound と呼ぶ。


構造を持つデータ

構造化されたデータは、データの名前を階層化することによって実現する。 階層化された名前とは <識別子>.<識別子>.….<識別子> のように識別子がピリオドで繋げられたもので、 ファイルのパスネームの様に、先頭に近い識別子ほど大分類を、 最後の識別子がひとつひとつの単純型データの値を指示する。

データの変更を検出した時の通知メッセージは、 構造を持ったデータに対しても登録することができる。 この場合は、指定した構造に含まれるデータのうちひとつでも変更されれば、 その構造を持ったデータが変更されたとみなされて通知メッセージが送られる。

Glue Logic が管理するデータには、 コンパイラ言語のような型の宣言や定義の概念はない。 データ毎に異なった構造を持っても良いし、 その構造が時間の経過にしたがって変化しても良い。

一般のコンパイラ言語には構造を持ったデータ型として構造体と配列とがあるが、 Glue Logic では 単純データに型が存在しないため、 これらの区別はない。 Glue Logic では識別子として数字だけからなる文字列を用いることができるので、 これを使えば配列的なデータ構造を表現できる。 但し、この場合にも数字列は文字列として扱われるため、 表現が異なれば同じ値を表現していても異なった要素 として扱われる。

 [M.T. HomePage]  [written & copyrighted by Masayuki Takata]