TU Delft
Education Type
Education print this page print this page     
2011/2012 Electrical Engineering, Mathematics and Computer Science Master Computer Science
Seminar Metaprogramming
Responsible Instructor
Name E-mail
Prof.dr. E. Visser    E.Visser@tudelft.nl
Contact Hours / Week x/x/x/x
Education Period
Start Education
Exam Period
Course Language
Expected prior knowledge
- Compiler Construction
- Model-Driven Software Development
Course Contents
Meta-programming is the discipline of software engineering that
considers programs as data. That is, programs are data objects that
are subject to manipulation by other programs. This allows the
automation of tasks traditionally performed 'manually' by
programmers. Applications are everywhere in software engineering.

Traditional and successful applications include compilers that
translate high-level programs to implementations in machine code, and
parser generators that generate a parser from a context-free
grammar. (We assume students to have basic knowledge about these
topics from a previous course on compiler construction.) Recently, a
number of other applications are becoming increasingly important in
software engineering. Generation of software from domain-specific
languages provides an increase in productivity through language
constructs that concisely express notions in the application
domain. Refactoring tools automatically perform design improvements
that are specified by the developer ensuring safety and completeness
of the change. Code instrumentation and aspect weaving allow
crosscutting concerns (e.g., logging, tracing, synchronization) to be
expressed separately and implemented by insertion into the source
code. Bug detection tools such as FindBugs analyse the source code to
detect patterns that are indicative of tyical bugs made by
developers. Software metrics tools express quality properties of a
code base in numbers that are computed by inspecting the source code.

This course studies the principles, techniques and limitations of
meta-programming. You will study an aspect of the meta-programming
field by means of a systematic literature review using researchr.org.
You are expected to give several seminar presentations.
Study Goals
- understanding principles, techniques, and limitations of meta-programming

- performing a systematic literature study
Education Method
Seminar (presentations by students), literature study
Literature and Study Materials
Papers from the scientific and technical literature.
Paper with literature survey + presentations