Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

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

Author: @eelcovisser

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.