Sdf Applications

SDF is used by many individuals for many different purposes. This page lists the original applications of SDF and some of its premier applications.

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 (source-to-source) 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. As the name suggests, SDF originated as a component of the ASF+SDF Meta-Environment.

The Meta-Environment uses SDF to parse input source code and to implement concrete syntax for source code patterns. The patterns are part of rewrite rules (equation) in the ASF formalism. ASF is used to implement source-to-source transformations, source analyses, compilers and interpreters.

More information can be found at


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 the use of 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.


Rascal is a domain specific language for source code analysis, transformation and generation. It was bootstrapped using SDF and used SDF as a method for implementing parsers for object languages and for concrete syntax patterns. Currently Rascal implements embeds syntax definitions, very much like SDF2 but it is not using the SDF2 implementation anymore. Instead Rascal uses a general scannerless top-down parsing algorithm which is completely Java based.

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.