We present a technique to combine deep and shallow embedding in the context of compiling embedded languages in order to provide the benefits of both techniques. When compiling embedded languages it is natural to use an abstract syntax tree to represent programs. This is known as a deep embedding and it is a rather cumbersome technique compared to other forms of embedding, typically leading to more code and being harder to extend. In shallow embeddings, language constructs are mapped directly to their semantics which yields more flexible and succinct implementations. But shallow embeddings are not well-suited for compiling embedded languages.Our technique uses a combination of deep and shallow embedding, which helps keeping the deep embeddin...
Software written in one language often needs to construct sentences in another language, such as SQL...
Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose ...
Abstract Scala-Virtualized extends the Scala language to better support hosting embedded DSLs. Scala...
When compiling embedded languages it is natural to use an abstract syntax tree to represent programs...
Deep and shallow embeddings are two popular techniques for embedding a language in a host language w...
AbstractEmbedding is the process of implementing a language by defining functions in an existing “ho...
In the recent years, there is an increasing interest for new programming languages that are special ...
Deeply embedded domain-specific languages (EDSLs) intrinsically compromise programmer experience for...
Embedding describes the process of encoding a program\u27s syntax and/or semantics in another langua...
We describe an experiment in the use of domain-specific embedded languages for program generation. S...
Experiences are presented from a new case study of embedding domain-specific languages in the lazy f...
Functional languages are particularly well-suited to the implementation of interpreters for domain-s...
For automation it is important to express the knowledge of the experts in a form that is understood ...
Domain-specific languages are small, special purpose languages cre-ated to describe computational so...
Embedded domain-specific languages (DSLs) are a new light-weight approach to implement DSLs with low...
Software written in one language often needs to construct sentences in another language, such as SQL...
Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose ...
Abstract Scala-Virtualized extends the Scala language to better support hosting embedded DSLs. Scala...
When compiling embedded languages it is natural to use an abstract syntax tree to represent programs...
Deep and shallow embeddings are two popular techniques for embedding a language in a host language w...
AbstractEmbedding is the process of implementing a language by defining functions in an existing “ho...
In the recent years, there is an increasing interest for new programming languages that are special ...
Deeply embedded domain-specific languages (EDSLs) intrinsically compromise programmer experience for...
Embedding describes the process of encoding a program\u27s syntax and/or semantics in another langua...
We describe an experiment in the use of domain-specific embedded languages for program generation. S...
Experiences are presented from a new case study of embedding domain-specific languages in the lazy f...
Functional languages are particularly well-suited to the implementation of interpreters for domain-s...
For automation it is important to express the knowledge of the experts in a form that is understood ...
Domain-specific languages are small, special purpose languages cre-ated to describe computational so...
Embedded domain-specific languages (DSLs) are a new light-weight approach to implement DSLs with low...
Software written in one language often needs to construct sentences in another language, such as SQL...
Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose ...
Abstract Scala-Virtualized extends the Scala language to better support hosting embedded DSLs. Scala...