[Glue!] Accessing value & Name


英字と数字からなる識別子

こんなものである。
abc a123

一方、こんなものは許されない。
x_y_z $a123


複数個の識別子をピリオドで区切って連ねたもの

こんなものである。
object.substructure.aspect
array.0001.0002.0003
dictionary.EtoJ.one


同時に複数のデータを参照・変更

例えば、搬送系を表現するデータ群として、 A という場所にあるものの数を収める変数 NumA と、 B という場所にあるものの数を収める変数 NumB を考える。
ここで、 A にあるものを B に移動することを表現しようとする場合には、 NumA を 1 減らして NumB を 1 増やせば良いが、 この時にどの瞬間をとっても NumA + NumB の値は一定でなければならない。
このような操作を行なえるようにするためには、 ひとつのトランザクションで複数の変数の値を書き換える事ができなければならない、 という事を意味している。
これは、一つのトランザクションによって行なわれる操作は、 他のトランザクションによって行なわれる動作に割り込まれることは無いという 前提に基づいている。


単純データに型が存在しないため、これらの区別はない

ひとつの構造を構成する複数の要素のあいだに、 データとして差異があるような構造が構造体であり、 すべての要素が論理的に均一であるような構造が配列であると考える事ができる。
しかし Glue Logic の場合にはデータに型という概念がないため、 構造を構成する要素に対しても均一であるとかないとかの議論をする事ができない。 このため、配列や構造体を全く同じからくりで実現する事ができるのである。


表現が異なれば同じ値を表現していても異なった要素

たとえば などはすべて同じ値を持つが、異なった表現を持つことがわかる。
Glue Logic のように数字列を文字列として解釈する場合には、 これらの例はすべて異なるものであると解釈される。
なお、 Glue Logic は識別子として使う文字列として英字と数字だけを許している。 この制限により、上記の例では上の 3 例は許されるが、 下の 1 例は小数点を含んでいるために エラーにされたり期待通りに動作しなかったりする。


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