Projects per year
Abstract
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.
Original language | English |
---|---|
Title of host publication | Proceedings of the 14th ACM SIGPLAN International Haskell Symposium (Haskell 2021) |
Place of Publication | Virtual, Republic of Korea |
Publisher | ACM |
Pages | 56-70 |
Number of pages | 15 |
ISBN (Electronic) | 9781450386159 |
DOIs | |
Publication status | Published - 18 Aug 2021 |
Event | ACM SIGPLAN Haskell Symposium 2021 - Virtual Duration: 26 Aug 2021 → 27 Aug 2021 https://www.haskell.org/haskell-symposium/2021/index.html |
Symposium
Symposium | ACM SIGPLAN Haskell Symposium 2021 |
---|---|
Abbreviated title | Haskell 2021 |
Period | 26/08/21 → 27/08/21 |
Internet address |
Keywords
- Normalization by Evaluation
- Partial Evaluation
- eDSL
- Haskell
Projects
- 1 Active