Lisp から C 言語への変換器を作ってみたいと思います. 遊べる程度には機能があって,変換はできるだけ楽をするという方針でいきたいと思います. Lisp の仕様 まず入力となる Lisp の言語仕様を決めます. データ型 データ型はシンボル,整数(即値のみ),ペア,あと手続き(クロージャ)です. nil はシンボルで空リストと真偽値の偽を表すとします. 構文 構文を以下のように決めました. 定数リテラル 変数 (quote c) (lambda (var ...) body) (if test then else) (set! var expr) (begin form0 form1 ...) 関数適用 (fn arg ...) 細かいところは以下のようにします. 定数リテラルは整数のみ quote で指定できる式はシンボルか整数だけ.リストは cons で作る. lambda bod