A book by Andrzej Wasowski and Thorsten Berger. It is published by Springer (appeared Jan. 2023) and available directly via Springer Link or typical book shops.
The book describes the necessary theory and the pragmatics of using and developing high-level software languages (Domain-Specific Languages, or DSLs) for the effective production of quality software. This includes methods, design patterns, guidelines, and testing practices for defining concrete syntax, abstract syntax, and semantics of languages. The book attempts to be close to technology, while covering multiple paradigms and solutions—to avoid being limited to a particular technical silo.
We created a classic academic textbook, providing a theoretical and conceptual foundation derived from research, and a sound pedagogy built around many focused problem-solving exercises, concrete take-home lessons, and examples from diverse domains. While DSL books exist, the pedagogy was a key reason to write this book, which follows a standard textbook approach with focused problem-solving exercises and solid grounding in research. It also brings together Software Engineering (SE, a.k.a. modelware) and Programming Language (PL, a.k.a. grammarware perspectives and technologies, which have co-existed for decades.
After reading this book, the reader will be able to:
We provide a repository with lots of further material (models, code, infrastructure), all integrated via Gradle.
We also some tutorials with more practical, tool-specific advice. We are currently revising them and making them public below. appendices, which we'll make public asap (contact us if you want to see the current versions).
(available) Tutorial A: Class Modeling
(available) Tutorial B: Using the Eclipse Modeling Framework
Tutorial C: OCL in a Nutshell
Tutorial D: Xtext in a Nutshell