Programming Language Engineering




  1. All software artifacts used in this course are built either in Scheme, SLIP or in C. The virtual machines themselves are built in ANSI C; since they constitute a fully operational SLIP interpreter, the only software that is actually required is a C programming environment. For experiments with the original SLIP-in-Scheme implementation, the Racket (previously PLT-Scheme) environment is recommended.


  1. The source code of the various virtual machines is fully ANSI compliant; it has been successfully compiled with a variety of C compilers for a variety of platforms. Interfacing with the interpreters is via a simple console interface.


  1. SLIP is an experimental language, inspired by Scheme, but limited to an absolute minimum (see the notes section for a metacircular implementation of less than 100 lines of code). It will nevertheless prove to be sufficiently sophisticated to illustrate the various language engineering techniques that are considered representative in the course.


  1. All software artifacts introduced in the lectures are available as compilable or executable source code. Please consult the notes section.


  1. C source code will need to be compiled with an ANSI C compiler. GCC is recommended.