ACM Home Page
Please provide us with feedback. Feedback
When and how to develop domain-specific languages
Full text PdfPdf (318 KB)
Source ACM Computing Surveys (CSUR) archive
Volume 37 ,  Issue 4  (December 2005) table of contents
Pages: 316 - 344  
Year of Publication: 2005
ISSN:0360-0300
Authors
Marjan Mernik  University of Maribor, Maribor, Slovenia
Jan Heering  CWI, Amsterdam, The Netherlands
Anthony M. Sloane  Macquarie University, Sydney, Australia
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 176,   Downloads (12 Months): 1187,   Citation Count: 46
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1118890.1118892
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Antoniotti, M. and Göllü, A. 1997. SHIFT and SMART-AHS: A language for hybrid system engineering modeling and simulation. In Proceedings of the USENIX Conference on Domain-Specific Languages, 171--182.
 
3
 
4
 
5
Aycock, J. 2002. The design and implementation of SPARK, a toolkit for implementing domain-specific languages. J. Comput. Inform. Tech. 10, 1, 55--66.
 
6
Backus, J. W. 1960. The syntax and semantics of the proposed International Algebraic Language of the Zurich ACM-GAMM conference. In Proceedings of the International Conference on Information Processing, UNESCO, Paris, 1959. Oldenbourg, Munich and Butterworth, London, 125--132.
 
7
 
