Courses in Computer Science, Roskilde University
LE: Language Engineering (preliminary course description)
Advanced course: Runs full time the last 4 weeks of the semester
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.
Topics:
- 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.
Background
Programming in a high-level language including standard algorithms and
data structures.
Last modification 23-dec-2011,
Henning Christiansen