Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BNFEBNF
BNFEBNF
Backus-Naur Form
Como se puede apreciar las siglas de BNF estn resumiendo el
nombre de los autores del modelo que se estudia en esta seccin.
Como toda gramtica, una gramtica de este tipo contiene
cuatro partes fundamentales:
a) Un conjunto finito de smbolos conocido como Terminales.
Son los smbolos pertenecientes al lenguaje que genera la gramtica, estos pueden ser palabras de lenguaje, smbolos, garabatos,
etc. Cualquier unidad lxica que sea parte del lenguaje.
b) Un conjunto finito de smbolos intermedios conocidos como
No terminales que se utilizan en el proceso de generacin de la
gramtica. A estos tambin se les suele conocer como variables o
smbolos auxiliares. La nomenclatura tpica para diferenciar los no
terminales de los terminales es encerrar los primeros entre
brackets, por ejemplo <T> es un No Terminal y T es un terminal.
c) Un No Terminal especial nico con el que se comienza el
proceso de generacin. Debe de ser un smbolo perteneciente al
conjunto de No Terminales. No tiene un nombre estndar pero
suele llamarse <S> o <Start> pero cualquier nombre es vlido.
d) Un conjunto finito de reglas conocido como producciones de
la forma:
<A> ::= secuencia
<A> ::=
<A> ::=
<B>
y
<B> ::=
<B> ::=
Si se tiene una separacin por un pipe | se sustituira as:
<A> ::= |
sera substituido por:
*
<A> ::=
y
<A> ::=
Si se tienen unas llaves o un asterisco, se trabajara:
<A> ::= {
se sustituira por:
<A> ::=
*
<B>
<B>
y
<B> ::=
<B> ::=
Si se desea sustituir el +, es similar a sustituir las llaves
<B>
<B>
<B> ::=
*
Los parntesis redondos que se utiliza para agrupar van
dando indicaciones de cules de las reglas anteriores se deben de
utilizar, para mantener la equivalencia entre las reglas. Una vez
que ya no son indispensables los parntesis se pueden eliminar.
*
Como ltimo paso, si lo nico que resta de EBNF son las
comillas simples alrededor de algunos terminales, estas pueden
desaparecer, recordando que debe ser lo ltimo en eliminarse.
Anotaciones finales
El escribir la gramtica que genere un lenguaje es similar al
arte de la programacin, no se puede ensear una receta de
cocina que permita escribir la gramtica, pero puede aprenderse
con mucha prctica y revisin de ejercicios ilustrativos.
Sin embargo el manejo de las herramientas BNF y EBNF y las
transformaciones entre ellas si se puede aprender muy fcil y
algortmicamente.