8
Bagge, O. S. and Haveraaen, M. 2003. Domain-specific optimisation with user-defined rules in CodeBoost. In Proceedings of the 4th International Workshop on Rule-Based Programming (RULE'03), J.-L. Giavitto and P.-E. Moreau, Eds. Electronic Notes in Theoretical Computer Science, vol. 86(2). Elsevier. http://www.sciencedirect.com/.
 
9
 
10
11
 
12
13
14
15
 
16
 
17
18
19
 
20
Bosch, J. and Dittrich, Y. Domain-specific languages for a changing world. http://www.cs.rug.nl/bosch/articles.html.
21
 
22
Braband, C., Schwartzbach, M. I., and Vanggaard, M. 2003. The metafront system: Extensible parsing and transformation. In Proceedings of the 3rd Workshop on Language Descriptions, Tools, and Applications (LDTA'03), B. R. Bryant and J. Saraiva, Eds. Electronic Notes in Theoretical Computer Science, vol. 82(3). Elsevier. http://www.sciencedirect.com/.
23
 
24
Brooks, Jr., F. P. 1996. Language design as design. In History of Programming Languages II. T. J. Bergin and R. C. Gibson Eds. ACM Press, 4--15.
 
25
 
26
 
27
 
28
 
29
30
 
31
 
32
 
33
Clements, J., Felleisen, M., Findler, R., Flatt, M., and Krishnamurthi, S. 2004. Fostering little languages. Dr. Dobb's J. 29, 3 (March), 16--24.
 
34
 
35
 
36
Cordy, J. R. 2004. TXL---A language for programming language tools and applications. In Proceedings of the 4th Workshop on Language Descriptions, Tools, and Applications (LDTA'04), G. Hedin and E. van Wyk, Eds. Electronic Notes in Theoretical Computer Science, vol. 110. Elsevier, 3--31. http://www.sciencedirect.com/.
 
37
Courbis, C. and Finkelstein, A. 2004. Towards an aspect weaving BPEL engine. In Proceedings of the 3rd AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS), Y. Coady and D. H. Lorenz, Eds. Tech. rep. NU-CCIS-04-04, College of Computer and Information Science, Northeastern University, Boston, MA.
38
39
 
40
Crew, R. F. 1997. ASTLOG: A language for examining abstract syntax trees. In Proceedings of the USENIX Conference on Domain-Specific Languages, 229--242.
 
41
 
42
 
43
Dean, M., Schreiber, G., van Harmelen, F., Hendler, J., Horrocks, I., McGuinness, D. L., Patel-Schneider, P. F., and Stein, L. A. 2003. OWL Web Ontology Language Reference. Working draft, W3C (March). http://www.w3.org/TR/2003/WD-owl-ref-20030331/.
 
44
Denny, M. 2003. Ontology building: A survey of editing tools. Tech. rep., XML.com. http://www.xml.com/lpt/a/2002/11/06/ontologies.html.
 
45
 
46
Faith, R. E., Nyland, L. S., and Prins, J. F. 1997. Khepera: A system for rapid implementation of domain specific languages. In Proceedings of the USENIX Conference on Domain-Specific Languages, 243--255.
47
 
48
Felleisen, M., Findler, R., Flatt, M., and Krishnamurthi, S. 2004. Building little languages with macros. Dr. Dobb's J. 29, 4 (April), 45--49.
 
49
 
50
 
51
 
52
 
53
Germon, R. 2001. Using XML as an intermediate form for compiler development. In XML Conference Proceedings. http://www.idealliance.org/papers/xml2001/index.html.
 
54
Gil, J. and Tsoglin, Y. 2001. JAMOOS---A domain-specific language for language processing. J. Comput. Inform. Tech. 9, 4, 305--321.
 
55
Gilmore, S. and Ryan, M., Eds. 2001. Language Constructs for Describing Features---Proceedings of the FIREworks Workshop. Springer-Verlag.
 
56
Glässer, U., Gurevich, Y., and Veanes, M. 2002. An abstract communication model. Tech. rep. MSR-TR-2002-55. Microsoft Research, Redmond, WA.
 
57
Gondow, K. and Kawashima, H. 2002. Towards ANSI C program slicing using XML. In Proceedings of the 2nd Workshop on Language Descriptions, Tools, and Applications (LDTA'02), M. G. J. van den Brand and R. Lämmel, Eds. Electronic Notes in Theoretical Computer Science, vol. 65(3). Elsevier. http://www.sciencedirect.com/.
 
58
 
59
Granicz, A. and Hickey, J. 2003. Phobos: Extending compilers with executable language definitions. In Proceedings of the 36th Hawaii International Conference on System Sciences.
 
60
61
 
62
63
 
64
Guyer, S. Z. and Lin, C. 2005. Broadway: A compiler for exploiting the domain-specific semantics of software libraries. In Proceedings of IEEE, 93, 2, 342--357.
65
 
66
 
67
HICSS 2001. Proceedings of the 34th Hawaii International Conference on System Sciences (HICSS'34). IEEE.
 
68
HICSS 2002. Proceedings of the 35th Hawaii International Conference on System Sciences (HICSS'35). IEEE.
 
69
HICSS 2003. Proceedings of the 36th Hawaii International Conference on System Sciences (HICSS'36). IEEE.
70
 
71
72
 
73
Jones, C. 1996. SPR Programming Languages Table Release 8.2, http://www.theadvisors.com/langcomparison.htm. (Accessed April 2005). Later release not available at publication.
 
74
 
75
 
76
Kamin, S., Ed. 1997. DSL'97---1st ACM SIGPLAN Workshop on Domain-Specific Languages in Association with POPL'97. University of Illinois Computer Science Report.
 
77
Kamin, S. 1998. Research on domain-specific embedded languages and program generators. Electro. Notes Theor. Comput. Sci. 14. http://www.sciencedirect.com/.
 
78
Kamin, S. and Hyatt, D. 1997. A special-purpose language for picture-drawing. In Proceedings of the USENIX Conference on Domain-Specific Languages, 297--310.
 
79
Kang, K. C., Cohen, S. G., Hess, J. A., Novak, W. E., and Peterson, A. S. 1990. Feature-oriented domain analysis (FODA) feasibility study. Tech. rep. CMU/SEI-90-TR-21. Software Engineering Institute, Carnegie Mellon University.
 
80
 
81
 
82
 
83
Kienle, H. M. and Moore, D. L. 2002. smgn: Rapid prototyping of small domain-specific languages. J. Comput. Inform. Tech. 10, 1, 37--53.
 
84
85
 
86
Kuck, D. J. 2005. Platform 2015 software: Enabling innovation in parallelism for the next decade. Technology@Intel Magazine. http://www.intel.com/technology/magazine/computing/Parallelism-0405.htm.
87
 
88
89
 
90
Lengauer, C., Batory, D., Consel, C., and Odersky, M., Eds. 2004. Domain-Specific Program Generation. Lecture Notes in Computer Science, vol. 3016. Springer-Verlag.
 
91
 
92
 
93
Mauw, S., Wiersma, W., and Willemse, T. 2004. Language-driven system design. Int. J. Softw. Eng. Knowl. Eng. 14, 1--39.
 
94
Mernik, M. and Lämmel, R. 2001. Special issue on domain-specific languages, Part I. J. Comput. Inform. Techn. 9, 4.
 
95
Mernik, M. and Lämmel, R. 2002. Special issue on domain-specific languages, Part II. J. Comput. Inform. Techn. 10, 1.
 
96
Mernik, M., Lenič, M., Avdičaušević, E., and Žumer, V. 2000. Multiple attribute grammar inheritance. Informatica 24, 3 (Sept.), 319--328.
97
98
 
99
Moura, J. M. F., Püschel, M., Padua, D., and Dongarra, J. 2005. Special issue on program generation, optimization, and platform adaptation. Proceedings of the IEEE 93, 2.
 
100
Nakatani, L. and Jones, M. 1997. Jargons and infocentrism. 1st Acm SIGPLAN Workshop on Domain-Specific Languages. 59--74. http://www-sal.cs.uiuc.edu/kamin/dsl/papers/nakatani.ps.
 
101
 
102
Neighbors, J. M. 1984. The Draco approach to constructing software from reusable components. IEEE Trans. Softw. Eng. SE-10, 5 (Sept.), 564--574.
103
 
104
Peyton Jones, S., Tolmach, A., and Hoare, T. 2001. Playing by the rules: Rewriting as a practical optimisation technique in GHC. In Proceedings of the Haskell Workshop.
 
105
 
106
Raymond, E. S. 2001. The CML2 language: Python implementation of a constraint-based interactive configurator. In Proceeding of the 9th International Python Conference. 135--142. http://www.catb.org/esr/cml2/cml2-paper.html.
 
107
 
108
Ross, D. T. 1981. Origins of the APT language for automatically programmed tools. History of Programming Languages, R. L. Wexelblat Ed. Academic Press. 279--338.
 
109
Salus, P. H., Ed. 1998. Little Languages. Handbook of Programming Languages, vol. III. MacMillan.
 
110
 
111
112
 
113
 
114
 
115
SDL Forum. 2000. MSC-2000: Interaction for the new millenium. http://www.sdl-forum.org/MSC2000present/index.htm.
 
116
117
 
118
 
119
 
120
Smaragdakis, Y. and Batory, D. 1997. DiSTiL: A transformation library for data structures. In Proceedings of the USENIX Conference on Domain-Specific Languages. 257--270.
 
121
Smaragdakis, Y. and Batory, D. 2000. Application generators. In Wiley Encyclopedia of Electrical and Electronics Engineering Online, J. Webster, Ed. John Wiley.
 
122
 
123
 
124
Sutcliffe, A. and Mehandjiev, N. 2004. Special issue on End-User Development. Comm. ACM 47, 9.
 
125
126
 
127
Tennent, R. D. 1977. Language design methods based on semantic principles. Acta Inf. 8, 97--112.
 
128
Thatte, S. 2001. XLANG: Web services for business process design. Tech. rep. Microsoft. http://www.gotdotnet.com/team/xml_wsspecs/xlang-c/.
 
129
Thibault, S. A. 1998. Domain-specific languages: Conception, implementation and application. Ph.D. thesis, University of Rennes.
 
130
 
131
 
132
Tracz, W. and Coglianese, L. 1995. DOMAIN (DOmain Model All INtegrated)---a DSSA domain analysis tool. Tech. rep. ADAGE-LOR-94-11. Loral Federal Systems.
 
133
UPnP 2003. Universal Plug and Play Forum. http://www.upnp.org/.
 
134
USENIX 1997. Proceedings of the USENIX Conference on Domain-Specific Languages.
 
135
USENIX 1999. Proceedings of the 2nd USENIX Conference on Domain-Specific Languages (DSL'99).
 
136
137
 
138
 
139
van Deursen, A. and Klint, P. 2002. Domain-specific language design requires feature descriptions. J. Comput. Inform. Tech. 10, 1, 1--17.
140
 
141
van Engelen, R. 2001. ATMOL: A domain-specific language for atmospheric modeling. J. Comput. Inform. Techn. 9, 4, 289--303.
 
142
Veldhuizen, T. L. 1995a. Expression templates. C++ Report 7, 5 (June) 26--31.
 
143
Veldhuizen, T. L. 1995b. Using C++ template metaprograms. C++ Report 7, 4 (May) 36--43.
 
144
Veldhuizen, T. L. 2001. Blitz++ User's Guide. Version 1.2 http://www.oonumerics.org/blitz/manual/blitz.ps.
 
145
Visser, E. 2003. Stratego---Strategies for program transformation. http://www.stratego-language.org.
 
146
Wang, D. C., Appel, A. W., Korn, J. L., and Serra, C. S. 1997. The Zephyr abstract syntax description language. In Proceedings of the USENIX Conference on Domain-Specific Languages, 213--28.
 
147
 
148
Richard L. Wexelblat, History of Programming Languages, Academic Press, Inc., Orlando, FL, 1981
 
149
Wile, D. S. 1993. POPART: Producer of Parsers and Related Tools. USC/Information Sciences Institute. http://mr.teknowledge.com/wile/popart.html.
 
150
Wile, D. S. 2001. Supporting the DSL spectrum. J. Comput. Inform. Techn. 9, 4, 263--287.
 
151
 
152
Wile, D. S. and Ramming, J. C. 1999. Special issue on Domain-Specific Languages. IEEE Trans. Softw. Eng. SE-25, 3 (May/June).
153

CITED BY  46


REVIEW

"Holger Giese : Reviewer"

Are you planning to decide whether your information technology strategy will put domain-specific languages (DSLs) or unified modeling language (UML) at its core? Is your business or research affected by the current DSL hype? Then take a break and   more...

Collaborative Colleagues:
Marjan Mernik: colleagues
Jan Heering: colleagues
Anthony M. Sloane: colleagues