在我不斷努力解決我對更多編程知識的渴望的過程中,我提出了嘗試編寫(至少現在)編譯爲字節碼的簡單編程語言的想法。問題是我不知道語言設計的第一件事。有沒有人對構建解析器的方法以及每種語言的基本功能應該有什麼建議?你會爲語言設計推薦什麼樣的閱讀材料?我應該射擊多高的水平?希望能夠包含一個功能以允許用類似gcc的內聯彙編程序內聯字節碼是不現實的?看到我主要用C和Java編寫代碼,這對編譯器編寫會更好?用於設計簡單編程語言的方法
5
A
回答
3
有很多方法...
你可以看看堆棧語言和Forth。當設計其他語言時,它並不是非常有用,但它可以很快完成。
您可以查看功能語言。他們大多數是基於幾個簡單的概念,並有簡單的解析。而且,它們非常強大。
然後,傳統的語言。他們是最難的。您需要了解詞法分析器,解析器,LALR語法,LL語法,EBNF和常規語言,才能通過解析。
以字節碼爲目標不僅僅是一個好主意 - 在學習過程中做別的只是瘋了,而且大多是無用的。
幫你一個忙,查找關於編譯器的書籍和教程。
C或Java都可以。 Java可能有一個優勢,因爲面向對象的這種類型的任務很適合。我個人的建議是斯卡拉。做這種事情是一種很好的語言,它會教你一些關於語言設計的有趣事情。
1
您可能要先閱讀a book on compilers。
對於真正瞭解發生了什麼事情,你可能會希望在C.
編寫代碼Java的不會是一個不錯的選擇,如果你想寫一種解釋語言,如Jython。但是,因爲它聽起來像你想向下編譯成機器代碼,它可能會在C.
1
相關問題
- 1. 用於字符串處理的最簡單的編程語言
- 2. 編程語言設計的好資源?
- 3. 多語言數據庫設計方法
- 4. 用於描述編程語言語法的術語是什麼?
- 5. 用於c編程語言的線程的計時器
- 6. 以編程方式設置Wordpress語言?
- 7. 簡單的語言來編寫適用於Android的應用程序?
- 8. 編程語言語法
- 9. 8086彙編語言的簡單問題
- 10. 使用md5/sha1散列命令的簡單編程語言?
- 11. 如何檢測用戶的語言(簡單的方法)
- 12. 哪種(腳本)編程語言用於這個簡單的Web服務?
- 13. 關於java編程語言
- 14. 用於Infor optiva的編程語言PLM
- 15. 有沒有簡單的方法使用String.toLowerCase()爲9種語言?
- 16. 彙編語言的設計模式
- 17. 計算採用c編程語言
- 18. 簡單樹算法如何用功能語言編碼?
- 19. 將NetBeans用於多種編程語言
- 20. 對於有命令式語言背景的人來說,哪一種最簡單的函數式編程語言?
- 21. 在C簡單的「Hello World」內聯彙編語言程序/ C++
- 22. 用於編寫GUI應用程序的編程語言
- 23. 雲計算的哪種編程語言?
- 24. 什麼編程語言用於設計谷歌分析(圖表部分)?
- 25. 編程語言項目使用方案
- 26. 彙編語言的用法
- 27. 擁有多語言django網站的最簡單方法是?
- 28. 適用於簡單聊天應用程序的設計模式
- 29. 在Linux下用於並行端口編程的簡單編程語言是什麼?
- 30. 編程語言
Dupe of http://stackoverflow.com/questions/479013/requirements-for-compiler-design/479048等等。此外,你問的問題太多 - 一次一個是一個很好的規則。 – 2009-07-30 18:18:06
而這個http://stackoverflow.com/questions/1669/learning-to-write-a-compiler是關於主題領域的確定性答案。 – 2009-07-30 18:19:57