Está en la página 1de 8

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

TEMA 1. GRAMATICAS Y LENGUAJES

Concepto de gramtica. Operaciones con lenguajes. Limpieza de gramticas.

Profesor: Jose Ignacio Gmez Espnola

Pg. 1

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

CONCEPTO DE GRAMTICA

1. Terminologa bsica Alfabeto: conjunto finito y no vaco de smbolos. Smbolo: elemento de un alfabeto. Palabra: concatenacin finita de smbolos. A*: conjunto de todas las palabras que se pueden formar con el alfabeto A. Lenguaje: subconjunto de palabras de un alfabeto. Concatenacin: encadenamiento de dos palabras. Cadena inversa: inversin de los smbolos de una palabra. Cadena iterada: concatenacin de una palabra consigo misma i veces. Cadena vaca: cadena formada por cero caracteres. La notaremos como . A+: conjunto de todas las palabras que pueden formarse con el alfabeto A, exceptuando la cadena vaca. Regla de produccin: S aBAb. Podemos sustituir el smbolo S por la cadena aBAb.

Ejemplo: Sea A={a, b}. L1={a, b, } A* Ejemplo: Sea A={a, b}. L1={ai bi / i=0, 1, } Ejemplo: Sea A={a, b}. L1={uu-1 / u A*}

Profesor: Jose Ignacio Gmez Espnola

Pg. 2

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

2. Concepto de Gramtica Llamamos Gramtica Generativa a la cudrupla G = (V, T, P, S) donde: V: alfabeto de variables o smbolos no terminales. T: alfabeto de smbolos terminales. P: conjunto de reglas de produccin. S: Smbolo especial de V denominado axioma o smbolo inicial de la gramtica.

Ejemplo: G = (V, T, P, S) donde: V = {S, A, B} T = {a, b} P = {SaB, SbA, Aa, AaS, A bAA, Bb, BbS, BaBB} Ejemplo: G = (V, T, P, E) donde: V = {E} T = {+, -, , (, ), <id>} P = {EE+E, EE-E, EEE, E(E), E<id>}

3. Paso de derivacin Sea G = (V, T, P, S) y , {VT}*. Decimos que se deriva de en un paso y se nota como + s y solo s: 1 y 2 {VT}* y P / =12 y =12 Sea G = (V, T, P, S) y , {VT}*. Decimos que se deriva de y se nota como * s y solo s: 1,...,n {VT}* / =1 ++ n =
Profesor: Jose Ignacio Gmez Espnola Pg. 3

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

4. Lenguaje generado por una gramtica Se define como el conjunto de cadenas compuestas por smbolos terminales que se derivan del axioma de la gramtica dada: L(G) = {uT* / S * u}
Ejemplo: Obtener el lenguaje generado por G = ({S}, {a, b}, {SaSb, S ab}, S).

5. Clasificacin de las gramticas segn Chomsky Tipo 0: Es el tipo ms general. Definen lenguajes con estructura de frases. Las mquinas de Turing reconocen lenguajes de este tipo. Tipo 1: Gramticas sensibles al contexto. Los autmatas lineales acotados reconocen lenguajes de este tipo. Las producciones son de la forma:
1 A 2 1 2 / AV, (VT)+ , 1, 2 (VT)* .

Tipo 2: Gramticas libres de contexto. Los autmatas a pila reconocen los lenguajes generados por estas gramticas. Las producciones son del tipo:
A / AV, (VT)*

Tipo 3: Gramticas regulares. Los lenguajes reconocidos por estas gramticas se denominan
Profesor: Jose Ignacio Gmez Espnola Pg. 4

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

lenguajes regulares, y son reconocidos por autmatas finitos. Las producciones pueden tener la siguiente forma:
Au, AuB / A, B V, u T*

Denominndose gramtica regular lineal por la derecha. O tambin:


Au, ABu / A, B V, u T*

Denominndose en este caso gramtica regular lineal por la izquierda. 6. Notacin de Backus Permite abreviar la especificacin de la parte izquierda de las producciones de una gramtica, siempre que haya al menos dos producciones cuyas partes izquierdas sean idnticas.
Ejemplo: Expresar en notacin de Backus la siguiente gramtica G = ({S,A,B),{a,b},{SaB,SbA,Aa,Bb,AaS, BbS})

7. Gramticas ambiguas Una gramtica se dice que es ambigua si existe al menos una palabra del lenguaje generado por dicha gramtica con al menos dos rboles de derivacin.

Profesor: Jose Ignacio Gmez Espnola

Pg. 5

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

OPERACIONES CON LENGUAJES

Unin: L 1 L2 = { u / uL1 uL2} Interseccin: L1 L2 = { u / uL1 , uL2} Diferencia: L1 - L2 = { u / uL1 , uL2} Complementario: L A* ~L = A* - L Concatenacin: L1 L2 = { z=uv / uL1 , vL2} Iteracin: L0 = {}; Li+1 = Li L Clausura de Kleene: L* = L0 ..... Ln; L+ = L*-{} Simtrico o inverso de L: L-1 = {u-1 / u L} Cabecera de un lenguaje: CAB(L) ={uA* / vA* / uvL} Homomorfismo entre alfabetos: Si A1 y A2 son dos alfabetos, la aplicacin h se dice que es un homomorfismo entre A1* y A2* si mantiene la concatenacin de cadenas; es decir: h: A1* A2* h(uv) = h(u)h(v) h() = Isomorfismo: un homomorfismo es un isomorfismo si y slo si: h(u) = h(v) u = v

Profesor: Jose Ignacio Gmez Espnola

Pg. 6

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

LIMPIEZA DE GRAMATICAS
1. Reglas innecesarias Son del tipo A A, y hacen que una gramtica sea ambigua.

2. Smbolos inaccesibles Son todos aquellos smbolos que no sean accesibles de forma directa o indirecta desde al menos una de las producciones asociadas al axioma.

3. Reglas superfluas Si para un smbolo no terminal no existe una derivacin a smbolo terminal, todas las reglas que contengan dicho smbolo son reglas superfluas. 4. Gramtica reducida Llamamos gramtica reducida a aquella que no tiene smbolos inaccesibles ni superfluos.

5. Gramtica limpia Llamamos gramtica limpia a aquella gramtica reducida que carece de reglas innecesarias.
Profesor: Jose Ignacio Gmez Espnola Pg. 7

Teora de Autmatas y Lenguajes Formales

Tema 1. Gramticas y lenguajes

6. Algoritmo de limpieza de gramticas 1. Eliminar directamente todas las reglas innecesarias. 2. Hacer 2.1. Marcar las producciones para las que exista una regla Ax donde x sea una cadena de smbolos terminales o de no terminales situados en la parte izquierda de producciones previamente marcadas. Hasta que no se marque ninguna produccin. 3. Las reglas no marcadas son reglas superfluas y debern eliminarse. 4. Sea H el cjto. de variables accesibles desde el axioma S. Sea , (VT)* y sea Y, Z V 4.1. H = 4.2. S , si Z y ZV entonces H = H {Z} 4.3. Mientras H cambie hacer: 4.3.1. YH, Y, si Z y ZV entonces H = H {Z} 4.4. Y t.q. YH, eliminar dicha produccin, por ser dicho smbolo inaccesible.

Ejemplo: Limpiar la gramtica G = ({0, 1}, {A, B, C, S}, S, P), donde P viene definido por las siguientes producciones: S 0S0 | 0B1 | S | A | A 1A1 | B 0B1 C 0B | A0B1 | 0 | 1 |
Profesor: Jose Ignacio Gmez Espnola Pg. 8

También podría gustarte