TU Delft
Education Type
Education print this page print this page     
2014/2015 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
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 topic within the field. The exact organisation and topic of the seminar changes from year to year.

In 2014-2015 the seminar will be dedicated to the study of automatic program analysis, which has numerous applications in meta-programming. In particular, applications in software security are becoming increasingly important.

If you are interested in taking this course register in Blackboard _and_ send an email with motivation to Eelco Visser e.visser@tudelft.nl before August 15, 2014. Also make sure you order the course book on time.

The time slot for the course will be coordinated with the students who have registered on time.
Study Goals
Understanding principles, techniques, and limitations of meta-programming, and applying these 'in vitro'.
Education Method
Literature study, seminar presentations
Literature and Study Materials
Required book:

"Principles of Program Analysis" by Nielson, Flemming, Nielson, Hanne R., Hankin, Chris Corr. 2nd printing 2004, ISBN: 3-540-65410-0.

Order the book well in advance of the course.

In addition, we will read several papers, which will be announced in class.
Design and implementation of a program analysis from the literature described. The result should be presented in the seminar and in a report.