11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

90 CHAPTER 5. ACEPTACIÓN Y GENERACIÓN DE LENGUAJES LIBRES DE CONTEXTO ✷Ejemplo 74 Consi<strong>de</strong>re la gramáticaS → AB|aA → aPor el primer lema, se nota que ningún string <strong>de</strong> terminales es <strong>de</strong>rivable <strong>de</strong> B. Por lo tanto se elimina By la producción S → AB, con lo que quedaS → aA → aAplicándole el segundo lema, sólo S y a aparecen en formas sentenciales. Por lo tanto, ({S}, {a},{S → a}, S) es una gramática equivalente sin símbolos inútiles.Si se hubiera aplicado primero el segundo lema a la gramática original, se hubiera <strong>de</strong>ducido que todos lossímbolos aparecen en formas sentenciales. Aplicando luego el primer lema, se hubiese obtenido la segundagramática, que aún tiene un símbolo inútil, A.Se verá ahora cómo eliminar producciones <strong>de</strong> la forma A → ε, llamadas producciones vacías (ε-productions).Es claro que si ε ∈ L(G), no es posible eliminar todas las producciones vacías <strong>de</strong> G, pero siε ∉ L(G), esto es posible. El método consiste en <strong>de</strong>terminar, para cada variable A, si es posible que A⇒ε,∗en cuyo caso se dice que A es anulable. Es posible reemplazar cada producción B → X 1 X 2 . . . X n por todaslas producciones que se forman al eliminar algún subconjunto <strong>de</strong> aquellos X i ’s que son anulables, pero sinincluir B → ε, aún cuando todos los X i sean anulables.Teorema 19 Si L = L(G) para alguna gramática libre <strong>de</strong> contexto G = (V, T, P, S), entonces L−ε es L(G ′ )para alguna gramática libre <strong>de</strong> contexto, G ′ , sin símbolos inútiles ni producciones vacías.Demostración : Es posible <strong>de</strong>terminar los símbolos anulables <strong>de</strong> G con el siguiente algoritmo. Si A → εes una producción, entonces A es anulable. Si B → α es una producción y todos los símbolos <strong>de</strong> α sonanulables, entonces B es anulable. Este proceso se repite hasta que ningún otro símbolo anulable pueda serencontrado.El conjunto <strong>de</strong> producciones P ′ se construye como sigue. Si A → X 1 X 2 . . . X n está en P , agregue a P ′todas las producciones A → α 1 α 2 . . . α n , don<strong>de</strong>• si X i no es anulable, entonces α i = X i• si X i es anulable, entonces α i es X i o ε• no todos los α i ’s son εSea G ′′ = (V, T, P, S). Se mostrará que para todo A ∈ V y w ∈ T ∗ , A⇒ ∗ G ′′w ssi w ∉ ε y A⇒ ∗ G w.Sea A⇒ i G w y w ∉ ε. Se prueba, por inducción en i, que A⇒ ∗ G ′w. La base, i = 1, es trivial, pues A → w<strong>de</strong>be ser una producción en P . Dado que w ∉ ε, también es una producción en P ′ . Para la inducción, seai > 1. Entonces A ⇒ i−1∗GX 1 X 2 . . . X n ⇒ G w. Sea w = w 1 w 2 . . . w n , tal que para cada j, X j⇒wj en menos <strong>de</strong> i∗pasos. Si w j ≠ ε y X j es una variable, entonces por la hipótesis <strong>de</strong> inducción se tiene X j⇒ G ′′w j . Si w j = εentonces X j es anulable. Por lo tanto, A → β 1 β 2 . . . β n es una producción en P ′ , con β j = X j si w j ≠ ε yβ j = ε si w j = ε. Como w ≠ ε no todos los β j son ε. Por lo tanto se tiene una <strong>de</strong>rivaciónA ⇒ β 1 β 2 . . . β n∗⇒w1 β 2 . . . β n∗⇒w1 w 2 . . . β n∗⇒ . . .∗⇒w1 w 2 . . . w n = wen G ′′ . Es <strong>de</strong>cir, A ∗ ⇒ G ′′w.Suponga ahora que A i ⇒ G ′′w. Con toda seguridad w ≠ ε ya que G ′′ no tiene producciones vacías. Semuestra por inducción en i que A ∗ ⇒ G w. Para la base, i = 1, observe que A → w está en P ′ . Debe haber una✷

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!