Está en la página 1de 5

Forma normal de Greibach

Una gramtica libre de contexto G=(V,T,P,S) se dice estar en forma normal de Greibach si sus producciones son de la forma

Veremos que la construccin de formas normales de Greibach equivalentes a gramticas dadas es procedimental !ara cualquier gramtica libre de contexto G, definamos, para

cada variable

, a los con"untos siguientes#

!rimeramente observemos que podemos $$componer producciones%% de manera que tengamos siempre una gramtica equivalente a la gramtica dada Lema 3.1 (&omposicin de producciones) 'i es una produccin en

G ( las producciones en P(Y) pueden escribirse como

entonces al

sustituir por las producciones , obtenemos una gramtica equivalente a G )n efecto, en toda derivacin terminal que aplique en un momento la produccin , necesariamente se ha de aplicar una produccin en P(Y) para suprimir el s*mbolo Y Lema 3.2 (+ransformacin de producciones $$reflexivas%%) !ara cada variable

enumeremos Q(X) ( R(X) como

'ea Z una variable que no ocurra en V 'ea la gramtica que se obtiene al sustituir el con"unto de producciones P(X) por las producciones

)n efecto, toda derivacin siniestra, en la gramtica original, de una palabra en L(G) ha de determinar una derivacin diestra de la misma palabra en la gramtica transformada ,a demostracin de la afirmacin anterior es directa &omo mera ilustracin,

consideremos tan solo un e"emplo# ,a gramtica con producciones genera al lengua"e consistente de las palabras de la forma b(ab)- .e acuerdo con la

construccin anterior, como obtenemos la gramtica

!resentemos sendas derivaciones, siniestra en la gramtica original ( diestra en la transformada, para la palabra bababab#

Veamos ahora el resultado principal de esta seccin# Proposicin 3.2 +oda gramtica libre de contexto G=(V,T,P,S) que no genere a la palabra vac*a se puede transformar en una gramtica libre de contexto G-=(V-,T,P-,S-) en forma normal de Greibach 'ea pues G=(V,T,P,S) una gramtica libre de contexto que no genere a ,a transformacin a una forma normal de Greibach la hacemos gradualmente mediante los pasos siguientes# / 'ea G%=(V%,T,P%,S%) la forma normal de &homs0( de G 1 2odificaremos a las producciones en P% para tenerlas tales que toda produccin, cu(o consecuente se inicie con una variable, ha de ser de la forma con j3i, para un cierto orden en el con"unto de variables actuales, digamos !ara esto apliquemos el procedimiento cu(o seudocdigo se presenta en la figura 4 5 Figure 6.3: 2odificacinde producciones de acuerdo con el orden de V%

!or lo visto en el lema 4 5 1, la gramtica G%% as* obtenida es equivalente a G 5 6hora, hecha la transformacin anterior, se tiene que la 7ltima variable Xm slo puede ser antecedente de producciones cu(os consecuentes se inician con s*mbolos terminales, las producciones en P(Xm8/) cu(os consecuentes se inician con Xm pueden transformarse, siguiendo el lema 4 5 / de $$&omposicin de

producciones%%, en producciones equivalentes cu(os consecuentes se inician con s*mbolos terminales, de manera sucesiva para i=m81 hasta i=/ las producciones en P(Xi) cu(os consecuentes se inician con alg7n Xj, con j3i, pueden transformarse, siguiendo el lema 4 5 / de $$&omposicin de producciones%%, en producciones equivalentes cu(os consecuentes se inician con s*mbolos terminales

&on todas estas transformaciones la gramtica resultante G-=(V-,T,P-,S-) es, en efecto, equivalente a G ( est en forma normal de Greibach Ejemplo: &onsideremos la gramtica con s*mbolos variables producciones (

la cual (a est en forma normal de &homs0( +ransform9mosla de acuerdo con el procedimiento anterior :bservemos que las dos primeras producciones (a tienen el tipo de las buscadas en el paso 1 del procedimiento anterior ,a tercera tiene un consecuente que se inicia con un s*mbolo variable anterior al de su propio antecedente &ompongamos pues la produccin 5 con la / :btenemos

la cual tambi9n tiene un consecuente que se inicia con un s*mbolo variable anterior al de su propio antecedente &ompongamos pues la produccin ; con la 1 :btenemos la cual es del tipo $$reflexivo%% !ara transformarla, introdu<camos una nueva variable Y5 :btenemos &on esto terminamos el paso 1 del procedimiento anterior )l con"unto actual de producciones consta de las producciones / , 1 , 4 ( = !asemos pues al paso 5 del procedimiento 'ustitu(endo 4 en 1 obtenemos 'ustitu(endo > en / obtenemos 'ustitu(endo ? en = obtenemos /@ nuevas producciones

)n

resumen, la gramtica equivalente, en forma normal de Greibach, tiene como con"unto de variables a ( sus producciones son la 4 , > , ? ( /@ #

Ejemplo ``Cadenas equilibradas de parntesis'': &onsideremos la gramtica que genera a las cadenas equilibradas de par9ntesis (&)!) ,a forma normal de &homs0( de la gramtica dada es &onsideremos el siguiente orden de las variables# ,a produccin / es $$reflexiva%% Antrodu<camos una nueva variable, X/ 6l hacer la transformacin pertinente, obtenemos#

,a produccin ; tiene un consecuente que se inicia con una variable anterior a su antecedente 6l componer ; con B obtenemos ,a produccin 4 tiene un consecuente que se inicia con una variable anterior a su antecedente 6l componer 4 con B obtenemos 6l componer > con 1 obtenemos

)n este momento, en nuestro con"unto actual de producciones 1 , 5 , B , = ( ? , ning7n consecuente se inicia con alguna variable que anteceda a la variable en el antecedente de la produccin correspondiente )n el paso 5 del procedimiento para obtener formas normales de Greibach, hemos de sustituir la variable por el s*mbolo (, seg7n la produccin 1 , toda ve< que apare<ca al inicio del consecuente de alguna produccin :btenemos as* la gramtica#

C esta gramtica (a queda en forma normal de Greibach :bservemos que la variable

es irrelevante .e hecho si hacemos la sustitucin del otro s*mbolo obtenemos la gramtica equivalente

que tambi9n est en forma normal de Greibach http#DDdelta cs cinvestav mxDEgmoralesDtaDnode//5 html