Python 实现 Lisp 解释器
内容目录
译者序............................................................................................................................1
第一篇:(How to Write a (Lisp) Interpreter (in Python)) ............................................................2
1 Syntax and Semantics of the Lispy Scheme Subset .......................................................2
2 What A Language Interpreter Does ................................................................................3
3 Execution:eval ..............................................................................................................4
4 Parsing:read and parse .................................................................................................6
5 How Small/Fast/Complete/Good is Lispy? ......................................................................9
6 True Story .....................................................................................................................10
7 The Whole Thing ...........................................................................................................10
第二篇:(An ((Even Better) Lisp) Interpreter (in Python)).........................................................13
(1) New data types: string, boolean, complex, port..........................................................13
(2) New syntax: strings, comments, quotes, # literals......................................................14
(3) Macros: user-defined and builtin derived syntax.........................................................18
(4) Better eval with tail recursion optimization................................................................19
(5) Call-with-current-continuation (call/cc).......................................................................21
(6) Procedures with arbitrary number of arguments........................................................22
(7) Earlier error detection and extended syntax...............................................................23
8) More primitive procedures............................................................................................26
(9) Testing..........................................................................................................................27
(Appendix) Brought to you by............................................................................................31
译后记..........................................................................................................................32
译者序
因为在看《PY 源码剖析》,看到函数实现那部分,最近函数式编程话题很多,加上本人想学一门函数式编程语言完善
自己的知识体系,找了些资料看,刚好看到这篇文章,就在谷小哥的帮助下翻译完了,供广大和我一样的菜鸟看下。翻译完
成第一篇(原文分两篇)后,放到 python-cn 的邮件列表,Zoom Quiet 提出了一些很好的建议,非常感谢。
能从文章学到什么?不要指望看完文章就能了解 Interpreter 的原理或者学会 Scheme,但是,阅读完之后,你肯
定对什么是 Interpreter,什么是函数式语言有个清晰的映像了,这将有助于你提高编程水平,扩展知识面。如果你是 C
或着 Python 程序员,那我强烈推荐你阅读陈儒的《Python 源码剖析》。文章的最后,我还会给出一些函数式编程相关
的资料链接。
由于我糟糕的英文水平和对函数式语言相关方面的不了解,文章有很多翻译不恰当的地方;而且,许多专业术语到翻译
也不准确,如:将 Interpreter(解释器)翻译成来解析器(Parser),Symbol(标识符)翻译成了符号,还有些句
子不太通顺,等等;后来进行了修改,但仍有很多错误没改过来。第二篇的翻译则相对好一些,一些单词干脆用原文表示以
免阅读者理解错误。如果你发现翻译不准确的地方,欢迎来信指出。
2010-10-18 九月十一日朝
德哥(shuxiang29@gmail.com)