Está en la página 1de 4

GRAMATICAS DE LIBRE CONTEXTO (GLC) Una Gramtica de Libre Contexto se denota como una cudrupla G= (V, T, P, S) Donde: V: Conjunto

finito denominado conjunto de smbolos no terminales o variables. T: Es un conjunto finito denominado alfabeto o conjunto de smbolos terminales. P: Es un conjunto finito de reglas de produccin. Dos elementos de p son de la forma A S: Es un elemento de V denominado smbolo de inicio. Las gramticas libres de contexto permiten describir la mayora de los lenguajes de programacin, de hecho, la sintaxis de la mayora de lenguajes de programacin est definida mediante gramticas libres de contexto. Por otro lado, estas gramticas son suficientemente simples como para permitir el diseo de eficientes algoritmos de anlisis sintctico que, para una cadena de caracteres dada determinen como puede ser generada desde la gramtica. Formalmente una GLC es un rbol de derivacin en G cumple: 1. Cada nodo tiene una etiqueta y es un Smbolo de Vutu 2. La etiqueta del nodo raz es S 3. Si un nodo interior tiene una etiqueta A, entonces A V 4. Si un nodo interior n tiene etiqueta A y los nodos interiores n1, n2nn son hijos del nodo n, ordenados por la izquierda, con etiquetas x1, x2xn respectivamente. 5. Entonces A x1, x2xn es una produccin en p. 6. Si el nodo n tiene etiqueta , una hoja y es el nico hijo de su padre.

Teora de la Computacin Facultad de Ingenieras Heder Julio Salgado T00016974

Ejemplo

Teorema: Sea G= (V,T,P,S) una GLC entonces, S =>* derivacin en la gramtica G con producto Ambigedad E E+ E EE*E E (E) E Id E num Entonces 1. E => E+ E => Id+ E => Id+ E+E => Id+ Id * E => Id + Id * Id 2. E => E * E => E+ E * E => Id+ E * E => Id + Id * E => Id + Id *Id Una forma normal se define imponiendo restricciones a la forma permitida de las reglas de una gramtica. Las gramticas en forma normal, generan la totalidad de lenguajes libres de contexto. Dos formas normales importantes son: La forma normal de Chomsky La forma normal de Greibach Si y solo si existe un rbol de

Teora de la Computacin Facultad de Ingenieras Heder Julio Salgado T00016974

Forma Normal de Chomsky Una gramtica libre de contexto G = < V, T, P, S > esta en la Forma Normal de Chomsky si cada regla tiene alguna de las siguientes formas: a. A BC b. A a c. S En donde B, C V {S} Teorema. Toda gramtica libre de contexto puede ser convertida a una gramtica equivalente en la forma normal de Chomsky. Forma Normal de Greibach Una gramtica libre de contexto G = < V, , S, P> esta en la Forma Normal de Greibach si cada regla tiene alguna de las siguientes formas: a. A a A1A2An b. A a c. S En donde a y Ai V {S} para i = 1,2, n Teorema. Toda gramtica libre de contexto puede ser convertida a una gramtica equivalente en la forma normal de Greibach. Eliminacin de reglas encadenadas Una regla de la forma A B, tan solo renombra variables. Reglas de esta forma son llamadas reglas encadenadas. Su eliminacin simplifica la gramtica. La eliminacin de las reglas encadenadas incrementa el nmero de reglas en la gramtica pero reduce la longitud de las derivaciones. Ejemplo: AaA|a|B BbB|b|C CcC|c

Teora de la Computacin Facultad de Ingenieras Heder Julio Salgado T00016974

Smbolos Intiles En una gramtica, cada variable debe contribuir a la generacin de las oraciones del lenguaje. La construccin de gramticas grandes bsicamente haciendo modificaciones a otras gramticas ya existentes, genera invariablemente smbolos intiles. Def. Sea G una gramtica libre de contexto. Un smbolo x (V ) es til si existe una derivacin: S * u x v * w En donde u, v ( V )* y w *. Un smbolo que no es til, es llamado intil. Arboles Derivacin Un rbol de derivacin permite mostrar grficamente cmo se puede derivar cualquier cadena de un lenguaje a partir del smbolo distinguido de una gramtica que genera ese lenguaje. El rbol de derivacin tiene las siguientes propiedades: El nodo raz esta rotulado con el smbolo distinguido de la gramtica Cada hoja corresponde a un smbolo terminal o un smbolo no terminal. Cada nodo interior corresponde a un smbolo no teminal.

Para cada cadena del lenguaje generado por una gramtica es posible construir al menos Un rbol de derivacin, en el cual cada hoja tiene como rotulo uno de los smbolos de la cadena.

Teora de la Computacin Facultad de Ingenieras Heder Julio Salgado T00016974