- Development and Evolution of Software Architectures for Product Families, Second International ESPRIT ARES Workshop, Las Palmas de Gran Canaria, Spain, February 26-27, 1998, ProceedingsFrank van der Linden, editor, Volume 1429 of Lecture Notes in Computer Science, Springer, 1998.
- [62] P. Pfahler and U. Kastens. Language design and implementation by selection. In Kamin [43], pages 97–108. A language design system is presented which allows a user to design a DSL by selecting language features from menus. After selection, an implementation of the DSL can be generated. The system relies on domain designers to provide a definition of the design space, as well as specification components for all possible language features.
- [63] C. Pu, A. Black, C. Cowan, J. Walpole, and C. Consel. Microlanguages for operating system specialization. In Kamin [43], pages 49–57. Discusses the use of DSLs in the domain of operating system specialization. A high-level DSL is envisioned to describe application behavior, which will be compiled into a low-level DSL describing customized operating system behavior.
- [28] Special issue on domain-specific languages. IEEE Transactions on Software Engineering, 25(3),May/June 1999.
- [64] J. C. Ramming, editor. Proceedings of the USENIX Conference on Domain-Specific Languages, Berkeley, CA, October 15–17 1997. USENIX Association.
- [27] Proceedings of the second USENIX Conference on Domain-Specific Languages. USENIX Association, October 3–5 1999.
- [46] G. Kiczales, J. Irwin, J. Lamping, J.-M. Loingtier, C. Lopes, C. Maeda, and A. Mendhekar. Aspect oriented programming. In Kamin [43], pages 75–88. Presents a novel programming technique, called aspectoriented programming (AOP). This technique consists in describing each aspect (e.g. basic functionality, communication, coordination) of a system’s behaviour in a (little) language that allows it to be expressed in its most natural form. An aspect weaver merges these separate aspect descriptions into a single, efficient program. An important benefit of AOP is that it allows high-level domain-specific programming for performance-critical domains. See also [20]
- [66] D. Roberts and R. Johnson. Evolve frameworks into domain-specific languages. In 3rd International Conference on Pattern Languages, Allerton Park, Ill., September 1996. Discusses 9 stages of framework development. An object-oriented framework evolves gradually, starting from three examples, moving via a white-box framework, component library, pluggable objects, to a black-box framework. The final, and most mature, stage is when the domain knowledge is sufficiently stable to merit the development of a domain-specific language or visual builder to access the framework.
- [49] C. W. Krueger. Software reuse. ACM Computing Surveys, 24(2):131–183, June 1992. Categorizes, describes and compares existing approaches to software reuse, among which DSLs (or application generators). Compared to the other approaches DSLs reduce the intellectual effort required to obtain an executable system from its specification. Limited availability and difficulty of building DSLs of optimal specificity/generality are listed as disadvantages of DSLs.
- [34] M. Fromherz, V. Gupta, and V. Saraswat. cc — A generic framework for domain-specific languages. In Kamin [43], pages 89–96.
- [6] A. Basu, M. Hayden, G. Morrisett, and T. von Eicken. A language-based approach to protocol construction. In Kamin [43], pages 1–15. Reports on the design and implementation of Promela++, a DSL for protocol construction and validation. Promela++ adds domain-specific constructs to restricted C, and supports validation and optimization on the domain-level.
- [73] D. E. Stevenson and M. M. Fleck. Programming language support for digitized images or, the monsters in the closet. In Ramming [64], pages 271–284. Describes the image manipulation language Envision, implemented as an extension of Scheme.
- [1] A.V. Aho, R. Sethi, and J.D. Ullman. Compiler: Principles, Techniques and Tools. Addison-Wesley, 1986. Standard text on compiler construction.
- [43] S. Kamin, editor. DSL ’97 – First ACM SIGPLAN Workshop on Domain-Specific Languages, in Association with POPL ’97, Paris, France, January 1997. University of Illinois Computer Science Report.
- [28], pages 291–308. An earlier version appeared in [64]. Describes a multi-media extension for Haskell and discusses the merits of Haskell as basis for domain-specific extensions.
- [56] L. Nakatani and M. Jones. Jargons and infocentrism. In Kamin [43], pages 59–74. Describes and advocates the development of DSLs as jargons: domain-specific extensions of a tiny common base language. According to a new programming paradigm (infocentrism) the application semantics for these jargons can be programmed by providing actions for the constructs specific to the jargon only; the traversal semantics is inherited from the base language. Because all jargons share the base syntax and semantics, it is easy to combine and reuse their definitions as well as their tools. The InfoWiz technology which supports the development of jargons is discussed.
- [29] C. Elliott. An embedded modeling language approach to interactive 3D and multimedia animation. In DSLIEEE
- [12] M. van den Brand, A. van Deursen, P. Klint, S. Klusener, and E. van der Meulen. Industrial applications of ASF+SDF. In M. Wirsing and M. Nivat, editors, AlgebraicMethodology and Software Technology (AMAST ’96), volume 1101 of Lecture Notes in Computer Science, pages 9–18. Springer-Verlag, 1996. Provides an overview of some industrial applications of the language prototyping environment ASF+SDF. The RISLA case study, involving a language for describing financial products, is discussed in considerable detail, covering pure RISLA, modular RISLA, and RISQUEST, a language for generating questionnaires used when composing new products. From a modular RISLA product description, COBOL code is generated for accessing a library of COBOL functions providing operations on cash flows, balances, intervals, and the like. See also [22, 24].
- [45] K. C. Kang, S. G. Cohen, J. A. Hess, W. E. Novak, and A. S. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI- 90-TR-21, Software Engineering Institute, Carnegie Mellon University, 1990. FODA is a domain engineering approach emphasizing feature analysis. A feature is defined as a prominent, user-visible characteristic of a software system. FODA aims at building up a feature model, consisting of a features diagram (hierarchical decomposition of mandatory, alternative, or optional features), feature definitions, composition rules for features, and a rationale for features indicating the trade-offs. See also [20, 70]
- [8] J. A. Bergstra, J. Heering, and P. Klint, editors. Algebraic Specification. ACM Press/Addison-Wesley, 1989. Introduces the Syntax Definition Formalism SDF, the Algebraic Specification Formalism ASF, and their combination, ASF+SDF, which can be used to describe the syntax and semantics of (domain-specific) languages. Contains several language definition case studies. See also [12, 23].
- [25] A. van Deursen, P. Klint, and C. Verhoef. Research issues in software renovation. In J.-P. Finance, editor, Fundamental Approaches to Software Engineering, FASE99, volume 1577 of Lecture Notes in Computer Science, pages 1–23. Springer-Verlag, 1999.
- [75] R. N. Taylor,W. Tracz, and L. Coglianese. Software development using domain-specific software architectures. ACM SIGSOFT Software Engineering Notes, 20(5):27– 37, 1995. Provides the material used for a course on DSSA, Domain-Specific Software Architectures, which aims at the reduction in time and cost of producing specific application systems within a supported domain. The paper covers key examples, architecture representation formalisms, domain engineering, and the DSSA process. See also [20, 70]
- [70] M. Simos, D. Creps, C. Klinger, L. Levine, and D. Allemang. Organization domain modelling (ODM) guidebook version 2.0. Technical Report STARS-VCA025/ 001/00, Synquiry Technologies, Inc, 1996. A comprehensive description of the ODM approach to domain engineering. The three main ODM steps are: (1) plan the domain, selecting objectives, stakeholders, and a set of boundary decisions to scope the domain. (2) model the domain, building a domain lexicon, and describing the concepts and features, as well as their commonalities and variabilities. (3) (optional) engineer an asset base of components by combining features and customers in novel ways. ODM emphasizes existing (legacy) software systems as valuable sources of domain knowledge. It takes the “domain as a set of systems” point of view, rather than the “domain as the real world” viewpoint.
- [69] M. Simos. Organization domain modeling (ODM): Formalizing the core domain modeling life cycle. In M. Samadzeh and M. Zand, editors, Proceedings of the Symposium on Software Reusability SSR’95, pages 196– 205, August 1995. ACM Software Engineering Notes.
- [36] R. Gray. Agent Tcl: A transportable agent system. In J. Mayfield and T. Finnin, editors, Proceedings of the CIKM Workshop on Intelligent Information Agents, Fourth International Conference on Information and Knowledge Management (CIKM’95), December 1995.
- [9] J.A. Bergstra and P. Klint. The discrete time TOOLBUS— a software coordination architecture. Science of Computer Programming, 31:205–229, 1998. Describes how a language based on process algebra is used in the TOOLBUS coordination architecture for building heterogeneous, distributed software systems. See also [10].
- [67] P.H. Salus, editor. Little Languages, volume III of Handbook of Programming Languages. MacMillan, 1998. This book contains a collection of mostly reprints and only a few original papers describing DSLs. It contains, for instance, papers like Little Languages (Bentley [7]), A system for typesettting mathematics: EQN (Kernighan and Cherry), and an overview of the Documenter’s Workbench (Akkerhuis) covering TROFF and several DSLs for describing graphics, chemical formulae, and the like. Other chapters cover AWK, SED, SQL, TCL/TK, PERL and PYTHON. The most original papers are a survey of DSLs and domain-specific extension languages by Hudak and an elaborate description of Little Music Languages by Langston.
- [42] R. E. Johnson and B. Foote. Designing reusable classes. Journal of Object-Oriented Programming, 1(2):22–35, 1988. Introduced the notion of object-oriented frameworks. A framework is defined as a set of classes that embodies an abstract design for solutions to a family of related problems, and supports reuse at a larger granularity than classes. In a white-box framework, application-specific behavior is obtained via method overriding or by adding new methods to the framework’s classes. In a black-box, support for extensibility is provided by defining interfaces for components that can be plugged into the framework via object composition, thus better hiding the implementation details of the framework. See also [32, 66]
- [3] G. Arango. Domain analysis: From art form to engineering discipline. In Fifth International Workshop on Software Specification and Design, pages 152–159, May 1989. Appeared as ACM SIGSOFT Engineering Notes 14(3). Outlines a framework to synthesize domain analysis methods, and to compare between differentmethods. The paper advocates an incremental, evolving approach towards developing domain models.
- [78] J. Withey. Investment analysis of software assets for product lines. Technical Report CMU/SEI-96-TR-010, Software Engineering Institute, 1996. Presents a model for analyzing the expected benefits from investing in domain-specific software product lines. One of the key concepts is economy of scope, which is a condition where fewer inputs (such as effort and time) are needed to produce a greater variety of outputs. By contrast, economy of scale is achieved where fewer inputs are needed to produce greater quantities of a single output.