Presentation at Workshop on Generic Programming
Tillmann Rendel
AlumniTillmann Rendel presents an invited talk at the
Workshop on Generic Programming (WGP) in Vancouver, British
Columbia. The talk is based on work with
Jonathan Brachthäuser
AlumniJonathan Brachthäuser, Julia Trieflinger
AlumniJulia Trieflinger,
Paolo Giarrusso
AlumniPaolo Giarrusso, and Klaus Ostermann
HeadKlaus Ostermann.
Contents
The main part of the talk presents three ideas related to the expression problem.
-
It turns out that we can use defunctionalization and refunctionalization to convert between shallow and deep embedding of a DSL, and between a datatype with a fold function and the final embedding of that datatype.
-
We need to go beyond the two dimensions of modularity described by the expression problem to scale to large software systems, allowing components with internal structure and dependencies. (Based on our modular, linear and compositional encoding of attribute grammars as object algebras in Scala, see algebra composition project and OOPSLA 2014 paper).
-
Should it be possible to dualize the expression problem (about open data types) to the co-expression problem (about open codata types)?
The talk ends with a short overview of our recent work on a language with symmetric support for programming with data and codata (see Uroboro project and ICFP 2015 paper, which was partly motivated by the three ideas presented in the main part of the talk.
Further Information
Publications
From Object Algebras to Attribute Grammars
by Tillmann Rendel, Jonathan Brachthäuser, and Klaus Ostermann
In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA), pages 377–395. ACM Press, 2014.
Learn More
Automatic Refunctionalization to a Language with Copattern Matching: With Applications to the Expression Problem
by Tillmann Rendel, Julia Trieflinger, and Klaus Ostermann
In Proceedings of International Conference on Functional Programming, pages 269–279. ACM, 2015.
Learn More