TU Delft
Education Type
Education print this page print this page     
2012/2013 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 (recommended)
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.

In this course you study the principles, techniques and limitations of
meta-programming, through a systematic literature review on a mutually agreed upon
topic within the field.

In 2012-2013, the Meta-Programming Seminar course is integrated with the semi-weekly
Software Language Design and Engineering Seminar. To complete the seminar you should
attend at least 10 seminar sessions, give two presentations in the seminar, and write
a literature survey. If you are interested in taking this course register in
Blackboard _and_ send an email with motivation to Eelco Visser e.visser@tudelft.nl.
Study Goals
- understanding principles, techniques, and limitations of meta-programming

- performing a systematic literature study
Education Method
Literature study, seminar presentations
Literature and Study Materials
Papers from the scientific and technical literature.
Literature survey + seminar presentations