今日読み直した本 - 『lex&yaccプログラミング』

2009/01/10

「CSS パーサ見つからない」な話を書いたもんだから,ほんの少しだけ責任を感じて,lex/yacc の本なんかを読んでみました。というか,もうかなり読み込んでるので,確認程度だったんですけど。

lex&yaccプログラミング ジョン・R レビン, ドウー ブラウン アスキー 1994年

6年くらい前,コンパイラ・コンパイラにものすごく執心していたことがあって,その手の本をかなり読んでいた時期があります。当時はへんてこなインタプリタを作って楽しむくらいだったんですけれど,それでもプログラミング言語を自分で設計するっつのは,想像以上に楽しかった。

本書は,あたしがコンパイラ・コンパイラを知るきっかけになった本です。町の本屋でいつまでも売れない本があったから,買って読んでみたのでした。たしかに,町の本屋では売れないわな。lex/yacc というのは,コンパイラの字句解析部と構文解析部のルーチンを自動生成してくれるツールです。コンパイラを作るコンパイラだから,コンパイラ・コンパイラ。FreeBSD なんかでは lex/yacc がそのまま使えるんですけれど,Linux を初めとした GNU 界隈では lex/yacc をもう少し高機能にした flex/bison というツールを使うのが一般的なんだと思います。

ちゃんとしたプログラミング言語を作るなら,少なくとも「ドラゴン本」を読まなきゃいけないんだとは思うんですけれど,その理解のためにも,現物の lex/yacc の使い方を見ておくのは,有意義なんじゃないかと思います。

コンパイラ 原理・技法・ツール 1 A. V. エイホ, J. D. ウルマン, R. セシィ サイエンス社 1990年

ドラゴン本は高いし重いしで,なかなか買う機会がない。いつも立ち読み。

それはそうと,今日本屋でコンパイラ・コンパイラ関連の本を探したんですけれど,上記の本も含めて,影も形もなくなっていました。あたしが覗く本屋は大きいところが3軒くらいあるんですけれど,どこにも置いてない。Amazon も新品は置いてない。こりゃ受難だ。

lex/yacc の代わりに,Ruby でプログラミング言語を作るってな企画モノ(Ruby には Racc という yacc 実装がある)の書籍があるくらい。こちらも6年前にゴリゴリ読んでました。

Rubyを256倍使うための本 無道編 青木峰郎 アスキー

こんなに参考書籍がない環境で,今時の言語開発者さんの卵はどんな本を読んでるんでしょう……。もう言語開発者とか要らないんだろうか。たしかに,増えすぎたっちゃ増えすぎた。そういえば,上記書籍を知人(かなり若い人)の前で読んでいたところ,コンパイラ・コンパイラという言葉をそもそも知らなかったみたい。あたしが入れ込んでたから,一般的でないコトを半ば常識として話してたってのもあるんでしょうけれど,プログラミング周りのリテラシが高い人だっただけに,ちょっと驚きました。世代的な違いなんだろうか……と,少し凹む感じすら……。

ともかく,コンパイラ・コンパイラの解説本がほとんどなくなっているのは,基礎技術の話だけに,ちょっとキツイ状況なんじゃないかと思っていたりします。lex/yacc 本の再販は急務だと思う。

Site Navigation
SNS Accounts (@aian)

普段はここら辺に住んでいます.