2010-08-18 58 views
3

我正在考慮爲一個簡單/基本的自定義語言(perl/C like)構建一個解釋器的本科項目。如果有人能指引我開始正確的方向,我會很高興。我發現的大部分書籍/資源都是關於編譯器的理論實現。有沒有針對口譯員的資源?我正在考慮在C++中實現它,但對於解釋器設計的主題知之甚少,所以任何指向書籍/參考的指針將不勝感激需要幫助設計一個解釋器

回答

3

解析源代碼在編譯器之間並沒有太大的不同和一名口譯員。這就是大多數關於編譯器的教科書。

2

現在有一些很好的工具可以實現自定義語言。

您可能想要在Eclipse Modeling Package(http://www.eclipse.org)或MPS(http://www.jetbrains.com/mps/)中檢出Xtext,IntelliJ的語言工作臺可以免費使用。

兩者都允許您創建語言並提供工具從源代碼和工具中生成代碼以幫助創建代碼。

它們還創建可以直接操縱,即執行的抽象語法樹。然後你有一個翻譯。

古典的方法是使用bison/yacc作爲詞法分析器和分析器,而許多更新的工具目前像antlr一樣可用。解析器的輸出又是抽象語法樹,準備好解釋或生成代碼。