LLVM-IR(LLVM中間コード)用コンパイラの改良を考え中

LLVM-IR(LLVM中間コード)用コンパイラの改良を考え中だ。

・C言語で書いているのを、C++で書き直す?
 yaccないしbisonを使って作っていので、そのためC言語で書いている。
 うまくラッパーとか作ってC++で書き直したらどうだろうか?
 既存のそういうラッパーもありそうなので、それを流用すればいいのかもしれない。
 うまくオブジェクト/クラスに切り分けて作るにはどうするのかちょっと悩む。

・yacc(bision)だけではなく、lex(flex)を使ってみる?
 上記のC++化にも絡んでくる話だが、基本的にはC言語でのコンパイラ開発用に作られたツールなので、C++化しようとすると使いにくい。

・LLVM-IR用コンパイラ以外も統合する?
 以前作ったJavaバイトコード出力版のものや、.NET中間言語MSIL(CIL)出力版のものがあり、コードの半分くらいは共通になっている。
 統合して、1つのコンパイラで3種類に対応という形にしてしまったほうがいいのかもしれない。
 少なくとも、共通部分は整理して分離したほうがよさそうだ。




コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

− 4 = 6