[B]プログラミング言語作成における参考本

 今回は、プログラミング言語作成における参考図書を紹介します。

バックボーンの知識


論理学を作る

戸田山 和久 
名古屋大学出版会 (2000-10)



プログラミングと関係ないじゃん!
と思うかもしれません。
しかし、この本から、言語作成における知識のバックボーンを習得できます。
プログラミング言語作成はいわば、論理学の応用です。

言語作成本を読み進める上で、
この知識は論理学のあのことを指しているんだな
と理解すると習得が早いでしょう。

※この本は必須ではありません。

2.インタプリタ言語(言語処理系)作成


プログラミング言語をつくる


前橋 和弥
技術評論社 (2009-06-20)


初めて読む本として、もっともおすすめできる本です。
lex、yaccというツールを使って、インタプリタを作成していきます。

説明の順序、解説もわかりやすく、さらに手をうごかしての作成の手順をくわしく教えてくれます。

いちおうサイトもあります<プログラミング言語を作る
が、本の方が詳しく書いてありました。


コンパイル言語作成



コンパイラ入門

冨沢 高明 (著)

この本には注意が必要です。
入門とうたっていますが、上記2冊を読み終えた程度の事前知識が必要です。
いきなり読むと、何を言っているのか、全くわからなくなってしまいます。

例えば、代入や加算などの処理を設計するために、解析木を用いるのが一般的ですが、
解説図がなく、いきなりISOで規定された記法で説明されます。説明もさらりと流れます。
従って、この本は事前知識が必要なのです。


アンチ・マイクロソフトは読んではいけません。(筆者はストレスを感じています笑)
この本は、マイクロソフト信者のための本です。C#をゴリ押ししてきます。


しかし利点もあります。
この本は、コンパイル言語を対象としているので、
説明がアセンブラまで及んでいます。

また、lexやyaccといったツールを使わずに、自力でプログラムします。

たいていの本は、ページの関係上、インタプリタ言語か、アセンブラでまるまる一冊のどちらかですので、この本は広い範囲を網羅している本と言えるでしょう。
(詰め込みすぎた感はありますが)


アカデミックな知識を得る


コンパイラ


中田 育男 (著)

これまでの内容をアカデミックに説明してくれる本です。
説明もわかりやすいです。
もし大学の教科書等を読み慣れている人でしたら、
この本から始めても良いでしょう



番外編



プログラミング言語処理系

佐々 政孝 (著)

筆者はこの本を購入してみたものの、なんのこっちゃさっぱり、わかりませんでした。


コンパイラ―原理・技法・ツール

A.V. エイホ (著), R. セシィ (著), J.D. ウルマン (著), M.S. ラム (著), Alfred V. Aho (原著), Jeffery D. Ullman (原著), Ravi Sethi (原著), Monica S. Lam (原著), 原田 賢一 (翻訳)
通称:ドラゴン本。
言語作成上で最も有名な本。
その知名度もさることながら、大量のページ数と難解な内容でも有名です。
筆者はプログラミング言語処理系の理解に失敗しているので、怖くて手が出せません。
モチベーションて大事ですもんね。