lis.py
(AKA Lispy) is Peter Norvig's
Scheme interpreter written in Python. Norvig's blog post about it can be
found here.
From Wikipedia:
An interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.
From scheme.org:
Scheme is a classic programming language in the Lisp family. It emphasizes functional programming and domain-specific languages but adapts to other styles. Known for its clean and minimalist design, Scheme is one of the longest-lived and best-studied dynamic languages, and has many fast and portable implementations.
Lisp is one of the oldest programming languages, and it spawned a family of programming languages. Scheme is a dialect of Lisp.
The Wikipedia article on Lisp describes an interesting aspect of Lisps:
Linked lists are one of Lisp's major data structures, and Lisp source code is made of lists. Thus, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or new domain-specific languages embedded in Lisp.
Alan Kay on Lisp:
[...] that was the big revelation to me when I was in graduate school—when I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself. These were “Maxwell’s Equations of Software!” This is the whole world of programming in a few lines that I can put my hand over.