2012-07-15 53 views
5

我想開發一個基於LLVM基礎架構的編譯器。我的語言有一個類似C的語法,所以我想利用現有的C編譯器。現在我專注於前端(詞法分析,解析),但我很困惑哪個前端是最好的方法。 Clang,llvm-gcc還是傳統的flex/bison工具?前端到基於LLVM的編譯器

我特別感興趣的是最簡單的解決方案,它允許我爲編譯器的後期階段生成LLVM IR代碼。

+0

如果你做你自己的分析和語義分析,生成LLVM IR會很容易。如果你不得不借用C語法的大部分,你可以重用現有的前端,比如Clang。否則它不值得,一旦你有了一個有效的AST,產生IR是微不足道的。 – 2012-07-16 09:22:14

+0

謝謝。我應該使用什麼來從AST生成IR? – 2012-07-17 17:20:48

+0

只使用直接的替代規則 - 請參閱LLVM萬花筒示例。 – 2012-07-17 20:38:31

回答

2

如果要全部手工編寫代碼,那麼我推薦你LLVM教程萬花筒:

+0

有沒有一些源代碼的例子?理解源文本比文本更容易。 – kravemir 2015-06-27 13:13:32

+0

那麼源代碼也提供在教程中:http://llvm.org/docs/tutorial/LangImpl8.html – Phong 2015-07-01 06:36:31