DOSEIの日記

技術メモ+日常ログ

#11 仮想マシン

コンパイラがターゲットマシンの実行可能バイナリをはいてもいいんだけど、それよりは仮想マシンに対する中間言語みたいなものを目的コードとして出力するほうが、本質的だし、楽。
基本的にスタックマシンとし、簡単な命令だけ用意。ロード・ストア、演算、分岐など
PL/0'は関数ブロックが入れ子に出来る。関数より上位のレベルの変数がアクセスできる。そこで、実行時の記憶管理としてレベル情報を保持しないといけない。ウィンドウと呼ばれる手法を使う。