Principles of Software Language Design
for Model-Driven Software Engineering

Overview

An upcoming book by Andrzej Wasowski and Thorsten Berger. It is expected to appear in Fall 2020, published by Springer.

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 are creating 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. The pedagogy is a key reason to write this book. None of the existing books on this topic follows a standard textbook approach, with focused problem-solving exercises and solid grounding in research.

Competencies

After reading this book, the reader will be able to:

  • Perform domain analysis of a problem domain and obtain a meta-model.
  • Engineer external and internal DSLs (note that we focus mostly on external DSLs).
  • Design and improve the concrete syntax of DSLs.
  • Implement DSL semantics using declarative and imperative transformations, code generators and interpreters, in various scenarios such as from text to models, from models to text, involving XML, database, etc.
  • Implement declarative constraints and type rules for DSLs.
  • Test implementations of DSLs.
  • Characterize, classify, and compare languages along various properties.

Early Access Material

We provide some material for early dissemination, for receiving feedback, and for supporting courses. The following PDFs with example chapters are password-protected. To get access, please contact the authors for the credentials and agree to the license terms below.

Chapter 1

Chapter 2

Chapter 3

References

License

There is also a repository with further material (models, code, infrastructure).

License

(C) 2019, Andrzej Wasowski and Thorsten Berger

This material is provided to you on a personal and limited basis. You can use the material personally and in your courses. The material must not be distributed by you beyond the course scope. This permission is only valid until the publication of the book. A different permission may be granted past that point in time.