### Skapa referens, olika format (klipp och klistra)

**Harvard**

Jansson, P. (2000) *Functional Polytypic Programming*. Göteborg : Chalmers University of Technology (Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie, nr: 1584).

** BibTeX **

@book{

Jansson2000,

author={Jansson, Patrik},

title={Functional Polytypic Programming},

isbn={91-7197-895-X},

abstract={Many algorithms have to be implemented over and over again for different datatypes, either because datatypes change during the development of programs, or because the same algorithm is used for several datatypes. Examples of such algorithms are equality tests, pretty printers, and pattern matchers, and polytypic programming is a paradigm for expressing such algorithms. This dissertation introduces polytypic programming for functional programming languages, shows how to construct and prove properties of polytypic algorithms, presents the language extension PolyP for implementing polytypic algorithms in a type safe way, and presents a number of applications of polytypic programming. The applications include a library of basic polytypic building blocks, PolyLib, and two larger applications of polytypic programming: rewriting and data conversion. <p />PolyP extends a functional language (a subset of Haskell) with a construct for defining polytypic functions by induction on the structure of user-defined datatypes. Programs in the extended language are translated to Haskell. <p />PolyLib contains powerful structured recursion operators like catamorphisms, maps and traversals, as well as polytypic versions of a number of standard functions from functional programming: sum, length, zip, (==), (<=), etc. Both the specification of the library and a PolyP implementation are presented. <p />The first larger application is a framework for polytypic programming on terms. We show that an interface of four functions is sufficient to express polytypic functions for pattern matching, unification and term rewriting. Using this framework, a term rewriting function is specified and transformed into an efficient and correct implementation. <p />In the second application, a number of functions for polytypic data conversion are implemented and proved correct. The conversions considered include pretty printing, parsing, packing and unpacking of structured data. The conversion functions are expressed in an embedded domain specific language for data conversion (a hierarchy of Haskell's constructor classes).},

publisher={Institutionen för datavetenskap, Chalmers tekniska högskola,},

place={Göteborg},

year={2000},

series={Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie, no: 1584},

keywords={programming languages, functional programming, algebraic datatypes, polytypic programming, generic programming},

note={190},

}

** RefWorks **

RT Dissertation/Thesis

SR Electronic

ID 804

A1 Jansson, Patrik

T1 Functional Polytypic Programming

YR 2000

SN 91-7197-895-X

AB Many algorithms have to be implemented over and over again for different datatypes, either because datatypes change during the development of programs, or because the same algorithm is used for several datatypes. Examples of such algorithms are equality tests, pretty printers, and pattern matchers, and polytypic programming is a paradigm for expressing such algorithms. This dissertation introduces polytypic programming for functional programming languages, shows how to construct and prove properties of polytypic algorithms, presents the language extension PolyP for implementing polytypic algorithms in a type safe way, and presents a number of applications of polytypic programming. The applications include a library of basic polytypic building blocks, PolyLib, and two larger applications of polytypic programming: rewriting and data conversion. <p />PolyP extends a functional language (a subset of Haskell) with a construct for defining polytypic functions by induction on the structure of user-defined datatypes. Programs in the extended language are translated to Haskell. <p />PolyLib contains powerful structured recursion operators like catamorphisms, maps and traversals, as well as polytypic versions of a number of standard functions from functional programming: sum, length, zip, (==), (<=), etc. Both the specification of the library and a PolyP implementation are presented. <p />The first larger application is a framework for polytypic programming on terms. We show that an interface of four functions is sufficient to express polytypic functions for pattern matching, unification and term rewriting. Using this framework, a term rewriting function is specified and transformed into an efficient and correct implementation. <p />In the second application, a number of functions for polytypic data conversion are implemented and proved correct. The conversions considered include pretty printing, parsing, packing and unpacking of structured data. The conversion functions are expressed in an embedded domain specific language for data conversion (a hierarchy of Haskell's constructor classes).

PB Institutionen för datavetenskap, Chalmers tekniska högskola,

T3 Doktorsavhandlingar vid Chalmers tekniska högskola. Ny serie, no: 1584

LA eng

LK http://www.cse.chalmers.se/~patrikj/poly/polythesis/Jansson2000_PhD_thesis.pdf

LK http://publications.lib.chalmers.se/records/fulltext/804.pdf

OL 30