Anton Kindestam

A Lisp compiler for the JVM

Abstract

Implementing dynamic, mostly functional, languages on top of an environment such as the JVM is getting ever more popular. Languages such as Clojure, Scala, or Python. To achieve reasonable performance and Java interoperability such a language usually needs to be compiled. This essay features techniques for implementing dynamic and functional languages on the JVM with a focus on Lisp and Scheme, as well as an implementation of a small Lisp compiler demonstrating some of these techniques.