(norvig.com) (How to Write a (Lisp) Interpreter (in Python))

ROAM_REFS: https://norvig.com/lispy.html

This page has two purposes: to describe how to implement computer language interpreters in general, and in particular to build an interpreter for most of the Scheme dialect of Lisp using Python 3 as the implementation language. I call my language and interpreter Lispy (lis.py). Years ago, I showed how to write a semi-practical Scheme interpreter Java and in in Common Lisp). This time around the goal is to demonstrate, as concisely and simply as possible, what Alan Kay called "Maxwell's Equations of Software."

Why does this matter? As Steve Yegge said, "If you don't know how compilers work, then you don't know how computers work." Yegge describes 8 problems that can be solved with compilers (or equally well with interpreters, or with Yegge's typical heavy dosage of cynicism).

Local Graph

org-roam cf12d8e2-1921-4fb4-92a8-8a498744ca79 (norvig.com) (How to Write a (Lisp) I... //en.wikipedia.org/wiki/Scheme_(programming_language) http://en.wikipedia.org/wiki/Scheme_(programming_language) cf12d8e2-1921-4fb4-92a8-8a498744ca79->//en.wikipedia.org/wiki/Scheme_(programming_language) //python.org/ http://python.org/ cf12d8e2-1921-4fb4-92a8-8a498744ca79->//python.org/ //norvig.com/lis.py https://norvig.com/lis.py cf12d8e2-1921-4fb4-92a8-8a498744ca79->//norvig.com/lis.py //norvig.com/jscheme.html https://norvig.com/jscheme.html cf12d8e2-1921-4fb4-92a8-8a498744ca79->//norvig.com/jscheme.html //books.google.com/books?id=QzGuHnDhvZIC&lpg=PA756&vq=scheme%20interpreter&dq=Paradigms%20of%20Artificial%20Intelligence%20Programming&pg=PA753#v=onepage&q&f=false //books.google.com/books?id=QzGuHnDhvZIC&lpg=PA756&vq=scheme%20interpreter&dq=Paradigms%20of%20Artificial%20Intelligence%20Programming&pg=PA753#v=onepage&q&f=false cf12d8e2-1921-4fb4-92a8-8a498744ca79->//books.google.com/books?id=QzGuHnDhvZIC&lpg=PA756&vq=scheme%20interpreter&dq=Paradigms%20of%20Artificial%20Intelligence%20Programming&pg=PA753#v=onepage&q&f=false //queue.acm.org/detail.cfm?id=1039523 http://queue.acm.org/detail.cfm?id=1039523 cf12d8e2-1921-4fb4-92a8-8a498744ca79->//queue.acm.org/detail.cfm?id=1039523 //www.righto.com/2008/07/maxwells-equations-of-software-examined.html http://www.righto.com/2008/07/maxwells-equations-of-software-examined.html cf12d8e2-1921-4fb4-92a8-8a498744ca79->//www.righto.com/2008/07/maxwells-equations-of-software-examined.html //steve-yegge.blogspot.com/2007/06/rich-programmer-food.html http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html cf12d8e2-1921-4fb4-92a8-8a498744ca79->//steve-yegge.blogspot.com/2007/06/rich-programmer-food.html //books.google.com/books?id=QzGuHnDhvZIC&lpg=PA756&vq=scheme%20interpreter&dq=Paradigms%20of%20Artificial%20Intelligence%20Programming&pg=PA753#v=onepage&q&f=false http://books.google.com/books?id=QzGuHnDhvZIC&lpg=PA756&vq=scheme%20interpreter&dq=Paradigms%20of%20Artificial%20Intelligence%20Programming&pg=PA753#v=onepage&q&f=false