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
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.