ChangeLog v0.2: 2007/11/22 (2007/11/21) PS1 - pseudolib.h: changes to keep new GCC happy (2001/07/24) PS1 - improved gcd example v0.1: 2000/10/17, first public release (2000/06/27) PPL now has working tuples and case distinctions. Also, changed "step" and "reduce" behavior to call-by-name reduction (was: beta-reduction). (2000/05/19) Code has integers. Also has tuples, but is still missing compiler for tuples. Known bugs: unify_tlists in unifier.ml is incorrect. Also, library.ml and some other files use == instead of =, which causes fatal errors in free_vars_of. (2000/05/04) We now have \x y z.M syntax, "let" syntax, and a polymorphic Damas-Milner type system. Also, there is a new --typeinfo option for printing type information of bound variables. There is one fatal bug in this release, which is a missing PUSH in compiler.ml (the correct line is commented out). (2000/04/13) A cleaned-up version of the poster revision. Can now write output to a file, and writes compiled pseudocode in a format which gcc accepts. Graphical user interface is still available. (2000/03/29) The version of PPL that we showed at the UROP poster session. It has a command line interface which allows one to either reduce, stepwise reduce, or compile a lambda term. This can be done untyped, or with type inference for simple types. Input can be read from a file, from stdin, or from the command line. Also, there is a graphical user interface ppli. (2000/03/07) A simple parser and reducer for the untyped lambda calculus. Reads a lambda term from a file, reduces it to normal form, and outputs the reduced term.