やさしいLispの作り方: C言語で作るミニミニLisp処理系、竹内郁雄さんのこと、GC(ガベージコレクション、ゴミ集め)本で新刊が出る!
2016-02-04


ASAHIネット([URL] )のjouwa/salonから。
---
 著者の笹川さんから、献本していただきました。
 ありがとうございます。
 笹川さんの処女作とのことですが、なんと、Lisp処理系を作りながら、Lispを解説する本です。\(^O^)/
 こういうLisper, Lispファンがいるのは、心強いし、うれしい限り。
 処女作、おめでとうごいます。\(^O^)/

[URL]
やさしいLispの作り方: C言語で作るミニミニLisp処理系 [Kindle版]
笹川 賢一 (著)
カスタマーレビューを書きませんか?
Kindle 購入価格: ¥ 500
プライム会員: ¥ 0 (Kindle 端末上のストアから、無料でお読みいただけます)
 プライム会員は、無料なんですね。

 さっそく拝読しました。
 テンポのよい会話調です。ポイント毎に、ちゃんと図やソースを示して解説があり、とても読みやすくわかりやすいと思いました。
 Lispの仕様としては、非常に小さな仕様のLispです。その分、はっきり何をどうやっているのか、はっきりわかります。
 C言語といっても、ポインタは使わず、配列でやっていて、わかりやすくなっています。
 小さなLispだけど、GC(ガベージコレクション、ごみ集め)は、ちゃんと実装してあります。GCって、どうやってるの?と思っている人は、読むと理解できるでしょう。
 Lisper(Lisp屋)、Lispファンは、大体、自分でLispの処理系を実装した経験があるんです。私の周りの人間は、そうです。
 LispをJava, C#, D, Goのような、CGがある言語で実装するならいざ知らず、普通は、自分でCGも実装します。
 それで、昔から、ぼくが言っているのは、「Lisperのパラドックス」あるいは「Lispのパラドックス」。
 50年ほど前、世界初(きっと)のGCを備えたプログラミング言語Lispによって、プログラマはメモリ管理から解放され、楽にプログラムを書けるようになったけれど、Lisperほど、メモリ管理に詳しい人たちはいなかったし、いまだにその傾向は強いと思います。
 その点、最初からGCを備えているPerl, Ruby, Python, PHPなどスクリプト言語やJava, C#, D, Goといった言語でプログラミングを始めた人は、メモリ管理を知らない人が多いし、これらのGCを備えた言語でも、CやC++と違った意味で、メモリリークが起きることがあることも知らないから、メモリ消費が多いプログラムを書いてしまって、それに気づいてないことがあります。
 もっというと、GCのないCやC++で、メモリ管理ができないのにプログラムしている奴、C++にはデストラクタがあるのに、ちゃんとメモリ管理ができない奴、メモリの所有権も知らず、意識もせず、C++のコンテナを使っている奴、スマートポインタを使えない奴、「お前ら、みんな死ね!」の世界がありますね。
 CG本の世界は最後に。

 「やさしいLispの作り方」に戻ると。
 evalのところで、特殊形式という言葉がいきなり出てきて、説明なしなのは、 ちょっと戸惑うかもしれませんね。evalの補講で、FSUBRに特殊形式の説明と思われるものが出てはきますけど。

 気づいた誤植。
 evalのところ。

 ほかにも(setq a 1)なんてももそうですね。

 ほかにも(setq a 1)なんてものもそうですね。

GCのマークのところ。

 途中で(g y)とい関数の計算

 途中で(g y)という関数の計算

 著者の笹川さんサイト。
[URL]
好きい夢 Joyful Programming

 好きい夢は、Schemeの当て字でしょう。Schemeは、Common Lispと並ぶ、Lispの2大方言の1つ。どちらも、公式に規格化されています。
 ぼくは、Schemeのことも、たくさん書いているので、上の検索窓に「Scheme」と入れて検索してください。
 自分で検索してみたら、ああああああああああああ、なんということ。
[URL]

続きを読む


コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット