|Website:||website containing additional information|
|Credits:||7.5 ECTS (=5.25 old credit points)|
|Period:||periode 2 (week 47 t/m 5, dwz 17-11-2003 t/m 30-1-2004; herkansing week 9)
|Participants:||up till now 14 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.|
|Literature:||Lecture notes: Strategies for Program Transformation by Eelco Visser|
|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, which should be handed in at the end of the lecture. A good job on these exercises will result in a bonus point for your grade.
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 transformation component for the Tiger compiler.|
|Exam form:||The grade for the course is determined by the grades for the lab assignments (50%) and the final written exam (50%). Both grades should be sufficient. By making the in-class exercises with a sufficient result (70% ok), one bonus grade point for the written exam can be earned.|
|Minimum effort to qualify for 2nd chance exam:||Om aan de aanvullende toets te mogen meedoen is ontbreken van ten hoogte 1 toetsactiviteit toegestaan.|