コンパイラフロントエンド+LLVM - 進捗1
LLVMバックエンドを使ったコンパイラを作ってみることになったので進捗を載せていく。
ある程度進んだらまとめを別記事に載せる予定。しばらくは進捗の形でやっていく。
まずは、function、statement、expression、term、factorあたりを形にするまでが目標。
言語仕様は、ISO C14のdraft(ネットに落ちていたので)を参考にする。
コンパイラフロントエンドの構成は、
- lexcial analizer(flex、lex)
- concrete syntax analizer(bison、yacc)
- abstract syntax analizer + symbol table(自作??)
- LLVM IR dumper
参考にする書籍は、
- 「コンパイラ入門―構文解析の原理とlex/yacc、C言語による実装」(山下 義行)
- 「きつねさんでもわかるLLVM ~コンパイラを自作するためのガイドブック~」(柏木 餅子、風薬
- 「コンパイラの構成と最適化」(中田 育男)
初めてgithubを使った個人開発(あとブログも)なのでやり切れるかは不明だが、そこらへんに詳しい友人との開発なので、なんとかなるでしょう。
コンパイラフロントエンド、LLVMバックエンドの使い方、githubとか使った個人開発の流れを経験できればなあと思う。