CMSC 22610
Implementation of Computer Languages I
Winter 2011



Resources

Standard ML

Subversion

Parsing

  • LR Parsing, a tutorial on LR parsing by Al Aho and Steve Johnson from the June 1974 Computing Surveys.

Type Checking

Programming Language Description, Semantics

In the Fall 2010 edition of the Programming Languages course (CMSC 22100) we developed ways of rigorously describing the meaning of a programming language, which tells us how individual programs in the language should behave. The lecture notes, homework, and other material for this course are available at the course web site:

http://www.classes.cs.uchicago.edu/archive/2010/fall/22100-1/

During the course, a series of increasingly complex functional languages were developed, leading up to PTFun, a polymorphic language with recursive types, sums, and products (essentially the equivalent of datatypes). Several formal techniques are used to specify the execution (dynamic semantics) of these languages. The type systems are formally described using inference rules, and theorems establish the type safety of the languages.

A full ML implementation of the final language, renamed "Fun", is contained in the following tarball, fun.tgz. This implementation includes a lexer, a parser, a type-checker, and an evaluator, plus an interactive read-eval-print loop.


Last modified: 12/21/2010