コンパイラ学習続き
Ruiさんのコンパイラ本作成中のページの現時点部分はいくつか実装し、内容はわかったので、circle ciでテストを回すようにしたりしていた。circle ci使ったことないけど、結構便利(雑)。
今後の方針
コンパイラの学習をどうするのか決めた.
まずはC++でCの言語仕様の一部をLLVM IRに変換することにした。
再帰降下でがりがりスクラッチで書いていくのではなく、yacc, lex(実際はbison, flexかも)を使ってまずは動かせるところまでをやっていく。
教材探し
大学のときに買ったいわゆるドラゴンブックがあるけど、やはりこれだけでは厳しいので、いくつか本を用意した。 といってもほとんどは昔買ったものを引っ張り出してきた。
コンパイラの構成と最適化
- 勧められたので買った
- バックエンドの最適化の内容がきちんと書かれているものはこの本くらいしかないらしい(日本語の本としてはってことだと思う)。
- Amazon CAPTCHA
言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装まで
- 構文解析、構文木に関する情報がまとまっていて良い
- Amazon CAPTCHA
きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~
- 狐程度の知能があるか試される。
- 公式のチュートリアル読むのでも良いけど、概要をさらっと把握するのには良さそう
- Amazon CAPTCHA
LLVM/Clang実践活用ハンドブック
- 本棚にあった。いつ買ったかすら思い出せない
- Amazon CAPTCHA
ちょろっと概要を読んだので、それをまとめたら、作業としてはbison, flexを使って簡単な文法をパースする予定
Oreillyの"flex & bison"が良さそうと思っている