Você está na página 1de 14

TEORIA DE AUTMATAS

FORMA NORMAL DE CHOMSKY FORMA NORMAL DE GREIBACH SEGUNDA FORMA NORMAL DE GREIBBACH

DEFINICION FORMAL.

Una GIC est en la forma normal de Chomsky si todas las producciones son de la forma: S-> (donde S es el smbolo inicial) o de la de forma A-> a, donde a , o de la forma A -> BC; donde A, B y C son SNT, con la posible excepcin de S ->

Verificar que se encuentre libre de anomalas, para ello, hay que aplicar el procedimiento para depurar la gramtica y eliminar las producciones , los smbolos intiles y las producciones unitarias de G. Definir nuevas producciones, un nuevo SNT para producir cada uno de los smbolos terminales que aparezcan en cualquier produccin que no est normalizada. Los nuevos SNT, se substituirn en todas ellas . El ltimo paso se aplica para reducir el nmero de SNT en todas las producciones con tres o ms, para ello es necesario agregar nuevas producciones, definir nuevos SNT que agrupen de dos en dos los smbolos que aparezcan en las producciones no normalizadas.

Sea la GIC, sobre el alfabeto = {a, b}, que genera de manera no ambigua al lenguaje formado por las cadenas no vacas, que contienen la misma cantidad de a que b y que est libre de anomalas. S -> bA|aB A -> bAA|aS|a B -> aBB|bS|b

Esta gramtica est libre de anomalas, sin embargo, las nicas dos producciones que previamente estn normalizadas, y a las cuales no se les debe hacer nada, son A -> a y B -> b El siguiente paso consiste en definir dos producciones, una para producir el smbolo a y otra para producir la b. Ca -> a Cb -> b

Los nuevos SNT, se sustituirn en las seis producciones no normalizadas donde aparezca el smbolo terminal que generan, de este modo, podemos expresarlas as: S ->CbA|CaB A ->CbAA|CaS B ->CaBB|CbS Con este cambio otras cuatro producciones han quedado normalizadas, pero faltan dos, que tienen tres SNT cada una, el ltimo paso se aplica para reducir este nmero de smbolos, para ello, agregamos dos nuevas producciones, que en este caso son: D1 ->AA D2 ->BB Reemplazando estos nuevos smbolos no terminales en las dos producciones restantes, obtenemos finalmente la GIC equivalente en la FNCh S -> CbA|CaB A -> CbD1|CaS|a B ->CaD2|CbS|b Ca -> a Cb -> b D1 -> AA D2 -> BB

Encontrar la GIC en la FNCh equivalente a la siguiente GIC libre de anomalas: S ->aA|a|BAb A ->ab|aAb B ->b Las nicas dos producciones que previamente estn normalizadas son: S ->a B ->b Ahora debemos definir la nueva produccin Ca ->a, para sustituir al smbolo terminal a; no se requiere definir una nueva produccin para el smbolo b, ya que la produccin B ->b es nica para ese no terminal y se puede utilizar para ser reemplazada en la GIC.

Reemplazando los smbolos B y Ca en las cuatro producciones de la GIC original que no estn normalizadas, obtenemos: S ->CaA|BAB A ->CaB|CaAB

Dos de ellas an no estn normalizadas, para ello, definimos una produccin ms: D1 ->AB

Por lo tanto, la GIC equivalente en la FNCh queda finalmente as: S ->CaA|a|BD1 A ->CaB|CaD1 B ->b Ca ->a D1 ->AB

Se define as:

Una GIC est en FNG si todas sus producciones son de la forma A ->a, en donde a es un smbolo terminal, a y ( U N)*, con la posible excepcin de S >. Es decir, que se requiere que toda la produccin tenga un smbolo terminal al principio, y por tanto, se incluye de forma excepcional a la produccin de la cadena vaca, de esta manera, cualquier GIC puede ser convertida a una gramtica equivalente en la FNG

Sea la siguiente GIC encuentre una equivalente en la FNG. S ->bS|AcS|a A ->bA|Ba B ->aB|b Podemos observar que las producciones de B ya estn normalizadas, por lo que bastar reemplazar las producciones de B en la segunda produccin de A, que inicia con ese smbolo, para normalizarlas: A ->bA|aBa|ba Similarmente, reemplazando las producciones de A, ya normalizadas, por la inicial de la segunda produccin de S tenemos que tambin quedan normalizadas: S ->bS|bAcS|aBacS|bacS|a

Reuniendo todas las producciones anteriores, el resultado final en la FNG es: S ->bS|bAcS|aBacS|bacS|a A ->bA|aBa|ba B ->aB|b

Si el SNT A tiene producciones de la forma A ->A y otras producciones de la forma A ->, podemos eliminar las producciones recursivas a la izquierda por medio de la introduccin de un nuevo SNT A y entonces reemplazamos las producciones anteriores por las siguientes: A ->|A A ->|A En ocasiones, encontrar una GIC equivalente en la FNG, requiere de la aplicacin del teorema de recursividad. Ejemplo. Sea la sig. GIC encuentre una equivalente en la FNG S ->SbS|ScS|a Ahora aplicando el teorema de la recursividad, identificamos que =a, mientras que1=bS y 2=cS, por lo que nos queda: S ->aS|a S ->bS|cS|bSS|cSS

Una GIC est en la SFNG si todas sus producciones son de la forma: A ->a, donde a y N*. Es decir, que se requiere que toda la produccin tenga un smbolo terminal a l principio, seguido de uno, varios o ningn SNT. Igual que en el caso anterior, siempre es posible encontrar una gramtica equivalente en la SFNG para cualquier GIC dada.

Sea la siguiente GIC en FNCh, encuentre una gramtica equivalente en la FNG S ->AA|a A ->SA|b Primero reemplazaremos las producciones de S en la primera produccin para A, (tambin se hubiera podido reemplazar la A en la produccin correspondiente al smbolo S), resultando que: A ->AAA|aA|b Ahora aplicamos el teorema de recursividad, de donde resulta: A ->aA|b|aAA|bA A ->AA|AAA

Ahora reemplazaremos la A inicial en la primera produccin, quedando normalizada: S ->aAA|bA|aAAA|bAA|a

Finalmente reemplazaremos la A inicial en las producciones de A, quedando: A ->aAA|bA|aAAA|bAA|aAAA|bAA|aAAAA|bAAA

Reuniendo los resultados, la gramtica equivalente en la segunda FNG es: S ->aAA|bA|aAAA|bAA|a A ->aA|b|aAA|bA A ->aAA|bA|aAAa|bAA|aAAA|bAA|aAAAA|bAAA

Você também pode gostar