SDF: Modular Syntax Definition Formalism

2007-11-26 Updated the SDF website with new release info. In the meantime much has happened.

  • SDF 2.5.1 has been released.
  • Rob Economopoulos has refactored and documented the C implementation of SGLR.
  • Rob Economopoulos and Jurgen Vinju have fitted the RNGLR algorithm into SGLR.
  • Karl Trygve Kalleberg has started on a Java version of SGLR.
  • Meta-Environment splitted sdf-meta package of ASF+SDF Meta-Environment to make it ASF independent.

2005-11-04 SDF2 Bundle 2.3.3 is now available. This is a minor update, fixing some compilation issues at GCC 4.0.x.

2005-08-26 SDF2 Bundle 2.3.2 is now available! This release fixes some issues of the previous SDF2 Bundle releases with the new ATerm library. As usual, you can download the source tarball, RPM, or binary packages for Cygwin and Mac OS X.

2005-02-09 Added Sdf2Haskell and HaGLR to the SDF software page.

2005-01-10 SDF2 Bundle 2.3 is now available! As usual, you can download the source tarball, RPM, or binary packages for Cygwin and Mac OS X.

2004-07-04 SDF2 Bundle 2.2 is now available as source tarball, RPM and binary packages for Cygwin and Mac OS X.

2004-05-30 SDF2 Bundle 2.1 is now available. This is an easy to install (tarball, rpm and source rpm) bundle of SDF related packages in the ASF+SDF MetaEnvironment 1.5.

2004-05-10 ASF+SDF MetaEnvironment 1.5 has been released. This release includes updates of the SDF packages, namely PGEN 2.1 and SGLR 3.11, featuring improved error reporting, much clearer definition of start symbols, and miscellaneous further simplifications of SDF. (announcement).

SDF is a language for defining syntax. It provides for an unprecedented level of conciseness in syntax definitions. First, syntax can be defined in modules. Second, lexical and context-free syntax are integrated in a single formalism in which the complete syntax of a language can be defined. Third, SDF includes declarative disambiguation constructs. Therefore, there is no need to introduce non-terminals to deal with ambiguities in a language.

Some useful places to start: