Concurrent Clean : ABCマシン(1)
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
- 関数の結果を表示