Concurrent Clean : ABCマシン(1)

Functional Programming and Parallel Graph Rewriting (International Computer Science Series)
http://www.cs.ru.nl/~clean/contents/Addison__Wesley_book/addison__wesley_book.html
この本に、CleanのABCマシンの仕様がまとまっているみたい。
Cleanのコンパイラは、CleanのソースをABCコードに変換するだけで、ABCコードからオブジェクトファイルを作るのは、コードジェネレータの仕事なのだけれど、このコードジェネレータの部分を置き換えれば、CleanをJVMで動かしたり、インタプリタを作ったりすることができるはず。
ということで、徐々にABCマシンの仕様を読み込んでいこうと思っています。

      • -

ABCマシンは、以下の要素からなっている(p.321より)

gs = graph store
書き換えられるグラフの領域
ps = program store
実行される命令列の領域
pc = program counter
実行される命令のポインタ
as = A(rgument)-stack
参照するグラフのノードのスタック
bs = B(asic Value)-stack
基本値を効率的に取り扱うためのスタック
cs = C(ontrol)-stack
リターンアドレスのスタック
ds = descriptor store
使われたシンボルの情報の領域
io = I(nput)/O(utput) channel
関数の結果を表示