やさしいLispの作り方: C言語で作るミニミニLisp処理系
価格: ¥0
「重要なお知らせ」(平成29年8月4日以後、下記の問題は解消しております。)
付録ソースコードの保存場所であったNiftyが平成28年11月10日をもって
サービスを停止してしまいました。このために巻末のダウンロード先を
クリックしても「ページが見つかりません」と表示されます。
新たな場所にソースコードを移転しました。
見つかりませんと表示されたアドレス中の先頭の
http://homepage1.nifty.com/~skz/Scheme
とある部分を
eisl.kan-be.com
と書き換えて再度エンターキーを押してください。
また著者の新ホームページは
http://eisl.kan-be.com/
となりました。
うまくいかない場合にはホームページにあるメールアドレス
までご連絡ください。お手数をかけて申し訳ありません。
Lispというコンピューター言語の処理系の作り方をやさしく解説しています。C言語で実装しており全ソースリストへのリンク先も記載されています。
C言語のソースを改造しながらLispの仕組みを理解できるようになっています。内容は講義調と対話が混在しており気軽に読める物語風です。
対象読者
Lisp処理系の仕組みを知りたい学生さん、アマチュアプログラマ
学習用教材LispのMonoLisインタプリタのソースが付属しています。
これは学習を意図したものでありメモリ効率、実行効率は考えられていません。
Cで書かれたLispの多くはセル構造をポインタを使って実装しています。これは初心者にはわかりにくりものです。そこでMonoLisは敢えて配列を使っています。
ですからポインタを持たないPascalのような言語にも容易に移植可能です。
紛らわしいレビューがついてしまったので補足しますと、GC(ガベージコレクション)付きで1000行ちょっとに収めるのには苦労しています。小さくてわかりやすいということを目標としています。行数が多いコードに価値を求めるのならば本書は購入なさらないでください。小さく素朴なインタプリタを示すことにより、読者の方には本格的なインタプリタ、コンパイラを作るための足掛かりとしていだたきたいと思っています。そこに価値を見出してくださる方にお買い上げいただきたいと願っております。
目次
はじめに
出会い
第1講 Lispを動かしてみる
第2講 セルの正体
第3講 急がば回れ
第4講 S式の読み取り(read)
第5講 おうむ返し(print)
第6講 いよいよ頭脳に着手(eval)
準備環境
evalに着手
アトムの場合
リストの場合
補講(eval)
第7講 ゴミ集め
マーク
スイープ
第8講 成長
再会