我知道這是一個很寬泛的問題要問,但我在哪裏能開始學習編譯器是如何工作的,編程語言是如何編寫的,我的意思不是你如何使用Java或Ruby,而是人們如何使用它們。我不會嘗試以任何方式複製這些語言,但我想了解背後的概念和理論。所以我需要的是或者我應該尋找的方向,或者更好,更熟悉的書籍推薦。
Regards,
Jonathan Nash。
我知道這是一個很寬泛的問題要問,但我在哪裏能開始學習編譯器是如何工作的,編程語言是如何編寫的,我的意思不是你如何使用Java或Ruby,而是人們如何使用它們。我不會嘗試以任何方式複製這些語言,但我想了解背後的概念和理論。所以我需要的是或者我應該尋找的方向,或者更好,更熟悉的書籍推薦。
Regards,
Jonathan Nash。
你可以看看在Dragon Book:
你可能會由傑克·克倫肖一個有趣的介紹找到Lets Build a Compiler。
保持非常簡單,並專注於構建實際功能。
我非常享受Language Implementation Patterns,並學會了一堆。我希望在幾年前嘗試實現DSL之前,我已經閱讀過它。
Compiler Constrution由尼克勞斯·維爾特是相當不錯的,並可以從我提供的鏈接(是的,在法律上)免費。它有點古老,使用Oberon作爲示例,但很容易遵循。
Create Your Own Programming Language由馬克 - 安德烈Cournoyer是可在線進行USD 40,由一個電子書(包括運動和溶液)用於兩個示例語言(一個在Ruby和一個用Java),源代碼和上延伸的一個截屏的基於JVM的語言。這可能是您可以在該主題上找到的最新穎友好的介紹,然後您應該對涉及的步驟(標記,解析,lexing等)有一個相當好的想法,並可以使用提供的鏈接繼續您的研究。這有點貴,但恕我直言,這是值得的。
雖然主要不是學習資源,但CoffeeScript網站有一個名爲「Annotated Source」的部分,它非常有助於瞭解編程語言如何工作。 CoffeeScript的作者在閱讀我在前面的項目符號btw中提到的書後開始着手編寫它。
請注意龍書不是介紹性文字,而是一本很好的參考書。請參閱http://www.billthelizard.com/2008/12/books-programmers-dont-really-read.html以徵求意見。 – 2011-06-15 17:07:44
謝謝,但鏈接不起作用。 – 2011-06-15 17:21:26
@Johnathan:由於某種原因,Stackoverflow將我的亞馬遜鏈接轉換爲腐敗的會員鏈接。我編輯過,它現在似乎正常工作。 – LukeH 2011-06-15 19:22:48