原文連結: lisperator.net/pltut/
這個教程將會教你實現一個程式語言。如果你以前親自實現過程式語言,那麼直接跳過這個教程就可以了。但是,如果你一直用正規表示式來解析一些看起來像程式語言的字串等東西,那請你認真學習本課程,至少也要讀完解析這一章。下面讓我們一起寫bug吧(^_^)!
目錄
- 用javascript實現一門程式語言-前言
- 用javascript實現一門程式語言-語言構想
- 用javascript實現一門程式語言-寫一個解析器
- 用javascript實現一門程式語言-字元輸入流
上面的目錄是到達各個章節的快捷方式,但是我還是強烈建議不要跳躍任何章節,除非你已經熟知每一個主題講的內容。
在本教程中你會學到什麼?
- 什麼是解析器 (parser) ?如何寫一個解析器?
- 如何寫一個直譯器 (interpreter)?
- 為什麼連續 (continuations) 那麼重要?
- 寫一個編譯器
- 如何將程式碼轉換成延續傳遞風格 (continuation-passing style)?
- 一些基本的優化技術
- 一些關於相比較普通javascript所增加的新特性的示例
在教程中,我會去證明 Lisp 是一個偉大的程式語言。但是,我們不會去實現另一個 Lisp。我們的語言會有豐富的語法,除了可以像巨集一樣,還可以像 Scheme 一樣強大。
下一節,讓我們遐想一下,我們的語言會有什麼特性。