Practical normalization by evaluation for EDSLs
Paper i proceeding, 2021

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.

Partial Evaluation

Normalization by Evaluation




Nachiappan Valliappan

Chalmers, Data- och informationsteknik, Informationssäkerhet

Alejandro Russo

Chalmers, Data- och informationsteknik, Informationssäkerhet

Sam Lindley

University of Edinburgh

Haskell 2021 - Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell, co-located with ICFP 2021

9781450386159 (ISBN)

14th ACM SIGPLAN International Symposium on Haskell, Haskell 2021, co-located with ICFP 2021
Virtual, Online, South Korea,

Octopi: Säker Programering för Sakernas Internet

Stiftelsen för Strategisk forskning (SSF) (RIT17-0023), 2018-03-01 -- 2023-02-28.


Inbäddad systemteknik

Datavetenskap (datalogi)




Mer information

Senast uppdaterat