Functional languages are particularly well-suited to the implementation of interpreters for domain-specific embedded languages (DSELs). We describe an implemented technique for producing optimizing compilers for DSELs, based on Kamin's idea of DSELs for program generation. The technique uses a data type of syntax for basic types, a set of smart constructors that perform rewriting over those types, some code motion transformations, and a back-end code generator. Domain-specific optimization results from chains of rewrites on basic types. New DSELs are defined directly in terms of the basic syntactic types, plus host language functions and tuples. This definition style makes compilers easy to write and, in fact, almost identical to the s...
Languages shape thoughts. This is true for human spoken languages as much as for programming languag...
We present a technique to combine deep and shallow embedding in the context of compiling embedded la...
Domain-specific languages (DSLs) are a widely used technique in the programming world, since they ma...
We describe an experiment in the use of domain-specific embedded languages for program generation. S...
For automation it is important to express the knowledge of the experts in a form that is understood ...
In this paper, we present a framework for generating optimizing compilers for performance-oriented e...
AbstractEmbedding is the process of implementing a language by defining functions in an existing “ho...
When compiling Embedded Domain Specific Languages (EDSLs) into other languages, the compiler transla...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Optimizing compilers provide valuable contributions to the quality of processed code. The vast major...
When compiling embedded languages it is natural to use an abstract syntax tree to represent programs...
peer reviewedDomain-specific languages (DSLs) are well-recognized to ease programming and improve ro...
cted from embedded implementations in a semi automated way, further blending the distinction between...
This paper describes a new approach to program optimization that allows general purpose code to bene...
A domain specific language (DSL) allows one to develop software for a particular application domain ...
Languages shape thoughts. This is true for human spoken languages as much as for programming languag...
We present a technique to combine deep and shallow embedding in the context of compiling embedded la...
Domain-specific languages (DSLs) are a widely used technique in the programming world, since they ma...
We describe an experiment in the use of domain-specific embedded languages for program generation. S...
For automation it is important to express the knowledge of the experts in a form that is understood ...
In this paper, we present a framework for generating optimizing compilers for performance-oriented e...
AbstractEmbedding is the process of implementing a language by defining functions in an existing “ho...
When compiling Embedded Domain Specific Languages (EDSLs) into other languages, the compiler transla...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Optimizing compilers provide valuable contributions to the quality of processed code. The vast major...
When compiling embedded languages it is natural to use an abstract syntax tree to represent programs...
peer reviewedDomain-specific languages (DSLs) are well-recognized to ease programming and improve ro...
cted from embedded implementations in a semi automated way, further blending the distinction between...
This paper describes a new approach to program optimization that allows general purpose code to bene...
A domain specific language (DSL) allows one to develop software for a particular application domain ...
Languages shape thoughts. This is true for human spoken languages as much as for programming languag...
We present a technique to combine deep and shallow embedding in the context of compiling embedded la...
Domain-specific languages (DSLs) are a widely used technique in the programming world, since they ma...