Domain Specific Language Design
A domain could be a business context e g banking insurance etc or an application context e g a web application database etc in contrast a general purpose language gpl can be used for a wide range of business problems and applications.
Domain specific language design. As such a dsl can be used to generate members of a family of systems in an application domain. There are a wide variety of dsls ranging from widely used languages for common domains such as html for web pages down to languages used by only one or a few pieces of software such as. Existing tool support focuses on the simplification of technical aspects but lacks support for an enforcement of principles for a good language design. Mendix is a company activing in the model driven field.
Domain specific languages have been talked about and used for almost as long as computing has been done. They are languages that are focused on solving one specific problem really well abstracting away details that get in the way of productivity or. A domain specific language dsl is a computer language specialized to a particular application domain this is in contrast to a general purpose language gpl which is broadly applicable across domains. The basic idea of a domain specific language dsl is a computer language that s targeted to a particular kind of problem rather than a general purpose language that s aimed at any kind of software problem.
Domain driven design emphasizes the role of the problem domain as you create the fundamental vocabulary concepts and object model for the system being designed. This article has been written by johan den haan who is the cto at mendix. A domain specific language is a notation for specifying or implementing specific parts of the system oriented to the needs of the practitioner in that domain i e. A domain specific language dsl is a language meant for use in the context of a particular domain.
A concise list of suggestions on designing dsls. A domain specific language dsl is a programming language or executable specification language that of fers through appropriate notations and abstractions expressive power focused on and usually restricted to a particular problem domain 8. In this paper we investigate guidelines that are. Domain driven design ddd is the concept that the structure and language of software code class names class methods class variables should match the business domain for example if a software processes loan applications it might have classes such as loanapplication and customer and methods such as acceptoffer and withdraw.
While it was published some years ago i think it is still relevant. Domain specific languages dsl are super useful. A dsl is a focussed processable language for describing aspecific concern when building asystem in a specific domain.