Forma de Backus-Naur En informática, Forma de Backus

Anuncio
Forma de Backus-Naur
En informática, Forma de Backus-Naur (BNF) es a metasyntax expresaban gramáticas
independientes del contexto: es decir, una manera formal de describir lenguajes formales.
Juan Backus y Peter Naur desarrolló una gramática libre del contexto para definir la
sintaxis de un lenguaje de programación usando dos sistemas de reglas: es decir, reglas
léxicas y reglas sintácticas.
BNF es ampliamente utilizado como a notación para gramáticas de la computadora
lenguajes de programación, sistemas de instrucción y protocolos de comunicación, así
como una notación para representar partes de lengua natural gramáticas. Muchos libros de
textos para la teoría y/o la semántica del lenguaje de programación documentan el lenguaje
de programación en BNF.
Hay muchas extensiones y variantes de BNF, incluyendo Extendido y Aumentado Formas
de Backus-Naur (EBNF y ABNF).
Forma normal de Greibach
Una gramática libre de contexto G=(V,T,P,S) se dice estar en forma normal de Greibach si
sus producciones son de la forma
Veremos que la construcción de formas normales de Greibach equivalentes a gramáticas
dadas es procedimental. Para cualquier gramática libre de contexto G, definamos, para cada
variable, a los conjuntos siguientes:
Primeramente observemos que podemos ``componer producciones'' de manera que
tengamos siempre una gramática equivalente a la gramática dada.
Tema 3.1 (Composición de producciones) Si es una producción en G y las producciones
en P(Y) pueden escribirse como entonces al sustituir por las producciones , obtenemos
una gramática equivalente a G.
En efecto, en toda derivación terminal que aplique en un momento la producción ,
necesariamente se ha de aplicar una producción en P(Y) para suprimir el símbolo Y.
Lema 3.2 (Transformación de producciones ``reflexivas'') Para cada variable enumeremos
Q(X) y R(X) como
Sea Z una variable que no ocurra en V. Sea la gramática que se obtiene al sustituir el
conjunto de producciones P(X) por las producciones
toda derivación siniestra, en la gramática original, de una palabra en L(G) ha de determinar
una derivación diestra de la misma palabra en la gramática transformada. La demostración
de la afirmación anterior es directa. Como mera ilustración, consideremos tan solo un
ejemplo: La gramática con producciones genera al lenguaje consistente de las palabras de
la forma b(ab)*. De acuerdo con la construcción anterior, como y , obtenemos la
gramática
Presentemos sendas derivaciones, siniestra en la gramática original y diestra en la
transformada, para la palabra bababan:
3.3 Formas Normales de Chomsky.
Una GLC se dice que está en Forma Normal de Chomsky (FNC) si todas sus producciones
son de la forma:
Excepcionalmente se permite la producción
La idea de la transformación de una gramática limpia a FNC se ejecuta en dos pasos:
·
Hacer que en la parte derecha de las producciones de longitud mayor o igual que 2 sólo
haya terminales.
Trocear estas producciones para que tengan longitud dos.
Algoritmo FNC:
1. Para cada producción de la forma
(a) Para cada αi, si αi es terminal:
- Se añade la producción Ca → a
- Se cambia αi por Ca en A → α1..αn
2. Para cada producción de la forma A → B1...Bm, m ≥ 3
(a) Se añaden (m-2) no terminales D1, D2, ..., Dm-2 (distintos para cada producción)
(b) La producción A → B1...Bm se reemplaza por A → B1D1, D1 → B2D2, ... Dm-2 →
Bm-1Bm
INSTITUTO EDUCATIVO DE LA CUENCA DEL
PAPALOAPAN
“EN LA VANGUARDIA DE LA EDUCACIÓN”
ING. EN SISTEMAS COMPUTACIONALES
MATERIA:
“LENGUAJE AUTONOMA”
TEMA:
BNF,CHOMSKY,GREIBACH
CATEDRÁTICO:
ING.PEDRO TELLEZ
CUATRIMESTRE: 6°
ALUMNO:
PEDRO ANTONIO AGUIRRE NIETO
TRES VALLES, VER.
05-07-2012
Descargar