「プログラミング言語を作る」書籍情報
お詫び:本ページのURLが間違っていました。
書籍中に、http://kmaebashi.com/devlang/book/index.html とあるところ、
実際のURLは http://kmaebashi.com/programmer/devlang/book/index.html
でした。
本に掲載したURLにリダイレクトを置くことで対処いたしました。
技術評論社さんによる紹介ページはこちら。
http://gihyo.jp/book/2009/978-4-7741-3895-4
本書のテーマは「オリジナルのプログラミング言語を作る」ことです。
世の中には、現在広く使われているものだけでも、C, C++, Java, C#, Perl, Python, Ruby, PHP, Lisp, JavaScript……等々、 すでに多くのプログラミング言語が存在します。 これほど多くの言語が乱立している中で、 なぜわざわざ新しい言語なんか作らなければならないのか、と思う人も多いことでしょう。
しかし、プログラムに関しては何でもそうだと思いますが、 何かを深く知りたかったら、一番いいのはそれを自分で作ってみることです。
プログラミング言語は、プログラマが毎日使う道具です。 その道具について深く知ることは、プログラマとしては重要なスキルとなります。
一般に、すでにあるのと似たようなプログラムを新たに作ることは 「車輪の再発明」と言われ、 この業界では嫌われる傾向にあるようです。 本書でしようとしていることは、 すでにたくさんあるプログラミング言語をわざわざ作るということですから、 まさに車輪の再発明です。 しかし、車輪の再発明は、 その技術を深く知るためには実は最適な手段でもあります (時間がかかるのが難点ではありますが)。
私に関して言えば、10数年前、Cのサブセットのコンパイラを書いてみたとき、 はじめてCがきちんと理解できたように思います(その成果が 「C言語 ポインタ完全制覇」です)。
本書にて、サンプルプログラムとして作成する言語 crowbar、Diksamは、 それぞれJavaScriptとJavaを知るのに参考になるのでは、と思っています (それはつまり基本的にマネして作っているということです)。
サンプル言語crowbar、Diksamは、本書での最終バージョンでは、 言語として必要な機能は十分に備えていると思います(あくまで言語として、です。 ライブラリは貧弱です)。 言語作成に関する本はマイナーな分野とはいえ類書は結構ありますが、 本書は、こと「実践的」であるという点においてそれなりに価値があるかな、と思っています。
この手の入門書では ifやforや関数呼び出しあたりで終わってしまう本もありますが、 本書では、ガベージコレクションはもちろん、 クラスやインタフェースや例外処理やクロージャまで扱っています。 いまどきの言語を作ろうという方には参考になるのではないでしょうか。
なお、本書は基本的にWebでずっと公開してきた 「プログラミング言語を作る」の書籍版となります。 とはいえ結構な量を書き下ろしていますので、 Web版を読んだ方も買って損はありません。
ともあれ、Rubyのまつもとゆきひろさんもしょっちゅうおっしゃっているように、 言語を作るのは楽しいものです。 少しでも多くの方にこの楽しさが伝われば、と思っています。
書籍情報のページに戻る | 著者のWebページトップはこちら
ご意見、ご質問、不具合連絡等は掲示板にお願いいたします。