Mozartのデータフロー変数すげぇ

コンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン・コンピューティング)

コンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン・コンピューティング)

Mozartの変数がすごい。

こんなコードがあたりまえに書ける。

% Queueオブジェクトを作る
Q = {New Queue}

% キューにXを追加
{Q add(X)}

% Xを10に束縛!!
X = 10 

これでキューに10を追加したことになる。

つまり変数宣言と変数束縛を別の場所で行なうことができる。あえてC言語で言うと、ポインタを渡しておいて、あとからそのポインタに代入する、というのに似た挙動をする。
ただし、

  • 一度束縛したら、もう変更できない
  • 未束縛の変数を使おうとすると、そこで停止して他のスレッドが変数を束縛するのを待つ

という違いがある。

で、これを使うと、どんなことができるのかはよく分からない。とりあえず、並行プログラミングが楽になる予感。