Programming Languages

Paper accepted at ICFP

Our paper on automatic refunctionalization for a language with copattern matching has been accepted for presentation at the International Conference on Functional Programming.

The paper by Tillmann Rendel
Tillmann Rendel
, Julia Trieflinger
Julia Trieflinger
and Klaus Ostermann
Klaus Ostermann
describes the first steps of our efforts to define a simple but expressive language with symmetric support for programming with data types and programming with codata types. Here is the abstract of our submission:

Reynold’s defunctionalization and Danvy’s refunctionalization establish a correspondence between programming with first-class functions and programming with pattern matching, but the correspondence is not symmetric: Not all uses of pattern matching can be automatically refunctionalized to uses of higher-order functions. This asymmetry makes it hard to compare the two styles of programming or convert automatically between them. We generalize from first-class functions to arbitrary codata. This leads us to a pair of languages, one with codata support based on Abel’s copattern matching and one with data support based on pattern matching. They support full defunctionalization and refunctionalization.

Further Information