When and how to develop domain-specific languages

被引:909
作者
Mernik, M
Heering, J
Sloane, AM
机构
[1] Univ Maribor, Fac Elect Engn & Comp Sci, SLO-2000 Maribor, Slovenia
[2] CWI, Dept Software Engn, NL-1098 SJ Amsterdam, Netherlands
[3] Macquarie Univ, Dept Comp, Sydney, NSW 2109, Australia
关键词
design; languages; performance; domain-specific language; application language; domain analysis; language development system;
D O I
10.1145/1118890.1118892
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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.
引用
收藏
页码:316 / 344
页数:29
相关论文
共 156 条
[91]  
Lengauer C., 2004, LECT NOTES COMPUTER, V3016
[92]  
Levy MR, 1998, SOFTWARE PRACT EXPER, V28, P1581, DOI 10.1002/(SICI)1097-024X(19981225)28:15<1581::AID-SPE215>3.0.CO
[93]  
2-P
[94]  
MARTIN J, 1985, PRINCIPLES, V2
[95]  
MARTIN J, 1985, 4 GENERATION LANGUAG, V1
[96]   Language-driven system design [J].
Mauw, S ;
Wiersma, WT ;
Willemse, TAC .
INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2004, 14 (06) :625-663
[97]  
Mernik M., 2000, Informatica, V24, P319
[98]   Implementation of multiple attribute grammar inheritance in the tool LISA [J].
Mernik, M ;
Zumer, V ;
Lenic, M ;
Avdieausevic, E .
ACM SIGPLAN NOTICES, 1999, 34 (06) :68-75
[99]  
MERNIK M, 2001, P ACM S APPL COMP SA, P590
[100]  
MERNIK M, 2001, J COMPUT INFORM TECH, V9