Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ingeniera en Telemtica
Paradigmas de programacin
24 de enero del 2011
BNF y EBNF
Durante una conferencia de la UNESCO sobre el lenguaje de
programacin ALGOL 58
el matemtico John Backus presento un
informe en el que describa bajo una notacin formal dicho lenguaje. La
percusin de este informe fue prcticamente nula hasta que Peter Naur
ley el mismo. Viendo que la idea de Backus sobre la definicin formal
de ALGOL 58 no era exactamente la que l pensaba realizo una serie de
cambios respecto de la formalizacin propuesta por Backus que fue
presentada en su informe para el ALGOL 60. Esta ltima notacin
formal es la que hoy en da se emplea y se conoce como BNF.
BNF, del ingls
Backus-Naur Forma como ya se ha dicho fue
introducida por John Backus y Peter Naur los cuales fueron los
precursores en la utilizacin de una notacin formal para describir la
sintaxis de un lenguaje de programacin, conjuntos de comandos o
protocolos de comunicacin (Lenguajes independientes del contexto al
fin y al cabo). Por tanto la notacin BNF es un mtodo formal para
describir lenguajes formales.
BNF es una metasintaxis usada para expresar gramticas libres de
contexto: es decir, una manera formal de describir lenguajes formales. El
BNF se utiliza extensamente como notacin para las gramticas de
los lenguajes de programacin de la computadora, de los sistemas de
comando y de los protocolos de comunicacin, as como una notacin
para representar partes de las gramticas de la lengua (por ejemplo, el
metro en la poesa de Venta). La mayora de los libros de textos para la
teora o la semntica del lenguaje de programacin documentan el
lenguaje de programacin en BNF.
En la notacin BNF se utilizan una serie de reglas o producciones cuyo
objetivo es la descripcin de unidades sintcticas o smbolos no
terminales. Cada regla tiene la siguiente estructura:
<No terminal a explicar> ::= Sucesin de terminales y no
terminales que explican la parte izquierda
Es decir, parte izquierda (dato a explicar) separador (::=) y parte
derecha (explicacin o descripcin)
de
interrogacin
(?)
se
pueden
poner
smbolos