Practical Normalization by Evaluation for EDSLs
Embedded domain-specific languages (eDSLs) are typically implemented in a rich host language, such as Haskell, using a combination of deep and shallow embedding techniques. While such a combination enables programmers to exploit the execution mechanism of Haskell to build and specialize eDSL programs, it blurs the distinction between the host language and the eDSL. As a consequence, extension with features such as sums and effects requires a significant amount of ingenuity from the eDSL designer. In this paper, we demonstrate that Normalization by Evaluation (NbE) provides a principled framework for building, extending, and customizing eDSLs. We present a comprehensive treatment of NbE for deeply embedded eDSLs in Haskell that involves a rich set of features such as sums, arrays, exceptions and state, while addressing practical concerns about normalization such as code expansion and the addition of domain-specific features.
Fri 27 AugDisplayed time zone: Seoul change
20:00 - 21:30 | |||
20:00 30mTalk | Practical Normalization by Evaluation for EDSLs Haskell Nachiappan Valliappan Chalmers University of Technology, Sweden, Alejandro Russo Chalmers University of Technology, Sweden, Sam Lindley The University of Edinburgh, UK | ||
20:30 30mTalk | Safe Mutation with Algebraic Effects Haskell | ||
21:00 30mTalk | Seeking Stability by being Lazy and Shallow: Lazy and shallow instantiation is user friendly Haskell |