Here is a list of publicly available software systems with which I have been involved:
Cool is built entirely on public domain tools; it generates code for a MIPS simulator, spim . Thus, the project should port easily to other platforms. The project has been used for teaching compilers at many institutions around the world and the source code is available. The complete Cool distribution includes the manual, source and makefiles for the compiler, source and makefiles for each of the assignments, test cases for each of the assignments, and lecture notes. Because the project is still being used at Berkeley, only the manual is available here. If you are interested in obtaining the complete distribution, send mail to aaiken@stanford.edu.
Illyria is a small functional language designed to illustrate a subtype inference system based on solving systems of type inclusion constraints. Illyria includes the lambda calculus, polymorphic let, constructors, case expressions, and record operations. The type language is rich, with union, intersection, complement, conditional, recursive, and universally quantified types. This package includes the type inclusion constraint solver, type inference for Illyria, and examples.
Illyria runs under Common Lisp on Unix systems. The only known problem is that Illyria does not compile under CMU Common Lisp, although it will run interpreted in that environment. After retrieving the package, do:
See the instructions in the Illyria/README file.