120 likes | 329 Views
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.
E N D
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 de producción pueden contener espacios. • 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 elementos repetitivos (operador estrella: *)
EBNF natural = digito sin cero, {digito}; • Los corchetes ([]) se manejan para elementos auxiliares. • 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.