Scinovex
reviewTop 1% cited

When and how to develop domain-specific languages

ACM Computing Surveys · 2005 · Vol. 37(4) · pp. 316–344
Marjan MernikJan HeeringAnthony M. Sloane

Abstract

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 application library stage.Although many articles have been written on the development of particular DSLs, there is very limited literature on DSL development methodologies and many questions remain regarding when and how to develop a DSL. To aid the DSL developer, we identify patterns in the decision, analysis, design, and implementation phases of DSL development. Our patterns improve and extend earlier work on DSL design patterns. We also discuss domain analysis tools and language development systems that may help to speed up DSL development. Finally, we present a number of open problems.

Model-Driven Software Engineering TechniquesAdvanced Software Engineering MethodologiesSoftware Engineering ResearchDigital subscriber lineComputer scienceDomain-specific languageDomain (mathematical analysis)Programming languageDomain analysisDevelopment (topology)Software engineeringSoftware developmentSoftware
Citations
1,694
FWCI
53.51
field-weighted impact
References
161
Percentile
100%
vs. same field & year
Citations per year
Cited by
Exploration and exploitation in evolutionary algorithms
ACM Computing Surveys · 2013 · 1,264 citations
References
Software reuse
ACM Computing Surveys · 1992 · 1,417 citations
Related articles
When and how to develop domain-specific languages
ACM Computing Surveys · 2005 · 1,694 citations
Citation Network

How this paper connects to the literature. Drag to explore, click any node to open that paper.