Results 1 -
4 of
4
Domain Specific Language Implementation via Compile-Time Meta-Programming
- TOPLAS
, 2008
"... Domain specific languages (DSLs) are mini-languages which are increasingly seen as being a valuable tool for software developers and non-developers alike. DSLs must currently be created in an ad-hoc fashion, often leading to high development costs and implementations of variable quality. In this pap ..."
Abstract
-
Cited by 15 (6 self)
- Add to MetaCart
Domain specific languages (DSLs) are mini-languages which are increasingly seen as being a valuable tool for software developers and non-developers alike. DSLs must currently be created in an ad-hoc fashion, often leading to high development costs and implementations of variable quality. In this paper I show how expressive DSLs can be hygienically embedded in the Converge programming language using its compile-time meta-programming facility, the concept of DSL blocks, and specialised error reporting techniques. By making use of pre-existing facilities, and following a simple methodology, DSL implementation costs can be significantly reduced whilst leading to higher quality DSL implementations.
Formalizing Homogeneous Language Embeddings
- LDTA
, 2009
"... The cost of implementing syntactically distinct Domain Specific Languages
(DSLs) can be reduced by homogeneously embedding them in a host language in
cooperation with its compiler. Current homogeneous embedding approaches
either restrict the embedding of multiple DSLs in order to provide safety
guar ..."
Abstract
- Add to MetaCart
The cost of implementing syntactically distinct Domain Specific Languages
(DSLs) can be reduced by homogeneously embedding them in a host language in
cooperation with its compiler. Current homogeneous embedding approaches
either restrict the embedding of multiple DSLs in order to provide safety
guarantees, or allow multiple DSLs to be embedded but force the user to deal
with the interoperability burden. In this paper we present the
mu-calculus which allows parameterisable language embeddings to be
specified and analysed. By reducing the problem to its core essentials we
are able to show how multiple, expressive language embeddings can be
defined in a homogeneous embedding context. We further show how variant
calculi with safety guarantees can be defined.
Extensible Grammars for Homogeneous Language Embedding
"... Abstract. Homogeneous language embedding allows syntactically distinct Domain Specific Languages (DSLs) to be embedded in a host language in co-operation with its compiler. Although such embedded languages can define an entirely new parsing mechanism, they can extend the host languages parser, allow ..."
Abstract
- Add to MetaCart
Abstract. Homogeneous language embedding allows syntactically distinct Domain Specific Languages (DSLs) to be embedded in a host language in co-operation with its compiler. Although such embedded languages can define an entirely new parsing mechanism, they can extend the host languages parser, allowing DSLs and the host language to be arbitrarily interleaved. The µ-calculus is a mechanism for formalising the definition of homogeneously embedded languages. Language embeddings can be semantics based or translational. We argue that a semantics based embedding is more abstract and provides a clear distinction between the embedded language and its host. The µ-calculus supports both approaches and can be used to define and analyse language embeddings. We present a method for defining language embedding using the µ-calculus and show how translational language embedding can be proved correct with respect to a semantics based definition. 1
Evolving a DSL implementation
"... Abstract. Domain Specific Languages (DSLs) are small languages designed for use in a specific domain. DSLs typically evolve quite radically throughout their lifetime, but current DSL implementation approaches are often clumsy in the face of such evolution. In this paper I present a case study of an ..."
Abstract
- Add to MetaCart
Abstract. Domain Specific Languages (DSLs) are small languages designed for use in a specific domain. DSLs typically evolve quite radically throughout their lifetime, but current DSL implementation approaches are often clumsy in the face of such evolution. In this paper I present a case study of an DSL evolving in its syntax, semantics, and robustness, implemented in the Converge language. This shows how real-world DSL implementations can evolve along with changing requirements. 1

