「言語実装パターン」を読んだ

ブログの更新が例によってかなり久々になってしまった。皆様お元気ですか。暑すぎてバテてないですか。

近況といえば、ICPCの国内予選は(僕が微妙にトチるも)どうにか通過してAsia Regionalに行ける事が決まって、かと思えばすぐ大学の期末試験があった。そして、それが終わり、どうにか夏休みに入ったかと思えば、きゅうりが家に来て、JOIのみんなで遊びに行ったりした。そんな感じだったので、夏休み五日目ぐらいなのにもう終盤ぐらいの気分だ。

しかしきゅうりさん強いなぁ…僕も競プロ万年初心者からいい加減脱出したいですねぇ…と、改めて思わされたので、残りの夏休みの間、競プロもどうにかがんばっていきたい。

言語実装パターン

で、久々に技術書を一冊読んだのだが、この本もご多分に漏れず、受験の夏の終わり頃に買ったという本である。既にいい加減に眺めるぐらいはした気がするのだが、何も身についていないと思ったので今一度最初から読んだ。

過去のブックレビューが全然内容に触れていない気がしてきたので、今度はちゃんと内容について触れる。

ドラゴンブック(コンパイラ―原理・技法・ツール)やタイガーブック(最新コンパイラ構成技法)か、そうでなければ、和製のよくわからないインタプリタ言語を作って満足する書籍の二者択一になりがちな言語処理系関係の書籍で、この本は見事にその中間を行く本だと思う。以前処理系に興味を持った頃はこういった本はなかったので、その頃に存在していてくれればなぁと思わされた。

また、これらの書籍が原則、多くの手段を取り上げる事にあまり紙面を割いていないのに対して、本書はデザインパターンという切り口で複数の手段を与えてくれるという点も良い。(すいません、軽くハッタリをかけました。あんまりこの手の本読んだことないです…)

この著者のTerence Parrという人はANTLRというパーサージェネレータを作っている人であり、ANTLRというのは、yacc, bisonのLRに対して、代表的なLLのパーサーである(このへんの知識はあやふやなのであまりツッコまれると死ぬ)。だからかどうかはあまり知らないが、この本も「LL以外考えられないネ!」といったノリで、LRについては単語レベルですら登場しない、すごい…という点については注意が必要である。

今度はとりあえずきつねさん本を読む。あと怖いC++の本もいろいろ揃えたので夏休みを使って読んでいこうと思う。Effective C++ももう一度読み直したい…