這是王垠的老師的徒弟寫的用 Racket 做編譯器的課本
採用CC BY-NC-ND,所以遵守自由授權可以使用,已經放在網路上,
https://github.com/IUCompilerCourse/Essentials-of-Compilation
(內有教學投影片和課文原始檔案)
https://ppt.cc/fs4rdx 個人的備份課本PDF,沒灌LaTeX產生的可以用
雖然才讀一點點,但感覺可以反映一些王垠提到的思想(因為應該是同一個
源頭):
- 編譯器要以少漸多製作
- 怎樣做一個直譯器和教材開頭的直譯器很像
- 課程似乎沒教到Parsing
- 使用Racket的Nanopass技術,將S表達式轉換成另一個次語言
- 開頭的直譯器只用讀入資料、加、減、符號、let等(沒記錯的話)來實作
算是相當精簡於重點
總之想要瞭解的可以參考看看。
不會 Racket S表達式的可以看Python版。