tombo2-progress’s diary

できるだけ毎日1時間を切り取ってここに晒す。誤字脱字気にしない。日本語が崩壊するのも気にしない。最終的にまとめて本ブログに書く

コンパイラ学習続き

Ruiさんのコンパイラ本作成中のページの現時点部分はいくつか実装し、内容はわかったので、circle ciでテストを回すようにしたりしていた。circle ci使ったことないけど、結構便利(雑)。

今後の方針

コンパイラの学習をどうするのか決めた.
まずはC++でCの言語仕様の一部をLLVM IRに変換することにした。

再帰降下でがりがりスクラッチで書いていくのではなく、yacc, lex(実際はbison, flexかも)を使ってまずは動かせるところまでをやっていく。

教材探し

大学のときに買ったいわゆるドラゴンブックがあるけど、やはりこれだけでは厳しいので、いくつか本を用意した。 といってもほとんどは昔買ったものを引っ張り出してきた。

  • コンパイラの構成と最適化

    • 勧められたので買った
    • バックエンドの最適化の内容がきちんと書かれているものはこの本くらいしかないらしい(日本語の本としてはってことだと思う)。
    • Amazon CAPTCHA
  • 言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装まで

  • きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~

    • 狐程度の知能があるか試される。
    • 公式のチュートリアル読むのでも良いけど、概要をさらっと把握するのには良さそう
    • Amazon CAPTCHA
  • LLVM/Clang実践活用ハンドブック

    • 本棚にあった。いつ買ったかすら思い出せない
    • Amazon CAPTCHA

ちょろっと概要を読んだので、それをまとめたら、作業としてはbison, flexを使って簡単な文法をパースする予定

Oreillyの"flex & bison"が良さそうと思っている