giantneco’s blog

技術メモ

最新コンパイラ構成技法 #1

色々復習したいことがあり、最新コンパイラ構成技法を読むことにした。

ここしばらくの作業だとコンパイラのフロントエンド部分しかしていないし、 さらに言うと機能追加が主な作業で既存のコードにちょくちょく修正を入れるだけで それほどコンパイラ屋らしい仕事はしてない。 (仕事としては一区切りついたので、この件についてもそのうちまとめたい)

かなり怪しい部分もあるので一通り読みたいところではある。

第1章では次のようにおおまかなコンパイルの流れについて説明している。

  • 字句解析
  • 構文解析
  • 意味動作
  • 意味解析
  • フレーム割り付け
  • 翻訳
  • 正準化
  • 命令選択
  • 制御フロー解析
  • データフロー解析
  • レジスタ割付け
  • コード生成

この分類だと、ここ最近の仕事ではいわゆるコンパイラフロントエンドと呼ばれる字句解析から意味解析までを中心に扱っていた。 また意味解析はあまり聞き慣れない用語で、構文解析に含まれるんじゃなかろうかとも思う。 フレーム割付けからは下は概念としては知っているが、実際に手を動かしたことがあったかどうか。 動くものが作れれば嬉しい。

実装に使う言語をどうしようかちょっと考え中。本は ML 使っているが、OCaml にするか、それともいっそ Haskell にしてみるか…