The goal of this research is to design and implement a small functional programming language that incorporates some of the features that arise from the theoretical study of programming language semantics. We begin with the study of the lambda-calculus, an idealized mathematical language. We present the language PPL, a strongly typed, call-by-name language which supports recursion and polymorphism. We describe a compiler of PPL into a low-level assembly language. The compilation is based on an abstract machine interpretation and includes a type inference algorithm.

Author Bio

Ari Lamstein graduated in April 2000 from the University of Michigan with a BA in Mathematics. He conducted this research during his senior year and, as a participant on the REU program, the summer immediately following it. After earning his BA he accepted a position on the Japan Exchange and Teaching Program, and is currently teaching English in Japan. His hobbies include hiking, music and travelling. He hopes to enter a Ph.D. program in Computer Science in fall 2001.