Let's write a Lisp interpreter
06-05, 13:00–16:30 (UTC), Room 1

One of the best way to understand how programming languages work (including Python), is to implement one.


Greenspun's tenth rule states that Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.. Understanding how programming language work will make you a better programmer and gain a better understanding of Python itself.

We'll implement a small lisp like language and discuss language design & implementation issues and how they are found in Python.
- Lexing & Parsing: What are the implication of Python using whitespace for indentation?
- Variable scope & closures: Why we have global and nonlocal in Python
- Types: Why the value of 1/2 changed from Python 2 to 3
- Evaluating code: Python's eval vs exec and byte code interpreter. Why does or and and short curcuit

Miki has been working with Python for over 20 years. He's currently the CEO of 353solutions where he teaches all around the glob and also provides consulting servcies. Miki is active in the Python community and has several open source projects.