Affiliation:
1. Vrije Universiteit Brussel, Belgium
Abstract
Internal DSLs are a special kind of DSLs that use an existing programming language as their host. To build them successfully, knowledge regarding how to modify the host language is essential. In this chapter, the author contributes six DSL design principles and 21 DSL design patterns. DSL Design principles provide guidelines that identify specific design goals to shape the syntax and semantic of a DSL. DSL design patterns express proven knowledge about recurring DSL design challenges, their solution, and their connection to each other – forming a rich vocabulary that developers can use to explain a DSL design and share their knowledge. The chapter presents design patterns grouped into foundation patterns (which provide the skeleton of the DSL consisting of objects and methods), notation patterns (which address syntactic variations of host language expressions), and abstraction patterns (which provide the domain-specific abstractions as extensions or even modifications of the host language semantics).
Reference75 articles.
1. Agosta, G., & Pelosi, G. (2007). A domain specific language for cryptography. In Proceedings of the Forum on Specification and Design Languages (pp. 59–164). Gières, France: ECSI.
2. Arpaia, P., Buzio, M., Fiscarelli, L., Inglese, V., La Commara, G., & Walckiers, L. (2009). Measurement-domain specific language for magnetic test specifications at CERN. In IEEE International Instrumentation and Measurement Technology Conference (pp. 1716 –1720). Washington, DC: IEEE.
3. Mawl: a domain-specific language for form-based services
4. Paradise
5. Avgeriou, P., & Zdun, U. (2005). Architectural patterns revisited - A pattern language. In A. Longshaw & U. Zdun (Ed.), Proceedings of the 10th European Conference on Pattern Languages of Programs (EuroPLoP) (pp. 431–469). Konstanz, Germany: Universitätsverlag Konstanz.