原文链接: lisperator.net/pltut/
这个教程将会教你实现一个编程语言。如果你以前亲自实现过编程语言,那么直接跳过这个教程就可以了。但是,如果你一直用正则表达式来解析一些看起来像编程语言的字符串等东西,那请你认真学习本课程,至少也要读完解析这一章。下面让我们一起写bug吧(^_^)!
目录
上面的目录是到达各个章节的快捷方式,但是我还是强烈建议不要跳跃任何章节,除非你已经熟知每一个主题讲的内容。
在本教程中你会学到什么?
- 什么是解析器 (parser) ?如何写一个解析器?
- 如何写一个解释器 (interpreter)?
- 为什么连续 (continuations) 那么重要?
- 写一个编译器
- 如何将代码转换成延续传递风格 (continuation-passing style)?
- 一些基本的优化技术
- 一些关于相比较普通javascript所增加的新特性的示例
在教程中,我会去证明 Lisp 是一个伟大的编程语言。但是,我们不会去实现另一个 Lisp。我们的语言会有丰富的语法,除了可以像宏一样,还可以像 Scheme 一样强大。
下一节,让我们遐想一下,我们的语言会有什么特性。