EBNF
M.C. Juan Carlos Olivares Rojas
EBNF
• Extended Backus Naur Form es una metasintaxis
ampliamente utilizada que mejora a su antecesor
BNF.
• Ha cambiado la forma de realizar la especificación
de las reglas de producción de la gramática.
• La motivación para usar EBNF radica que con BNF
los elementos repetitivos necesitan de más reglas
de producción para trabajar.
EBNF
• Las reglas
espacios.
de
producción
pueden
contener
• Los símbolos terminales se representan con
comillas dobles (“”) cuando representan un símbolo
del alfabeto y comillas simples (‘’) para representar
cadenas
• El operador de producción ahora es el símbolo de
igual (=)
EBNF
• Se recomienda escribir los símbolos no
terminales en minúsculas.
• Cada regla de producción termina con el
símbolo de punto y com (;).
• El operador | indica una alternativa de regla
de producción.
EBNF
digito sin cero = “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” |
“9”;
digito = “0” | digito sin cero
• Las comas (,) sirven para separar tanto terminales
como no terminales de las reglas de producción.
• Las llaves ({}) indican
(operador estrella: *)
elementos
repetitivos
EBNF
natural = digito sin cero, {digito};
• Los corchetes ([])
elementos auxiliares.
se
manejan
para
• entero = “0” | [“-”], natural
• Entre símbolos de interrogación (?) se
pueden poner símbolos especiales.
EBNF
• Un espacio en blanco se define como:
espacio = ? US-ASCII character 32 ?;
• Se pueden poner comentarios con los
símbolos (* comentario *)
• Los paréntesis “(” y “)” se utilizan para
agrupar símbolos. El símbolo “-” sirve para
expresar excepciones.
EBNF
• Se utiliza “*” para indicar repeticion, por
ejemplo
• regla = “A”;
• repetición = 3 * aa, “B”;
• Si se deriva la regla de producción repetición
la cadena generada sería: AAAB
EBNF
• Se pueden anidar operadores como *, {} y []
para lograr cualquier tipo de repetición.
• Tanto BNF como EBNF pueden determinar
cualquier tipo de gramática, sencillamente
EBNF permite simplificar y tener menos
ambigüedad en la metasintaxis.
Referencias
• EBNF, Wikipedia la Enciclopedia Libre,
http://www.wikipedia.org/ Recuperado en
octubre de 2007.
¿Preguntas?
Descargar

Clase modelo