Department of Information and Computing Sciences

Departement Informatica Onderwijs
Bachelor Informatica Informatiekunde Kunstmatige intelligentie Master Computing Science Game&Media Technology Artifical Intelligence Human Computer Interaction Business Informatics

Onderwijs Informatica en Informatiekunde

Vak-informatie Informatica en Informatiekunde

High performance compilers

Onderwijs:Het vak INFOHPC wordt in 2020/2021 niet aangeboden.
Nota bene:Er is geen recente vakbeschrijving beschikbaar.
Onderstaande tekst is een oude vakbeschrijving uit collegejaar 2003/2004
Inhoud: 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.
Literatuur:Kan veranderen!
We will use the following book 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.
(The first book is required, the second recommended.) Further literature consists of articles about Stratego and SPIM that will be handed out in class.
Werkvorm: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.
Toetsvorm:The final grade will be determined by your presentations (40%) and (the report about) the compiler extension that you develop (60%).
Inspanningsverplichting voor aanvullende toets:Om aan de aanvullende toets te mogen meedoen moet de oorspronkelijke uitslag minstens 4 zijn.