Limit search to available items
Book Cover
E-book
Author Sobernig, Stefan

Title Variable domain-specific software languages with DjDSL : design and implementation / Stefan Sobernig
Published Cham : Springer, 2020

Copies

Description 1 online resource (314 pages)
Contents Intro -- Preface -- Book Audience and Assumed Background -- Book Overview -- On Supplemental Materials -- On Notation -- On Running Examples -- References -- Acknowledgments -- Contents -- Acronyms -- 1 DSL as Variable Software -- 1.1 Domain-Specific Languages -- 1.1.1 Modelware and Grammarware -- 1.1.2 Languages for Domain-Specific Modeling -- 1.1.3 Internal and External DSL -- 1.2 DSL Product Lines -- 1.2.1 Drivers Towards Variable DSL -- 1.2.1.1 Domain Interlock -- 1.2.1.2 Language Kernels -- 1.2.1.3 DSL-Based Modernization -- 1.2.1.4 DSL Evolution -- 1.2.2 DSL Product Lines
1.2.3 Trajectories to DSL Product Lines -- 1.3 Empirical Research and Technology Evaluation -- 1.3.1 Empirical Evidence on DSL -- 1.3.2 DSL-Aware Approaches to Technology Evaluation -- 1.4 Single-DSL Development Using NX -- 1.4.1 Implementing a Language Model -- 1.4.1.1 Abstract Syntax -- 1.4.1.2 Abstract Syntax Constraints -- 1.4.2 Textual Concrete Syntax -- 1.4.2.1 As an Internal DSL -- 1.4.2.2 As an External DSL -- 1.4.3 Integration and Execution -- 1.4.4 Testing -- References -- 2 Variability Support in DSL Development -- 2.1 DSL Engineering Procedures -- 2.1.1 Problem Space
2.1.2 Solution Space -- 2.2 DSL Design Rationale -- 2.2.1 Reusable DSL Design Decisions -- 2.2.1.1 Complementary Generic DR on DSLs -- 2.2.2 Excursus: Reusing Design Decisionsfor UML-Based DSLs -- 2.2.2.1 Prototype Designs -- 2.2.2.2 Design-Space Analysis -- 2.2.2.3 Design-Decision Documentation -- 2.3 Variability Challenges -- 2.3.1 Types of DSL Composition -- 2.3.2 Abstraction Mismatches Under Composition -- 2.3.3 Development Processes -- 2.4 State of Variability Support -- 2.4.1 MetaMod -- 2.4.2 MPS -- 2.4.3 LISA -- 2.4.4 Melange -- 2.4.5 Gromp + Fusion -- 2.4.6 Neverlang + AiDE
2.4.7 MontiCore -- 2.4.8 Eco -- 2.4.9 MetaDepth -- 2.4.10 YAJCo -- 2.4.11 APEG -- 2.4.12 Helvetia + PetitParser -- 2.4.13 Silver + Copper -- 2.4.14 FeatureHouse + Spoofax -- 2.5 DjDSL: A Variability-Aware Development Systemfor Mixed DSLs -- References -- 3 Variable Language Models -- 3.1 Some Background on Language Models -- 3.1.1 Purpose -- 3.1.2 Definition Style -- 3.1.3 Variability and Variability Modeling -- 3.2 Feature-Oriented Decomposition and Composition of Language Models -- 3.2.1 Collaboration-Based Designs of Language Models -- 3.2.1.1 Structure of Variable Language Models
3.2.1.2 Context Conditions -- 3.2.1.3 Feature Binding -- 3.2.1.4 Collaboration-Aware Conflict Resolution -- 3.2.2 A UML Extension for Feature-OrientedLanguage Models -- 3.2.2.1 Assets -- 3.2.2.2 Compositions -- 3.2.3 Feature-Oriented Language Models in DjDSL -- 3.2.3.1 Avoiding Decomposition Mismatches -- 3.2.3.2 Composition Locality -- 3.2.3.3 Product-Bounded Quantification -- 3.2.3.4 Host-Language Blending -- 3.2.3.5 Common Assets -- 3.2.3.6 Composition -- 3.3 Rendering DSL Variability Explicit -- 3.3.1 Abstract Syntax -- 3.3.1.1 Models -- 3.3.1.2 Choices -- 3.3.1.3 Features
Summary This book details the conceptual foundations, design and implementation of the domain-specific language (DSL) development system DjDSL. DjDSL facilitates design-decision-making on and implementation of reusable DSL and DSL-product lines, and represents the state-of-the-art in language-based and composition-based DSL development. As such, it unites elements at the crossroads between software-language engineering, model-driven software engineering, and feature-oriented software engineering. The book is divided into six chapters. Chapter 1 ("DSL as Variable Software") explains the notion of DSL as variable software in greater detail and introduces readers to the idea of software-product line engineering for DSL-based software systems. Chapter 2 ("Variability Support in DSL Development") sheds light on a number of interrelated dimensions of DSL variability: variable development processes, variable design-decisions, and variability-implementation techniques for DSL. The three subsequent chapters are devoted to the key conceptual and technical contributions of DjDSL: Chapter 3 ("Variable Language Models") explains how to design and implement the abstract syntax of a DSL in a variable manner. Chapter 4 ("Variable Context Conditions") then provides the means to refine an abstract syntax (language model) by using composable context conditions (invariants). Next, Chapter 5 ("Variable Textual Syntaxes") details solutions to implementing variable textual syntaxes for different types of DSL. In closing, Chapter 6 ("A Story of a DSL Family") shows how to develop a mixed DSL in a step-by-step manner, demonstrating how the previously introduced techniques can be employed in an advanced example of developing a DSL family. The book is intended for readers interested in language-oriented as well as model-driven software development, including software-engineering researchers and advanced software developers alike. An understanding of software-engineering basics (architecture, design, implementation, testing) and software patterns is essential. Readers should especially be familiar with the basics of object-oriented modelling (UML, MOF, Ecore) and programming (e.g., Java)
Notes 3.3.1.4 Constraints
Bibliography Includes bibliographical references and index
Notes Print version record
Subject Domain-specific programming languages.
Computer software -- Development.
Computer software -- Development
Domain-specific programming languages
Form Electronic book
ISBN 9783030421526
303042152X