タイガーブック
https://gyazo.com/768b5a91074f758d492fa7cb607d0db2
『最新コンパイラ構成技法』
2009/10/1
Andrew W. Appel 著
神林靖 翻訳
滝本宗宏 翻訳
翔泳社
/mrsekut-book-4798114685
website
実装言語はMLだが、関数型スタイルでの実装方法と、命令形スタイルでの実装方法が紹介されていたりする
実際には関数型言語でも命令形言語でも同じものを実装できるのでそこは本質ではなく、単に選択の話ですmrsekut.icon
処理系を作る際に、再代入を用いたアプローチとそうでないアプローチと、みたいなノリ
ある観点については詳しいが、ある観点については知っているものとして前提が扱われている感じがするので、一発目からこの本を読むのは難しそう
『コンパイラ 作りながら学ぶ』や『コンパイラとバーチャルマシン』は易しい
両方Javaだった気がするけど
第1章
コンパイラのフェーズを細かく分割することで再利用性を高めることができる
目的のマシン語を変更するときはここだけ変えればいい
コンパイルする元の言語を変えるならここだけを変えればいい
という具合
表示的意味論、属性文法
第2章
LexerとParserを個別に実装する理由
正規表現
決定性有限オートマトン
p.19~から再読 する
第3章
有限オートマトンは括弧のバランスを識別できない
そのこころは?mrsekut.icon
文脈自由文法
再帰下降構文解析
第4章
抽象構文
第5章
意味解析
記号表
型検査
第6章
関数の実装
Call Stack
第7章
AST→IR (中間表現)
第14章
OOP
第15章
関数がた言語
第16章
パラメトリック多相の実装
型推論
Haskell実装
https://github.com/unnohideyuki/Tiger-in-Haskell
#スクボ読書化した本