TU Delft
Education Type
Education print this page print this page     
2013/2014 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 2013-2014, 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