我想開發一個基於LLVM基礎架構的編譯器。我的語言有一個類似C的語法,所以我想利用現有的C編譯器。現在我專注於前端(詞法分析,解析),但我很困惑哪個前端是最好的方法。 Clang,llvm-gcc還是傳統的flex/bison工具?前端到基於LLVM的編譯器
我特別感興趣的是最簡單的解決方案,它允許我爲編譯器的後期階段生成LLVM IR代碼。
我想開發一個基於LLVM基礎架構的編譯器。我的語言有一個類似C的語法,所以我想利用現有的C編譯器。現在我專注於前端(詞法分析,解析),但我很困惑哪個前端是最好的方法。 Clang,llvm-gcc還是傳統的flex/bison工具?前端到基於LLVM的編譯器
我特別感興趣的是最簡單的解決方案,它允許我爲編譯器的後期階段生成LLVM IR代碼。
如果要全部手工編寫代碼,那麼我推薦你LLVM教程萬花筒:
如果你做你自己的分析和語義分析,生成LLVM IR會很容易。如果你不得不借用C語法的大部分,你可以重用現有的前端,比如Clang。否則它不值得,一旦你有了一個有效的AST,產生IR是微不足道的。 – 2012-07-16 09:22:14
謝謝。我應該使用什麼來從AST生成IR? – 2012-07-17 17:20:48
只使用直接的替代規則 - 請參閱LLVM萬花筒示例。 – 2012-07-17 20:38:31