»Let's write a Lisp interpreter«
2019-06-05, 13:00–16:30, 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