我正在考慮爲一個簡單/基本的自定義語言(perl/C like)構建一個解釋器的本科項目。如果有人能指引我開始正確的方向,我會很高興。我發現的大部分書籍/資源都是關於編譯器的理論實現。有沒有針對口譯員的資源?我正在考慮在C++中實現它,但對於解釋器設計的主題知之甚少,所以任何指向書籍/參考的指針將不勝感激需要幫助設計一個解釋器
3
A
回答
3
解析源代碼在編譯器之間並沒有太大的不同和一名口譯員。這就是大多數關於編譯器的教科書。
2
現在有一些很好的工具可以實現自定義語言。
您可能想要在Eclipse Modeling Package(http://www.eclipse.org)或MPS(http://www.jetbrains.com/mps/)中檢出Xtext,IntelliJ的語言工作臺可以免費使用。
兩者都允許您創建語言並提供工具從源代碼和工具中生成代碼以幫助創建代碼。
它們還創建可以直接操縱,即執行的抽象語法樹。然後你有一個翻譯。
古典的方法是使用bison/yacc作爲詞法分析器和分析器,而許多更新的工具目前像antlr一樣可用。解析器的輸出又是抽象語法樹,準備好解釋或生成代碼。
1
An Incremental Approach to Compiler Construction - 這是關於創建編譯器,但它可能是一個很好的起點找到參考。
1
我在Uni寫了一個解釋器來讀取和轉換邏輯表達式。寫在C,Lexx和Yacc中,那些Unix和C程序員似乎都在發誓。一旦你掌握了它們,它會非常強大,但我會說,它的學習曲線非常陡峭。
相關問題
- 1. 需要幫助設計一個Android UI
- 2. Android:需要幫助設計一個tableLayout
- 3. WCF設計需要幫助
- 4. 一流的設計需要幫助
- 5. 需要幫助解釋PHP文件
- 6. 需要幫助解釋以下程序
- 7. 需要幫助來解釋Readonly \ ScaffoldColumn(false)
- 8. 需要幫助來解釋scala問題
- 9. 需要幫助/解釋JOINED查詢
- 10. 聚合對象,需要幫助/解釋
- 11. 需要幫助理解配置單元中的解釋計劃
- 12. 需要一些幫助和解釋與這個JavaScript線
- 13. 需要一些幫助解釋這個遞歸碼
- 14. 我需要一些幫助設計一個陣列
- 15. 需要數據庫設計幫助
- 16. 需要數據庫設計幫助
- 17. Haskell:需要幫助設計此功能
- 18. 重複設計需要的幫助
- 19. SQL數據庫設計需要幫助
- 20. 需要幫助的屏幕設計
- 21. 需要數據庫設計幫助
- 22. 需要設計佈局幫助(CSS)
- 23. 需要幫助引導移動設計
- 24. 需要數據庫設計幫助
- 25. 設計此按鈕時需要幫助
- 26. 需要數據庫設計幫助
- 27. 需要課堂設計幫助
- 28. 需要幫助以3tier設計開始
- 29. MySQL查詢設計需要幫助
- 30. 需要幫助設計一個SQL語句