The Lisp 1.5 manual, written by John McCarthy et al in 1961, contained in less than one page the compact yet amazing definition of the Lisp programming language using Lisp itself. This meta-circular account was referred as the “Maxwell’s Equations of Software” by Alan Kay. In a similar fashion, Paul Graham stated that this insight did to programming something like what Euclid did for geometry. In essence, the said definition demonstrated that it is possible to build an entire programming language using only a notation for functions and a handful of simple operators. In this talk, I will use Clojure to show how to build an interpreter that mimics Lisp in its very initial stages. As in the original documentation, the interpreter will consist of two main and highly intermixed functions: eval and apply. The central objective of this presentation is to provide attendees some highlights on the origins of Lisp and how its design ideas are central to Clojure and other programming languages.
Ariel Ortiz is a programming language geek. Since 1994, he’s been a full time faculty member at the Tecnológico de Monterrey in Mexico, where he has been involved mainly in teaching undergraduate computer science courses in Spanish and English. His central areas of interest include: programming languages, compiler construction, web development, and open source issues. He’s an active member of ACM’s special interest group on computer science education (SIGCSE). Seven years ago he started using Clojure in his classes, but his experience teaching Lisp goes back to 1994 with the Scheme programming language.