WebHome
-
Education Page
-
Description
-
Literature
-
Schedule
-
Assignments
-
Slides
Center
Master Program
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Course Description
Hpc
The EducationPage is the `official' web-page for this course and has schedule information ----+++ 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: * Randy Allen and Ken Kennedy. _Optimizing Compilers for Modern Architectures: A Dependence-based Approach_, Morgan Kauffman, 2001. The following book gives an overview of the phases of a compiler for the Tiger language: * Andrew Appel. _Modern Compiler Implementation in C_, Cambridge Univ. Press, 1998. Further literature consists of articles about Stratego and SPIM that will be handed out in class. ----+++ 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. -----+++ Assesment The final grade will be determined by your presentations (40%) and (the report about) the compiler extension that you develop (60%).