第23回プログラミングおよびプログラミング言語ワークショップで 発表した以下の論文の OCaml のソースコード: 藤井舞花 浅井健一 control/prompt の仮想機械導出 19 ページ コンパイルするには OCamlMakefile が必要です。eval*/Makefile に OCamlMakefile のパスを書いてください。そして make してください。 インタプリタを実行するには ./interpreter とし、標準入力から プログラムを入力します。 入力例: prompt (2 * prompt ((control h -> 3 * (h 2)) + (control g -> (fun x -> x + 1) (g 4)))) eval1/ 図1: control/prompt のための definitional interpreter eval2/ 図2: 非関数化したインタプリタ eval3/ 図3: 継続をリスト化したインタプリタ eval4/ 図4: スタックを導入したインタプリタ eval5/ 図5: 継続を非リスト化したインタプリタ eval6/ 図6: 関数化したインタプリタ eval7/ 図7: 値とスタックを結合したインタプリタ eval8/ 図8: 命令に分解したインタプリタ eval9/ 図9: CPS 変換したインタプリタ(2CPS) eval10/ 図10: 非関数化したインタプリタ eval11/ 図11: 命令列を cons リスト化したインタプリタ eval12/ 図13: 継続と trail をリスト化したインタプリタ