Unembedding domain-specific languages

Robert Atkey*, Sam Lindley, Jeremy Yallop

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contribution

39 Citations (Scopus)


Higher-order abstract syntax provides a convenient way of embedding domain-specific languages, but is awkward to analyse and manipulate directly. We explore the boundaries of higher-order abstract syntax. Our key tool is the unembedding of embedded terms as de Bruijn terms, enabling intensional analysis. As part of our solution we present techniques for separating the definition of an embedded program from its interpretation, giving modular extensions of the embedded language, and different ways to encode the types of the embedded language.

Original languageEnglish
Title of host publicationHaskell '09: Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
PublisherAssociation for Computing Machinery
Number of pages12
ISBN (Print)9781605585086
Publication statusPublished - Sept 2009
Event2nd ACM SIGPLAN Haskell Symposium 2009 - Edinburgh, United Kingdom
Duration: 3 Sept 20093 Sept 2009


Conference2nd ACM SIGPLAN Haskell Symposium 2009
Abbreviated titleHaskell'09
Country/TerritoryUnited Kingdom


  • Domain-specific languages
  • Higher-order abstract syntax
  • Type classes
  • Unembedding

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Hardware and Architecture
  • Software


Dive into the research topics of 'Unembedding domain-specific languages'. Together they form a unique fingerprint.

Cite this