|Website:||website containing additional information|
|Credits:||7.5 ECTS (=5.25 old credit points)|
|Period:||periode 3 (week 6 t/m 16, dwz 7-2-2005 t/m 22-4-2005; herkansing week 20)
|Participants:||up till now 18 subscriptions|
|Schedule:||Dit is een oud rooster!
|Contents:||Producing software means transforming a specification of the requirements into an implementation. Automating this process, i.e., generating an implementation from a specification, in ever new ways is the goal of software technology. In several areas this automatization has already been successful. Think of a compiler that translates `specifications' in a high-level programming language to implementations in machine code, or parser generators that generate a parser from a context-free grammar. More recently, program transformation techniques are used to implement compiler optimizations, refactoring tools, aspect weavers, and reverse engineering tools. In this course you learn to understand and apply program transformation techniques and study applications of program transformation such as data-flow optimizations, partial evaluation, refactoring, desugaring, and aspect weaving.|
- Lecture notes: Eelco Visser. Strategies for Program Transformation
- Several articles to be announced
- Stratego/XT manual
|Course form:||The course consists of lectures and assisted lab sessions. Lab work will require more time than just the assisted sessions.
Participants are expected to attend all lectures. Part of the lecture will be dedicated to making exercises.
The lab work for the course is divided in two parts. In the first part you learn the basic techniques of program transformation with rewriting strategies in the transformation language Stratego. In the second part you apply these techniques in the construction of a non-trivial transformation system.|
|Exam form:||The grade for the course is determined by the grades for the lab assignments (30%), the project (30%) and the final written exam (40%). All grades should be sufficient, i.e., higher than 5.5.|
|Minimum effort to qualify for 2nd chance exam:||Om aan de aanvullende toets te mogen meedoen is ontbreken van ten hoogte 1 toetsactiviteit toegestaan.|