Sdf Applications

SDF: Modular Syntax Definition Formalism
The SDF syntax definition formalism is applied in two projects related to meta programming: the ASF+SDF Meta-Environment and Stratego/XT. Companies and researchers are using these environments for implementing various program transformations.

ASF+SDF Meta-Environment

The ASF+SDF Meta-Environment is applied for the description of syntax, semantics, analysis, and transformation of (programming) languages and programs written in such programming languages.


Stratego/XT is the combination of the The Stratego program transformation language for strategic rewriting and the XT bundle of transformation tools.

In Stratego/XT SDF is used to define the syntax of (programming) languages and to generate tools like pretty-printers from these definitions. The power of SDF becomes especially clear in in Meta Programming with Concrete Object Syntax. This technique is applied by many Stratego/XT applications. At the Stratego/XT web you can find a list of applications of Stratego/XT.

Software Improvement Group.

The Software Improvement Group is a spin-off of the Dutch National Centre for Mathematics and Computer Science (CWI). The SIG is active in all fields of software renovation: the adaptation, integration and rebuilding of existing software systems. Currently the SIG provides services for documentation heneration, portfolio monitoring, risk assessments and migrations.

First Result

The company First Result applies SDF technology in the ASF+SDF Meta-Environment for the generation of code.

EPITA Research & Development Laboratory

The EPITA Research & Development Laboratory has developed C and C++ grammars in the Transformers Project. Disambiguation of C++ is performed on parse trees. Stratego/XT tools are used to implement parse and abstract syntax tree transformations.

NASA Ames Research Center

The paper Retrofitting the AutoBayes Program Synthesis System with Concrete Syntax explains how concrete syntax is embedded in Prolog by using SDF for application in the AutoBayes system.