This is a book (in progress) about declarative language definition with the Spoofax Language Workbench. The aim of Spoofax is to separate the various concerns of language definition and implementation and provide high-level declarative meta-languages for each concern such that language designers are not distracted by language implementation details. These meta-languages are declarative in the sense that they abstract from the how of language implementation and focus on the what of language design. For example, 'what is the syntax of my language?', instead of 'how do I implement a parser for my language?'.
The book provides a tutorial introduction to the current state of Spoofax, and will be gradually extended, improved, and updated as Spoofax evolves. Your feedback will be in the form of emails, issues, or pull requests will be most encouraging to keep that up.
The current version of the book: PDF
Table of Contents
- Chapter 1: Getting Spoofax
- Chapter 2: Testing with SPT
- Chapter 3: Syntax Definition with SDF3
- Chapter 4: Transformation with Stratego
June 22, 2015: Version 0.4: Chapter on Transformation with Stratego.
June 17, 2015: Version 0.3: Chapters on Testing with SPT and Syntax Definition with SDF3.