TU Delft
Year
NEDERLANDSENGLISH
Organization
Education Type
Education print this page print this page     
2008/2009 Electrical Engineering, Mathematics and Computer Science Master Computer Science
IN4313
Seminar Metaprogramming
ECTS: 5
Responsible Instructor
Name E-mail
Prof.dr. E. Visser    E.Visser@tudelft.nl
Contact Hours / Week x/x/x/x
2/0/0/0 (not in 2008-2009)
Education Period
1
Start Education
1
Exam Period
none
Course Language
English
Expected prior knowledge

The course builds on the Model-Driven Software Development course (IN4308).
Course Contents
Program transformation and generation 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 (also
known as meta-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
program transformation and generation tools by means of a literature
study and practical experiments.

The course builds on the Model-Driven Software Development course
(IN4308).
Study Goals
This course studies the principles, techniques and limitations of
program transformation and generation tools by means of a literature
study and practical experiments.
Education Method
Seminar (presentations by students) and lab experiments.
Assessment
Paper
Remarks
This course is not given in 2008-2009. First take the Model-Driven Software Development course
(IN4308).