scispace - formally typeset
Search or ask a question
Book

Domain-specific languages

23 Sep 2010-
TL;DR: This book covers a variety of different techniques available for DSLs and can be used with whatever programming language you happen to be using, most of the examples are in Java or C#.
Abstract: Designed as a wide-ranging guide to Domain Specific Languages (DSLs) and how to approach building them, this book covers a variety of different techniques available for DSLs. The goal is to provide readers with enough information to make an informed choice about whether or not to use a DSL and what kinds of DSL techniques to employ. Part I is a 150-page narrative overview that gives you a broad understanding of general principles. The reference material in Parts II through VI provides the details and examples you willneed to get started using the various techniques discussed. Both internal and external DSL topics are covered, in addition to alternative computational models and code generation. Although the general principles and patterns presented can be used with whatever programming language you happen to be using, most of the examples are in Java or C#.
Citations
More filters
Journal ArticleDOI
TL;DR: This paper presents a novel multilevel modeling approach to conceptual modeling and to the design of information systems that integrates a meta-modeling language with a metamodel of a reflective meta-programming language, thereby allowing for executable models.
Abstract: Domain-specific modeling languages (DSMLs) promise clear advantages over general-purpose modeling languages. However, their design poses a fundamental challenge. While economies of scale advocate the development of DSMLs that can be used in a wide range of cases, modeling productivity demands more specific language concepts tuned to individual requirements. Inspired by the actual use of technical languages (German: “Fachsprachen”), this paper presents a novel multilevel modeling approach to conceptual modeling and to the design of information systems. Unlike traditional language architectures such as Meta Object Facility (MOF), it features a recursive architecture that allows for an arbitrary number of classification levels and, hence, for the design of hierarchies of DSMLs ranging from reference DSMLs to “local” DSMLs. It can not only diminish the conflict inherent in designing DSMLs, but enables the reuse and integration of software artifacts in general. It also helps reduce modeling complexity by relaxing the rigid dichotomy between specialization and instantiation. Furthermore, it integrates a meta-modeling language with a metamodel of a reflective meta-programming language, thereby allowing for executable models. The specification of the language architecture is supplemented by the description of use scenarios that illustrate the potential of multilevel modeling and a critical discussion of its peculiarities.

616 citations


Cites background from "Domain-specific languages"

  • ...xiii), and others adopt a similar position (Völter 2013; Fowler 2011)....

    [...]

  • ...Kelly and Tolvanen strongly support the third argument (Kelly and Tolvanen 2008, p. xiii), and others adopt a similar position (Völter 2013; Fowler 2011)....

    [...]

Journal ArticleDOI
TL;DR: A number of DSLs spanning various phases of software development life cycle in terms of features that elucidates their advantages over general purpose languages and perform in depth study by practically applying a few open source DSLs: ‘Cascading’, Naked Objects Framework and RSpec.
Abstract: To match the needs of the fast paced generation, the speed of computing has also increased enormously. But, there is a limit to which the processor speed can be amplified. Hence in order to increase productivity, there is a need to change focus from processing time to programming time. Reduction in programming time can be achieved by identifying the domain to which the task belongs and using an appropriate Domain Specific Language (DSL). DSLs are constrained to use terms and concepts pertaining to an explicit domain making it much easier for the programmers to understand and learn, and cuts down the development time drastically. In this paper, we will understand what a DSL is; explore a number of DSLs spanning various phases of software development life cycle in terms of features that elucidates their advantages over general purpose languages and perform in depth study by practically applying a few open source DSLs: ‘Cascading’, Naked Objects Framework and RSpec.

496 citations

Proceedings ArticleDOI
17 Oct 2010
TL;DR: This tutorial explains how to define a language and a statically typed, EMF-based Abstract Syntax Tree using only a grammar, and shows how literally every as- pects of the language and its complementary tool support can be customized using Dependency Injection.
Abstract: Whether there is an (emerging or legacy) Domain-Specific Language to increase the expressiveness of your coworkers or whether you are about to invent a new General Purpose Prgramming Language: Tool support that goes beyond a parser/compiler is essential to make other people adopt your language and to be more productive. Xtext is an award- winning framework to build such tooling.In this tutorial we explain how to define a language and a statically typed, EMF-based Abstract Syntax Tree using only a grammar. We then generate a parser, a serializer and a smart editor from it. The editor provides many features out-of-the-box, such as syntax highlighting, content-assist, folding, jump-to-declaration and reverse-reference lookup across multiple files. Then, it is shown how literally every as- pects of the language and its complementary tool support can be customized using Dependency Injection, especially how this can be done for linking, formatting and validation. As an outlook, we will demonstrate how to integrate a custom language with Java, how Xtext maintains a workspace-wide index of named elements and how to implement incremental code generation or attach an interpreter.

368 citations

Book ChapterDOI
01 Jan 2013
TL;DR: Basic concepts, such as model-driven engineering, metamodelling, model transformation and technological space, are defined, and the state-of-the-art implementations of these concepts are described.
Abstract: Since ontology-driven software development (ODSD) is an integration of ontology technologies and model-driven software development (MDSD), it is necessary to identify and analyse technologies applied in MDSD. We define basic concepts, such as model-driven engineering, metamodelling, model transformation and technological space, and describe the state-of-the-art implementations of these concepts.

202 citations


Additional excerpts

  • ...” [7]...

    [...]

Journal ArticleDOI
TL;DR: FAMILIAR is presented as a Domain-Specific Language (DSL) that is dedicated to the large scale management of feature models and that complements existing tool support and demonstrates their applicability to different domains and use for different purposes.

196 citations

References
More filters
Journal ArticleDOI
TL;DR: This paper applies the cognitive dimensions framework to two commercially-available dataflow languages and concludes that it is effective and insightful; other HCI-based evaluation techniques focus on different aspects and would make good complements.
Abstract: The cognitive dimensions framework is a broad-brush evaluation technique for interactive devices and for non-interactive notations. It sets out a small vocabulary of terms designed to capture the cognitively-relevant aspects of structure, and shows how they can be traded off against each other. The purpose of this paper is to propose the framework as an evaluation technique for visual programming environments. We apply it to two commercially-available dataflow languages (with further examples from other systems) and conclude that it is effective and insightful; other HCI-based evaluation techniques focus on different aspects and would make good complements. Insofar as the examples we used are representative, current VPLs are successful in achieving a good ‘closeness of match’, but designers need to consider the ‘viscosity ’ (resistance to local change) and the ‘secondary notation’ (possibility of conveying extra meaning by choice of layout, colour, etc.).

1,270 citations

Book ChapterDOI
29 Sep 2013
TL;DR: A fully declarative approach which computes legal model assists from a modelling language's well-formedness rules via constraint solving, covering a large array of assistance scenarios with only minor differences in the assistance specifications is proposed.
Abstract: Model assist is a feature of modelling environments aiding their users with entering well-formed models into an editor. Current implementations of model assist are mostly hard-coded in the editor and duplicate the logic captured in the environment's validation methods used for post hoc checking of models for well-formedness. We propose a fully declarative approach which computes legal model assists from a modelling language's well-formedness rules via constraint solving, covering a large array of assistance scenarios with only minor differences in the assistance specifications. We describe an implementation of our approach and evaluate it on 299 small to medium size open source models. Although more research will be needed to explore the boundaries of our approach, first results presented here suggest that it is feasible.

23 citations