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