University of Utrecht and will be supervised by Dr. Johan Jeuring. 1 What is Henk?
Abstract:
Many compilers can be divided in three main functions. The front end, which translates the source language into an intermediate language, the middle end which transforms the intermediate language into a more ecient form, and nally, the back end which translates the intermediate language into the target language. In the past, intermediate languages usually were untyped. The front end would type check the source program and then translate the program into the intermediate language, discarding all type information. After all, type checking the program simply assured that no run-time errors would occur, after type checking there was no further use for type information. Recently this view has changed [4] [5] [6] [9]. It has been acknowledged that type information can be useful during compilation. There are three main motivations to support this: First of all, the compiler may be able to generate better code when it has access to type information. Furthermore, in some cases it is desirable to treat types as values at run-time, in which case compile time types are needed. Finally, type information can be very useful when debugging a compiler. Henk is a typed intermediate language, designed by Erik Meijer and Simon Peyton Jones[7]. The name Henk is, of course, derived from the famous Dutch computer scientist Henk Barendregt. One of the main features of Henk is that it is directly based on theory of Pure Type Systems[1], which gives the language a solid mathematical basis. The theory of PTSs, generalising the type systems found in the lambda cube, supports a very large class of type systems. This makes Henk an excellent candidate for experimenting with sophisticated new features of functional languages. 1
Citations
| 444 | Lambda calculi with types – Barendregt - 1991 |
| 130 | A type-based compiler for Standard ML – Shao, Appel - 1995 |
| 116 | The Glasgow Haskell Compiler: A Technical Overview – Jones, Hall, et al. - 1993 |
| 41 | A generic programming extension for Haskell – Hinze - 1999 |
| 38 | Henk: A typed intermediate language – Jones, Meijer - 1997 |
| 22 | Een nadere bewijstheoretische analyse van GSTT's – Terlouw - 1989 |
| 18 | The Design and Implementation of Mondrian – Meijer, Claessen - 1997 |
| 9 | Compilation by transformation: a report from the trenches – Jones - 1996 |
| 5 | TIL: A type-directed optimizing compiler for – Tarditi, Morrisett, et al. - 1996 |

