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...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.7. FORMAS NORMALES 95(1) for k := 1 to M do begin(2) for j := 1 to k − 1 do(3) for cada produccion <strong>de</strong> la forma A k → A j α do begin(4) for todas las producciones A j → β do(5) agregue la produccion A k → βα;(6) elimine A k → A j αend(7) for cada produccion <strong>de</strong> la forma A k → A k α do begin(8) agregue producciones <strong>de</strong> la forma B k → α y B k → αB k ;(9) elimine A k → A k αend(10) for cada produccion <strong>de</strong> la forma A k → βen que β no empieza con A k do(11) agregue la produccion A k → βB kendRepitiendo el proceso para cada variable original, se tienen sólo producciones <strong>de</strong> las formasA i → A j γ j > iA i → aγ a ∈ TB i → γ γ ∈ (V ∪ {B 1 , B 2 , . . . , B i−1 }) ∗Note que el símbolo <strong>de</strong> más a la izquierda en el lado <strong>de</strong>recho <strong>de</strong> alguna producción para A M <strong>de</strong>be ser unterminal, ya que A M es la variable con número mayor. El símbolo <strong>de</strong> más a la izquierda en el lado <strong>de</strong>recho <strong>de</strong>una producción para A M−1 <strong>de</strong>be ser A M o un símbolo terminal. Cuando sea A M , se pue<strong>de</strong> generar nuevasproducciones al reemplazar A M por el lado <strong>de</strong>recho <strong>de</strong> las producciones para A M , <strong>de</strong> acuerdo al primero<strong>de</strong> los lemas. Estas producciones <strong>de</strong>ben tener lados <strong>de</strong>rechos que comiencen con un símbolo terminal. Seproce<strong>de</strong> entonces con las producciones para A M−2 , . . . , A 2 , A 1 , hasta que el lado <strong>de</strong>recho <strong>de</strong> cada producción,para algún A i , comienza con un símbolo terminal.Por último, se examinan las producciones para las variables nuevas B 1 B 2 . . . B M . Ya que se comenzó conuna gramática en la forma normal <strong>de</strong> Chomsky es fácil probar, por inducción en el número <strong>de</strong> aplicaciones<strong>de</strong> los lemas, que el lado <strong>de</strong>recho <strong>de</strong> cada producción-A i , 1 ≤ i ≤ M, comienza con un terminal o A j A k , paraalgún j y k. Por lo tanto α en línea (7) <strong>de</strong>l algoritmo anterior nunca es vacío o comienza con algún B j , es<strong>de</strong>cir las producciones-B i no pue<strong>de</strong>n comenzar con otro B j . Por lo tanto todas las producciones-B i tienenlados <strong>de</strong>rechos que comienzan con terminales o A i ’s; otra aplicación <strong>de</strong>l primer lema para cada producciónB i completa la construcción.Ejemplo 76 Se convertirá a la forma normal <strong>de</strong> Greibach la gramática G = ({A 1 , A 2 , A 3 }, {a, b}, P, A 1 ), enque P consiste <strong>de</strong>:A 1 → A 2 A 3A 2 → A 3 A 1 |bA 3 → A 1 A 2 |aPaso 1: ya que el lado <strong>de</strong>recho <strong>de</strong> las producciones para A 1 y A 2 comienzan con terminales o variables <strong>de</strong>número más alto, se comienza con la producción A 3 → A 1 A 2 . En lugar <strong>de</strong> A 1 se usa A 2 A 3 , ya queA 1 → A 2 A 3 es la única producción para A 1 . El resultado esA 1 → A 2 A 3A 2 → A 3 A 1 |bA 3 → A 2 A 3 A 2 |aComo el lado <strong>de</strong>recho <strong>de</strong> la producción A 3 → A 2 A 3 A 2 empieza con una variable <strong>de</strong> menor número, sesustituye A 2 (su primera ocurrencia) tanto por A 3 A 1 como por b. El resultado es✷

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

Saved successfully!

Ooh no, something went wrong!