From the DSLAnnotatedBibliography:

  • Our definition of DomainSpecificLanguages inherits the vagueness of one of its defining terms: problem domain. Rather than attempting to define this volatile notion as well, we list and categorize a number of domains for which DSLs have actually been built.

The DSLAnnotatedBibliography also refers to the "Domain as a set of systems" perspective adopted in the SoftwareReuse and DomainEngineering communities.


GenerativeProgramming, p. 34, is more courageous, and defines a domain as an area of knowledge which:

  • is scoped to maximize the satisfaction of the requirements of its stakeholders
  • includes a set of concepts and terminology understood by practitioners in that area; and
  • includes the knowledge of how to build software systems (or parts of software systems) in that area


SemanticDesigns defines a domain as a formal system of notation having a formal semantics. Their DMSSoftwareReengineeringToolkit supports this notion directly, by enabling a DomainEngineer? to define notations directly, and to define semantics via various means, including attribute evaluators for analyzers and program transformations as axioms and/or implementation methods. Typically one defines a domain for practical reasons, and so these tend to closely match the GenerativeProgramming definition, above, in intent.


CategoryDSL | ArieVanDeursen - 11 May 2001

Revision: r1.4 - 18 Mar 2002 - 16:18 - TWikiGuest
Transform > WhatIsADomain
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback