TEKNISK LICENTIATEXAMEN

För att avlägga teknisk licentiatexamen i datavetenskap vid Chalmers tekniska högskola har Patrik Jansson skrivit en uppsats med titeln

Functional Polytypic Programming
Use and Implementation

och kommer därför att hålla ett seminarium

onsdagen den 28 maj kl 10.15 i Hörsalen
Institutionen för Datavetenskap
Matematiskt Centrum
Chalmers tekniska högskola och Göteborgs universitet

Diskussionsledare: Björn Lisper, KTH

Avhandlingen finns tillgänglig på institutionens bibliotek
och på http://www.cse.chalmers.se/~patrikj/lic/

Ett kort referat ges nedan.

Abstract

Many functions have to be written over and over again for different datatypes, either because datatypes change during the development of programs, or because functions with similar functionality are needed on different datatypes. Examples of such functions are pretty printers, pattern matchers, equality functions, unifiers, rewriting functions, etc. Such functions are called polytypic functions.

A polytypic function is a function that is defined by induction on the structure of user-defined datatypes. This thesis introduces polytypic functions, shows how to construct and reason about polytypic functions and describes the implementation of the polytypic programming system PolyP.

PolyP extends a functional language (a subset of Haskell) with a construct for writing polytypic functions. The extended language type checks definitions of polytypic functions, and infers the types of all other expressions. Programs in the extended language are translated to Haskell.

Keywords: Programming languages, Functional programming, Algebraic datatypes, Polytypic programming, Generic programming

AMS 1991 subject classification 68N15, 68N20


Last modified: Tue Mar 24 14:16:51 EST 1998 by
Patrik Jansson / NOpatrikjSP@AMchalmers.se