|
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
|
Isabelle Attali , Carine Courbis , Pascal Degenne , Alexandre Fau , Didier Parigot , Claude Pasquier, SmartTools: A Generator of Interactive Environments Tools, Proceedings of the 10th International Conference on Compiler Construction, p.355-360, April 02-06, 2001
|
| |
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
|
Don Batory , Jeff Thomas , Marty Sirkin, Reengineering a complex application using a scalable data structure compiler, Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, p.111-120, December 06-09, 1994, New Orleans, Louisiana, United States
|
| |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
| |
16
|
|
| |
17
|
|
 |
18
|
|
 |
19
|
Dan Bonachea , Kathleen Fisher , Anne Rogers , Frederick Smith, Hancock: a language for processing very large-scale data, Proceedings of the 2nd conference on Domain-specific languages, p.163-176, October 03-06, 1999, Austin, Texas, United States
|
| |
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
|
Martin Bravenboer , Eelco Visser, Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
| |
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
|
Shigeru Chiba, A metaobject protocol for C++, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.285-299, October 15-19, 1995, Austin, Texas, United States
|
| |
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
|
Robert W. Gray , Steven P. Levi , Vincent P. Heuring , Anthony M. Sloane , William M. Waite, Eli: a complete, flexible compiler construction system, Communications of the ACM, v.35 n.2, p.121-130, Feb. 1992
[doi> 10.1145/129630.129637]
|
| |
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
|
Richard B. Kieburtz , Laura McKinney , Jeffrey M. Bell , James Hook , Alex Kotov , Jeffrey Lewis , Dino P. Oliva , Tim Sheard , Ira Smith , Lisa Walton, A software engineering experiment in software component generation, Proceedings of the 18th international conference on Software engineering, p.542-552, March 25-29, 1996, Berlin, Germany
|
| |
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
|
Sanjeev Kumar , Yitzhak Mandelbaum , Xiang Yu , Kai Li, ESP: a language for programmable devices, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.309-320, June 2001, Snowbird, Utah, United States
|
| |
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
|
Marjan Mernik , Uroš Novak , Enis Avdičaušević , Viljem Žumer, Design and implementation of simple object description language, Proceedings of the 2001 ACM symposium on Applied computing, p.590-595, March 2001, Las Vegas, Nevada, United States
[doi> 10.1145/372202.372468]
|
 |
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
|
Mark G. J. van den Brand , Arie van Deursen , Jan Heering , H. A. de Jong , Merijn de Jonge , Tobias Kuipers , Paul Klint , Leon Moonen , Pieter A. Olivier , Jeroen Scheerder , Jurgen J. Vinju , Eelco Visser , Joost Visser, The ASF+SDF Meta-environment: A Component-Based Language Development Environment, Proceedings of the 10th International Conference on Compiler Construction, p.365-370, April 02-06, 2001
|
 |
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
|
Jianxin Xiong , Jeremy Johnson , Robert Johnson , David Padua, SPL: a language and compiler for DSP algorithms, Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, p.298-308, June 2001, Snowbird, Utah, United States
|
CITED BY 46
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Steve Freeman , Nat Pryce, Evolving an embedded domain-specific language in Java, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christian Hofer , Klaus Ostermann , Tillmann Rendel , Adriaan Moors, Polymorphic embedding of dsls, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Félix García , Francisco Ruiz , Coral Calero , Manuel f. Bertoa , Antonio Vallecillo , Beatriz Mora , Mario Piattini, Effective use of ontologies in software measurement, The Knowledge Engineering Review, v.24 n.1, p.23-40, March 2009
|
|
|
|
|
|
|
|
|
|
|
|
Marie-Noëlle Terrasse , Marinette Savonnet , Eric Leclercq , George Becker , Thierry Grison , Laurence Favier , Carlo Daffara, E-Government: on the Way Towards Frameworks for Application Engineering, Proceeding of the 2008 conference on Information Modelling and Knowledge Bases XIX, p.330-337, June 15, 2008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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...
|