This course covers issues in the design and specification of object-oriented programming languages. Sample topics include the use of patterns in program representation, static and dynamic semantics, subject reduction, subtyping, inheritance, polymorphism, genericity and concurrency.
This course will be based around the specification and implementation of an interpreter, rather than a text book. The source will be distributed on this web site and discussed in class. The interpreter is for a simple class-based object-oriented language: we will add features such as generics and concurrency to it as the term progresses. An applet which provides a graphical front end to the interpreter is available from this web site.
Each week, a version of the interpreter with some functionality removed will be available on this web site, complete with code. It can be downloaded as a tgz archive or as a zip archive. The homework each week will be to make the restricted version of the applet behave more like the real version.
Thursdays, 5.45-9pm. Lewis 1108. Start date: Thursday 11 September 2003.
Midterm exam: 16 October 2003. Final exam: 20 November 2003.
Foundations of Programming Languages Research Group
School of Computer Science, Telecommunications and Information Systems