When and how to develop domain-specific languages

@article{Mernik2005WhenAH,
  title={When and how to develop domain-specific languages},
  author={Marjan Mernik and Jan Heering and Anthony M. Sloane},
  journal={ACM Comput. Surv.},
  year={2005},
  volume={37},
  pages={316-344}
}
Domain-specific languages (DSLs) are languages tailored to a specific application domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages in their domain of application. DSL development is hard, requiring both domain knowledge and language development expertise. Few people have both. Not surprisingly, the decision to develop a DSL is often postponed indefinitely, if considered at all, and most DSLs never get beyond the… 
Domain-Specific Languages: A Systematic Mapping Study
TLDR
DSLs are introduced by discussing when and how to develop DSLs, then results from SMS will be presented along with open DSL problems such as lacking tool support for DSLs and difficulties in combining DSLs.
The Design, Implementation and Use of Domain Specific Languages
TLDR
This literature survey highlights the decision path for developing a DSL as part of a some other engineering undertaking, as well as some suggested patterns of design provided by researchers in this field.
Unit Testing for Domain-Specific Languages
TLDR
This paper introduces the initial investigation into a unitTesting framework that can be customized for specific DSLs through a reusable mapping of GPL testing tool functionality and provides examples from two different DSL categories that serve as case studies demonstrating the possibilities of a unit testing engine for DSLs.
Systematic mapping study on domain-specific language development tools
TLDR
To identify and map the tools, Language Workbenches (LW), or frameworks that were proposed to develop DSLs discussed and referenced in publications between 2012 and 2019, a Systematic Mapping Study of the literature scoping tools for DSL development is conducted.
An approach for the systematic development of domain-specific languages
TLDR
This paper identifies and describes the different activities that are conducted when engineering a DSL, and describes how these activities can be combined in order to define a tailored DSL engineering process.
Lessons learnt from using DSLs for automated software testing
  • Mark Micallef, C. Colombo
  • Computer Science
    2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW)
  • 2015
Domain Specific Languages (DSLs) provide a means of unambiguously expressing concepts in a particular domain. Although they may not refer to it as such, companies build and maintain DSLs for software
Automated generation of testing tools for domain-specific languages
TLDR
A DSL framework that is implemented to generate DSL testing tools and the feasibility and applicability of using the information derived from DSL grammars and existing software components and services to support end-user debugging and testing in a domain friendly programming environment are demonstrated.
Tool-Supported Multi-Level Language Evolution
TLDR
This paper proposes a concept and a tool for the evolutionary development ofdomain specific languages that provides language evolution operations that automate the adaptation of the compiler and existing DSL programs according to changes to the DSL specification, which significantly reduces the cost of DSL maintenance and paves the ground for bottom-up development of domain specific languages.
An approach for the systematic development of domain‐specific languages
TLDR
This paper identifies and describes the different activities that are conducted when engineering a DSL, and describes how these activities can be combined in order to define a tailored DSL engineering process.
Development of internal domain-specific languages: design principles and design patterns
TLDR
The solution to these challenges is to provide a host-language independent catalog of design principles and design patterns for DSLs, which are found in 12 DSLs of the three host languages Ruby, Python, and Scala.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 231 REFERENCES
Domain-Specific Languages for a Changing World
TLDR
The notion of delegating compiler objects as a means to achieve extensible, flexible and reusable specification of domain-specific languages is discussed.
Modular domain specific languages and tools
  • P. Hudak
  • Computer Science
    Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203)
  • 1998
TLDR
A methodology is described for building domain specific embedded languages (DSELs), in which a DSL is designed within an existing, higher-order and typed, programming language such as Haskell or ML, which facilitates reuse of syntax semantics, implementation code, software tools, and look-and-feel.
Notable design patterns for domain-specific languages
Supporting the DSL Spectrum
TLDR
This paper relates the various DSL design approaches to alternatives for tool support, providing a kind of “DSL tool support selection framework,” indicating where one might expect to need to invest heavily to obtain adequate support and illustrating the spectrum of tradeoffs and situations in which each is appropriate.
Domain-specific language design requires feature descriptions
TLDR
This paper proposes the Feature Description Language (FDL), a textual language to describe features, and explores automated manipulation of feature descriptions such as normalization, expansion to disjunctive normal form, variability computation and constraint satisfaction.
An examination of DSLs for concisely representing model traversals and transformations
  • J. Gray, G. Karsai
  • Computer Science
    36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the
  • 2003
TLDR
This paper reports on three different DSLs that were developed for two different projects that assisted in the specification of various modeling tool ontologies, and the integration of models across these tools.
Post-design domain-specific language embedding: a case study in the software engineering domain
  • A. Sloane
  • Computer Science
    Proceedings of the 35th Annual Hawaii International Conference on System Sciences
  • 2002
TLDR
Experiences are presented from a new case study of embedding domain-specific languages in the lazy functional language Haskell, in contrast to most previous embedding projects, where a design and implementation of the domain languages existed when the project began.
Language-Driven System Design
TLDR
A software engineering methodology that fully exploits the benefits of Domain-Specific Languages in software engineering is discussed, called the Language-Driven Approach (LDA), which prescribes a staged development of a DSL which is tailored to the system-under-construction.
Domain-Specific Languages: From Design to Implementation Application to Video Device Drivers Generation
TLDR
This article focuses on the validation of the proposed framework for domain-specific languages, from design to implementation, which leads to a flexible design and structure, and provides automatic generation of efficient implementations of DSL programs.
Configuring component-based specifications for domain-specific languages
  • P. Pfahler, U. Kastens
  • Computer Science
    Proceedings of the 34th Annual Hawaii International Conference on System Sciences
  • 2001
TLDR
This paper presents component-based DSL design using the Jacob system and discusses some example applications.
...
1
2
3
4
5
...