Compositionality in embedded DSLs
There are two main approaches to implementing domain-specific languages. With the standalone approach,independent tools such as compilers and run-time environments for the DSL are implemented in one or more general-purpose programming languages. With the embedded approach, the DSL implementation takes the form of a library of definitions in the host language, and a program in the DSL is merely a program in the host language that makes use of the library.
Amongst embedded DSLs, there are two further refinements. With a deep embedding, terms in the DSL are implemented simply to construct an abstract syntax tree (AST), which is subsequently transformed for optimization and traversed for evaluation. With a shallow embedding, terms in the DSL are implemented directly by their semantics, bypassing the intermediate AST and its traversal. Deep embeddings might seem like the obvious approach, but Kamin and Erwig (among others) argue that shallow embeddings are superior.
Our focus in this talk proposal is the relationship between deep and shallow embeddings of DSLs, and the connection to compositional semantics.
I am Director of the Software Engineering Programme, which offers part-time professional Masters’ degrees in Software Engineering and in Software and Systems Security. I am currently the Chair of Faculty of Computer Science. For the academic years 2008-2010 was also Deputy Director of the Computing Laboratory (now the Department of Computer Science). I am a fellow of Kellogg College. Before taking up this post in 1999, I held lectureships at Oxford Brookes University and the University of Auckland, New Zealand.
Mon 20 OctDisplayed time zone: Tijuana, Baja California change
08:30 - 10:00
|Welcome & Introductions|
|Compositionality in embedded DSLs|
Jeremy Gibbons University of Oxford, UK
|Formal Semantics as a Language Designer’s Toolbox: A case for semantics-inspired language design|