コンパイラ読んだ
コンパイラ [コンピュータサイエンス教科書シリーズ] (コンピュータサイエンス教科書シリーズ 8)
- 作者: 中井央
- 出版社/メーカー: コロナ社
- 発売日: 2007/07/01
- メディア: 単行本(ソフトカバー)
- クリック: 6回
- この商品を含むブログを見る
コンパイラ―原理・技法・ツール (Information & Computing)
- 作者: A.V.エイホ,R.セシィ,J.D.ウルマン,M.S.ラム,Alfred V. Aho,Jeffery D. Ullman,Ravi Sethi,Monica S. Lam,原田賢一
- 出版社/メーカー: サイエンス社
- 発売日: 2009/06
- メディア: 単行本
- 購入: 1人 クリック: 128回
- この商品を含むブログ (27件) を見る
- 作者: Andrew W. Appel,神林靖,滝本宗宏
- 出版社/メーカー: 翔泳社
- 発売日: 2009/10/30
- メディア: 大型本
- 購入: 6人 クリック: 165回
- この商品を含むブログ (26件) を見る
この辺が定番だと思うのだけれど,まだまだ敷居が高かったのでとりあえずこれを読んでみた. 監修は中田育夫という人です. 中田さんはのRubyの仕様書のISO規格に関わっている方で,日本でコンパイラで有名な方です. 学生時代にMatzさんは,中田さんの研究室に所属していて,恩師でもあるそう. ちなみに中田さんのコンパイラ本はこれ.
- 作者: 中田育男
- 出版社/メーカー: 朝倉書店
- 発売日: 2009/11/01
- メディア: 単行本
- 購入: 2人 クリック: 166回
- この商品を含むブログ (10件) を見る
これも日本人が書いたコンパイラ本としては定番らしい.
話は戻って今回の本ですが,大きく「字句解析」「構文解析」「意味解析」「実行時環境」「仮想計算機とコード生成」の章がある. lexとyaccを実際に使いながら簡単な字句解析や構文解析,意味解析などを学び,ミニ言語をつくったりする. 教科書として書かれているので,大学の講義レベルで,それぞれの章のテーマについて基本的な説明から始まり,演習問題とその解答もあって勉強になる. 以下,簡単な章の内容の紹介です.
字句解析
まず字句解析については,lexを使いながら,簡単な字句解析やC言語のソースにたいして,予約語,識別子の認識やクロスリファレンサをつくることが学べる. オートマトンや状態遷移図についても書かれている.
構文解析
いくつかの上向き構文解析,下向き構文解析などについて書かれている.四則演算やミニ言語の開発が学べる.
意味解析
トークンの並びが文法に合っていても,例えばC言語では,宣言された変数でなければ使用することができないなど,コンパイラはそれを発見しなければならない. このようなチェック処理が意味解析と呼ばれる. 例えば,どのような変数が存在するのかなどの管理を行なう入れ子型の静的スコープを扱った記号表の実装が学べる.
実行時環境
実行時のメモリ管理の仕方について書かれている.特に活性レコードと呼ばれる,関数呼び出しに対するメモリ割り当てられるメモリ領域について説明されている.
仮想計算機とコード生成
PL/0言語を用いて仮想計算機のためのコード生成について学べる.
以上です.次は,
言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装まで
- 作者: Terence Parr,中田育男,伊藤真浩
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/12/24
- メディア: 大型本
- 購入: 5人 クリック: 333回
- この商品を含むブログ (13件) を見る
理論よりも実践的に書かれているらしい,この辺を読もうかなと思っている.