主要作爲一種學習練習,我從頭開始編寫虛擬機,彙編程序和編譯器,這取決於沒有外部工具。將語法樹轉換爲程序集的資源?
我相信我對虛擬機和彙編程序的工作原理以及編譯器的某些部分有一個體面的概念性理解。
下面是我想知道的: 在編譯器中,假設我已將源代碼轉換爲語法樹。我經歷了什麼過程然後將此語法樹轉換爲程序集?
(假設一些簡單的語言結構,如if和while。我正在尋找一個最小的和簡單的解釋一下。)
我是基於現有的工具,複雜的解決方案不是特別感興趣,或者解決方案。相反,我希望按照1頁的順序進行說明,對從語法樹到組裝的背後思路進行廣泛的描述。
任何人都知道這樣的資源?
謝謝:)
當然。任何編譯器書籍第1章的第2頁和第3頁。但我認爲你希望這是你所需要的,而不是一個長遠的目標。問題在於,將程序語言轉換爲*好的機器代碼(即使是虛擬機)也需要大量的機器,而這兩個頁面將會對所需內容有一個模糊的理解,因此您無法構建任何一種明智的代碼生成器都不需要讀取其他200頁的編譯器書籍。 – 2011-02-11 17:39:37