When and how to develop domain-specific languages

被引:908
作者
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 条
[1]  
Anlauff M, 1999, LECT NOTES COMPUT SC, V1575, P296
[2]  
[Anonymous], P ACM SIGPLAN 2001 C
[3]  
[Anonymous], 2003, OWL Web Ontology Language Reference"
[4]  
Antoniotti M, 1997, PROCEEDINGS OF THE CONFERENCE ON DOMAIN-SPECIFIC LANGUAGES, P171
[5]   Mawl: A domain-specific language for form-based services [J].
Atkins, DL ;
Ball, T ;
Bruns, G ;
Cox, K .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1999, 25 (03) :334-346
[6]  
ATTALI I, 2001, LECT NOTES COMPUTER, V2027, P355
[7]   The design and implementation of SPARK, a Toolkit for implementing domain-specific languages [J].
Aycock, John .
Journal of Computing and Information Technology, 2002, 10 (01) :55-66
[8]  
BACKUS JW, 1960, P INT C INF PROC UNE, P125
[9]  
Badros G. J., 2000, P 9 INT WORLD WID WE
[10]  
BAGGE OS, 2003, P 4 INT WORKSH RUL B, V86