Programs that process other programs are fundamental in computer science. The purpose of the course is to introduce methods for quickly developing program processors such as interpreters, compilers, program transformers, generators and analyzers. Representation of programs as XML structures, and processing of these structures using standard XML tools will also be introduced. Students will gain knowledge, understanding and practical experience of tools and techniques for definition, implementation of languages, and tools for optimisation and analysis of programs.
How to specify a language.Basic concepts of language processing.Interpreters, translators/compilers, real and abstract machines. Basic parsing techniques (syntactic analysis). Parser generators and syntax tree construction (e.g. JavaCC with JTB).
Types and other contextual constraints. Code generation and run-time organisation. Operational semantics. From semantics to interpreters. Program generation. Generic languages and tools. XML representation.
Lecture and exercises
Programming assignment with report, and oral exam.
Program Generators with XML and Java, J. Craig Cleaveland, February 2001, Prentice Hall, ISBN 0 130 25878 4.