MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  University of Utrecht and will be supervised by Dr. Johan Jeuring. 1 What is Henk?

Download:
pdf | ps
by Jan-willem Roorda
http://www.students.cs.uu.nl/~jwroorda/pd.ps
Add To MetaCart

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