|Website:||website containing additional information|
|Credits:||6 ECTS (=4.2 old credit points)|
|Period:||periode 1 (week 36 t/m 43, dwz 2-9-2002 t/m 25-10-2002; herkansing week 1)
|Participants:||up till now 6 subscriptions|
|Schedule:||Dit is een oud rooster!
|Contents:|| Optimizing compilers are essential tools for getting good implementations of high-level languages. By leaving optimizations to the compiler, programmers can concentrate on well-designed, maintainable programs.
Between parsing the input program and writing the generated machine code, optimizing compilers perform a wide range of transformations on a program to improve its time and space behaviour. In this course we study a selection of such optimizing transformations and their implementation in Stratego, a language for program transformation based on the paradigm of rewriting strategies. In this year's installment of the seminar we will focus on loop optimizations.
In previous versions of this course a compiler for Andrew Appel's Tiger language was built. In this year's installment we will take a basic Tiger compiler in Stratego as given and extend it with loop optimizations.
|Literature:||We will use the following book (chapters 1 to 6) as the main text of the seminar:
The following book gives an overview of the phases of a compiler for the Tiger language:
- Randy Allen and Ken Kennedy. Optimizing Compilers for Modern Architectures: A Dependence-based Approach, Morgan Kauffman, 2001.
Further literature consists of articles about Stratego and SPIM that will be handed out in class.
- Andrew Appel. Modern Compiler Implementation in C, Cambridge Univ. Press, 1998.
|Course form:||The course is a seminar in which you will give several presentations. The implementation of the compiler extension that you develop should be accompanied by a paper that describes the extension, the programming techniques that you used, and that discusses its relation to the literature.
|Exam form:||The final grade will be determined by your presentations (40%) and (the report about) the compiler extension that you develop (60%).|
|Minimum effort to qualify for 2nd chance exam:||Om aan de aanvullende toets te mogen meedoen is ontbreken van ten hoogte 1 toetsactiviteit toegestaan.|