Unembedding domain-specific languages

Robert Atkey, Sam Lindley, Jeremy Yallop

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

32 Citations (Scopus)

Abstract

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.
LanguageEnglish
Title of host publicationHaskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell
EditorsStephanie Weirich
Pages37-48
Number of pages12
DOIs
Publication statusPublished - 2009
Event2nd ACM SIGPLAN symposium on Haskell - Edinburgh, United Kingdom
Duration: 31 Aug 20092 Sep 2009

Conference

Conference2nd ACM SIGPLAN symposium on Haskell
CountryUnited Kingdom
CityEdinburgh
Period31/08/092/09/09

Keywords

  • domain-specific languages
  • coding
  • syntax
  • programming environments

Cite this

Atkey, R., Lindley, S., & Yallop, J. (2009). Unembedding domain-specific languages. In S. Weirich (Ed.), Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell (pp. 37-48) https://doi.org/10.1145/1596638.1596644
Atkey, Robert ; Lindley, Sam ; Yallop, Jeremy. / Unembedding domain-specific languages. Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell . editor / Stephanie Weirich. 2009. pp. 37-48
@inproceedings{b9f3ad456e984bc7b0a10c42608f752d,
title = "Unembedding domain-specific languages",
abstract = "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.",
keywords = "domain-specific languages , coding, syntax, programming environments",
author = "Robert Atkey and Sam Lindley and Jeremy Yallop",
year = "2009",
doi = "10.1145/1596638.1596644",
language = "English",
isbn = "978-1-60558-508-6",
pages = "37--48",
editor = "Stephanie Weirich",
booktitle = "Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell",

}

Atkey, R, Lindley, S & Yallop, J 2009, Unembedding domain-specific languages. in S Weirich (ed.), Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell . pp. 37-48, 2nd ACM SIGPLAN symposium on Haskell , Edinburgh, United Kingdom, 31/08/09. https://doi.org/10.1145/1596638.1596644

Unembedding domain-specific languages. / Atkey, Robert; Lindley, Sam; Yallop, Jeremy.

Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell . ed. / Stephanie Weirich. 2009. p. 37-48.

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

TY - GEN

T1 - Unembedding domain-specific languages

AU - Atkey, Robert

AU - Lindley, Sam

AU - Yallop, Jeremy

PY - 2009

Y1 - 2009

N2 - 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.

AB - 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.

KW - domain-specific languages

KW - coding

KW - syntax

KW - programming environments

U2 - 10.1145/1596638.1596644

DO - 10.1145/1596638.1596644

M3 - Conference contribution book

SN - 978-1-60558-508-6

SP - 37

EP - 48

BT - Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell

A2 - Weirich, Stephanie

ER -

Atkey R, Lindley S, Yallop J. Unembedding domain-specific languages. In Weirich S, editor, Haskell '09 Proceedings of the 2nd ACM SIGPLAN Symposium on Haskell . 2009. p. 37-48 https://doi.org/10.1145/1596638.1596644