============================================================================== == 単純な字句解析器・構文解析器・プリティプリンタ ============================================================================== 文献[1]p.150-151問11.7の解答例である. 「MLでプログラミングしてみることを勧める.」とあったのを受けてML系の言語の1つであるOCamlを用いてプログラミングされている. 字句解析と構文解析器にはcamlp4を用いている[2]. コマンドラインから ./build とタイプすると lambda という実行ファイルが生成される.実行すると (vi)のような対話が可能である. 以下の式も構文解析可能である. let factorial = (fix (fn x => (fn n => (case n of 1(x) => 1, 2(y) => (x (n - 1)))))) in (factorial 10) end; camlp4のインストールにはopamを使うと良い. opam update opam install camlp4 ocamlインタプリタで実行するときは以下をタイプすると良い. #camlp4o;; #load "camlp4o.cma";; #load "pa_extend.cmo";; [1] 大堀 淳, ジャック ガリグ, 西村 進: コンピュータサイエンス入門 アルゴリズムとプログラミング言語, 岩波書店 (1999) [2] Daniel de Rauglaudre: Camlp4 - Tutorial, version 3.07 (2003). Available from https://caml.inria.fr/pub/docs/tutorial-camlp4/index.html 2020/08/12 作成