This course aims to expose students to the technology of programming language processors and to the opportunity that they offer in exploring various features of programming languages. What we will actually do is describe a virtual machine for an example language called Pico (see the software section) from the ground up. The target is an ordinary computing platform (e.g. a personal computer) already equiped with a Pico machine;the virtual machine is an 500 line Pico program that implements the various essential components such as parser, interpreter, native functions &tc. Once this basic technology is acquired, it will be possible to explore language paradigms such as for instance objects.
Students are required to be familiar with notions of computer languages and their interpretation; they should be familiar with a number of formal techniques such as automata and context free grammars; they should be acquainted with standard algorithms and data structures.
This course is centered around a medium scale software artefact ( see the software section): reference material concerning its various aspects is provided. The course draws heavily upon other courses in the curicullum (programming, formal techniques, algorithms and data structures); related course material is relevant.
Students are provided with the full implementation of the Pico virtual machine; in order to be able to execute is, a native version of Pico is provided for various platforms (see the software section)