Formalismo de Definición de Sintaxis - Enciclopedia

El Formalismo de Definición de Sintaxis (SDF) es un metasintaxis utilizado para definir gramáticas libres de contexto: es decir, una manera formal de describir lenguajes formales. Puede expresar todo el rango de gramáticas libres de contexto. Su versión actual es SDF3. Se proporciona un analizador y un generador de analizadores para especificaciones SDF como parte del entorno gratuito ASF+SDF Meta Environment. Estos operan utilizando el analizador SGLR (Scannerless GLR). Un analizador SDF produce árboles de análisis o, en el caso de ambigüedades, bosques de análisis.

Resumen
Características de SDF:

Soporta todo el rango de lenguajes libres de contexto
Permite definiciones modulares de sintaxis (las gramáticas pueden importar subgramáticas) lo que permite la reutilización
Soporta anotaciones

Ejemplos
El siguiente ejemplo define una sintaxis simple de expresiones booleanas en SDF2:

modulo basic/Booleans

exporta
tipos Boolean
context-free símbolos-iniciales Boolean

context-free sintaxis
"true" -> Boolean
"false" -> Boolean
lhs:Boolean "|" rhs:Boolean -> Boolean {izquierda}
lhs:Boolean "&" rhs:Boolean -> Boolean {izquierda}
"not" "(" Boolean ")" -> Boolean
"(" Boolean ")" -> Boolean

context-free prioridades
Boolean "&" Boolean -> Boolean >
Boolean "|" Boolean -> Boolean

Sistemas de análisis y transformación de programas que utilizan SDF
El entorno ASF+SDF Meta Environment proporciona SDF
RascalMPL
Spoofax/IMP [1]
Stratego/XT
Strafunski

Ver también
GNU bison
ANTLR

Referencias
[1] Spoofax/IMP: un entorno de desarrollo integrado para el desarrollo de herramientas de procesamiento de lenguajes formales.

Leer más
Una Introducción Rápida al SDF, Visser, J. & Scheerder, J. (2000) CWI
El Formalismo de Definición de Sintaxis SDF, Mark van den Brand, Paul Klint, Jurgen Vinju (2007) CWI

Enlaces externos
Kit de Despliegue de Gramáticas
SdfMetz calcula métricas para gramáticas SDF
Descargar SDF desde la página web del entorno ASF+SDF Meta Environment