You are on page 1of 60

Copyright 2000. Digitalia. All rights reserved.

. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

3.3. OPERACIONES CON CONJUNTOS REGULARES

3.3

61

Operaciones con conjuntos regulares

Existen operaciones bajo cuya aplicacin los conjuntos regulares


son estables, es decir, el conjunto que se obtiene como resultado es
tambin regular. Ejemplo de ellas son las siguientes:
unin, concatenacin y clausura
complementacin
interseccin
sustitucin
cociente
inversin
La unin, concatenacin y clausura de conjuntos regulares es regular por la misma definicin de conjunto regular. Que el complementario (L = S* L) de un conjunto regular L es regular, se puede
demostrar construyendo a partir de M el AFD que acepta L, un
autmata M' que reconoce L. Para ello, basta con tomar M' idntico
a M, con la salvedad de que el nuevo subconjunto de estados aceptables es F' = Q - F. Es evidente que
Como consecuencia inmediata de lo anterior, la interseccin de
dos conjuntos regulares tambin es regular, pues puede expresarse
eri trminos de unin y complementacin: L\ fl 1/2 = L\ U L<. Una
forma, en general ms sencilla, de construir el autmata que acepta LI n Z/2 a partir de M\ y M< los AFD que reconocen
respectivamente, es tomar

donde
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

62

3. LENGUAJES REGULARES

Una sustitucin es un homomorfismo / : S* > P(A*), tal que


la imagen f(a] de cualquier elemento a es un conjunto regular
sobre otro alfabeto A. En el monoide final la operacin definida es
la concatenacin de lenguajes, y en el inicial la concatenacin de
cadenas. Sabemos que:
f(xy) f(x)f(y)

(por definicin de homomorfismo);

f ( e ) = {e} (la imagen del elemento neutro a travs de un homomorfismo es el elemento neutro del monoide de llegada).
Dadas estas propiedades, se concluye trivialmente
f ( w ) de una cadena w 6 * es un conjunto regular.
f ( w ) es concatenacin de los conjuntos regulares que
aplicar / a cada uno de los smbolos que componen
w = 0,10,20,3 . . . entonces f(w] = f (0,1) f (a<) f ( 0 , 3 ) . . .
es regular, tambin la imagen de un conjunto R de
siempre que R sea regular, dado que:

que la imagen
En particular,
se obtienen al
la cadena. Si
No slo
cadenas lo es,

y por tanto, los conjuntos regulares son estables bajo sustituciones.


Un caso particularmente interesante de sustitucin se da cuando / es
de la forma: / : E* ) A* y cada cadena es sustituida por otra.
El cociente de dos cadenas se define como la operacin inversa
de la concatenacin. Dado que la concatenacin no es conmutativa,
debe distinguirse entre el cociente por la derecha y el cociente por la
izquierda:

El cociente entre conjuntos se define entonces:

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

3.3. OPERACIONES CON CONJUNTOS REGULARES

63

Otro concepto utilizado con frecuencia es el de conjunto de colas


de la cadena w * en el lenguaje L, definido como w~lL. Si el
conjunto de colas de w es no vaco (w~lL ^ 0), entonces diremos
que w es un prefijo de L. A su vez, diremos que w es un sufijo del
lenguaje L si
En general, el cociente de un lenguaje regular R con un lenguaje
cualquiera (no necesariamente regular)!/ es regular. En efecto, dado
R existe un AFD que reconoce a ?, por ejemplo
El AFD que reconoce a C = RL~l es M' = (Q, S, , </ 1? F'), con
Trivialmente:

Luego C = L(M'), lo que demuestra que .RL"1 es regular. Si el


cociente se realizase por la izquierda, el proceso sera semejante, pero
redefiniendo el estado inicial q\. Este pasara en general a ser un
subconjunto de estados iniciales Qi, que pueden reducirse a uno nico
mediante las tcnicas de conversin a AFD explicadas en la seccin
2.5.1.
Conviene destacar que el procedimiento anterior, no constituye
por s solo un procedimiento efectivo para encontrar el autmata M',
puesto que la cadena y debe buscarse entre un conjunto eventualmente infinito de cadenas L, y el tiempo requerido para ello puede no
estar acotado. Esto no ocurre si L est caracterizado como lenguaje
regular o por una gramtica independiente del contexto. Volveremos
sobre esta cuestin de la resolucin algortmica de problemas ms
adelante en la seccin 4.2.
Por ltimo, se define WR, la cadena inversa de la cadena u>, de
forma recursiva:

Tambin se define lenguaje inverso de un lenguaje L a


EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

64

3. LENGUAJES REGULARES

Obviamente, 0^ = 0. Con estas definiciones, el conjunto LR es regular si y slo si L es regular. Para probarlo, basta con observar
que:

Esto permite obtener una expresin regular para LR conocida una


expresin para L, y viceversa, con el convenio de que rR representa
a la expresin regular que denota
Ejercicios

3.14 Es la unin de infinitos conjuntos regulares tambin regular?


Y cualquier subconjunto de un conjunto regular? Justifica la respuesta.
3.15 Demuestra que si A B (la diferencia simtrica de A y B) y
A son regulares entonces B es regular.
3.16 Demuestra que si M^ es el AFD que acepta cadenas binarias
cuyo valor es mltiplo de k, entonces
3.17 Razona la validez de las siguientes identidades:

3.18 Demuestra que el conjunto de prefijos Pr(L) de un lenguaje


regular L es regular: Pr(L) = [x E S* : xw E L para alguna
Haz lo mismo con el conjunto C(L] = {y e S* : xyz G L para algunas
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

3.3. OPERACIONES CON CONJUNTOS REGULARES

65

3.19 Cmo se construira a partir de M el AFD que acepta


siendo f una sustitucin? Aplica el razonamiento para demostrar que
es regular.
3.20 Justifica que, para cualquier lenguaje L, (L*)R (LR)*.
3.21 Demuestra que si f : * > A* es un homomorfismo y R C
A* es regular entonces f~l(R] {x E S* : f(x) E R} es regular
(estabilidad para la inversa del homomorfismo).
3.22 Demuestra que
3.23 Dado un autmata, A definimos el lenguaje L formado por
todas las cadenas w = ai2...a\w\ tales que su longitud w es par y
adems 0,20,4....a\w es aceptado por A. Describe cmo puede construirse un AFD B que reconozca L. Explica el procedimiento aplicndolo
al autmata A que reconoce
3.24 Sea la operacin P definida sobre una cadena w como sigue:
si w contiene dos a consecutivas, cada b se convierte en una c; si w
contiene dos b consecutivas cada a se convierte en una c. Es la clase
de los lenguajes regulares sobre {a, 6} cerrada bajo P?
3.25 Obtener un AFD para el lenguaje L(M) a(ba)*, siendo M el
autmata de la figura.

3.26 Construye un AFD que reconozca las cadenas binarias que,


empezando y acabando por el mismo dgito, tienen un valor numrico
mltiplo de tres.
3.27 Sea la transformacin h : {0,1}* ) {a, b}* tal que /(O) = aa
y h(l) = aba, con la propiedad de conservacin de la concatenacin
(se tendr, por ejemplo, que /i(010) = aaabaaa); y sea el lenguaje
L = (ab + ba}*a. Encontrar el autmata determinista mnimo que
reconozca el lenguaje

es decir, L' est formado por las cadenas sobre el alfabeto (0,1} cuja
imagen
pertenece a L.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

66

3. LENGUAJES REGULARES

3.28 Dado el lenguaje L = (1(10)*, escribe una expresin regular


(usando slo operadores de unin, concatenacin y clausura) para el
lenguaje
3.29 Calcula el cociente entre el lenguaje reconocido por el autmata de la figura y:

1. la cadena a;
2. la expresin regular a + ab
3.30 Dado un lenguaje regular L, definimos el lenguaje:
MAX(L) = {x 6 L para ninguna y diferente de e se tiene xy E
L}.
Construye un autmata finito para MAX(L) si L es el lenguaje
representado por la expresin regular
3.31 Explica un mtodo general para encontrar el autmata que
reconoce cualquier cadena binaria que contiene una subcadena del
lenguaje definido por otro autmata dado M. Aplcalo como ejemplo
al autmata

3.32 Describe un algoritmo que, dadas dos expresiones regulares r


y s permita saber si r C s.
3.33 El contorno de una figura plana puede representarse mediante
unaEBSCO
cadena
que
indica
direcciones
", on5,2/16/2016
W) de3:10
losPM movimientos
Publishing
: eBook
Collection
(EBSCOhost) -(TV,
printed
via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

3.3. OPERACIONES CON CONJUNTOS REGULARES

67

del lpiz cuando recorre (en sentido horario) el borde la figura, empezando por un punto del borde y retornando al mismo punto. Para
evitar que el resultado dependa del punto del contorno elegido como
inicial se define el conjunto de cadenas giradas respecto al conjunto
de partida:
Describe algn mtodo para transformar el autmata finito determinista que reconoce L en uno (indeterminista) que reconoce todas las
cadenas en cycle(L). Toma, por ejemplo, el caso del lenguaje
3.34 Sea el lenguaje regular . = (0|l)*ll(0|l)*yel lenguaje independiente del contexto L = {cadenas binarias con igual nmero
de ceros que de unos}. Dibuja un autmata para el cociente

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

This page intentionally left blank

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

Captulo 4
Construccin de

autmatas finitos

4.1

Lema de bombeo

Un problema que se plantea con frecuencia es el de disear un


autmata finito (o alternativamente encontrar una expresin regular) para el reconocimiento de un lenguaje dado. Para ello, conviene
preguntarse previamente si el conjunto en el que estamos interesados
es efectivamente regular. Aunque no disponemos de un mtodo general que responda a esta pregunta en todos los casos, existen al menos
algunas propiedades que debe cumplir cualquier lenguaje regular y
que, en caso de no ser satisfechas, permiten descartar la posibilidad
de que el conjunto dado sea regular. Una de ellas es el lema de bombeo. Esencialmente, lo que recoge su enunciado es que los lenguajes
regulares son reconocibles mediante autmatas con un nmero finito de estados, y por tanto, la cantidad de informacin que en ellos
se puede almacenar es finita. En particular, al proceder al reconocimiento de una cadena lo suficientemente larga, el autmata debe
pasar ms de una vez por alguno de los estados. En ese caso, el camino recorrido presenta un bucle, y el fragmento de cadena que lo
origina podra repetirse ("bombearse") tantas veces como se quiera.
Veamos el enunciado del lema de bombeo:
Lema 4.1 Para todo conjunto regular L existe un nmero n E N tal
EBSCO Publishing : eBook Collection (EBSCOhost)
69 - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

70

4. CONSTRUCCIN DE AUTMATAS FINITOS

que

Demostracin. Si L es regular, existe M, un AFD que acepta L.


Sea n = \M\ el nmero de nodos de M y u? = d\ai . . am una cadena
de E* con m > n. Cada smbolo de w induce una transicin a otro
estado en M, por lo que al cabo de m transiciones al menos algn
nodo Q ha sido visitado dos veces1. Supongamos que la sucesin
de estados inducida por w en M es q\q<... g . . . q}... qm+i y que
qj = qi es el primer nodo que se repite en la sucesin. Si llamamos
x a\a^ ... Oj_i, y = ^+1... flj-i, z = djdj+i...ai, resulta que
Sy(qi) Q y por tanto qm+i = fiz($y}k$x(qi) para cualquier A; e N.
Se concluye pues, que xykz G L para todos los valores de A:. Adems,
y T e por ser el autmata determinista, y xy\ < n, pues el primer
nodo repetido puede aparecer como muy tarde en la posicin n + 1
del camino.
Es importante notar que en ningn caso el lema de bombeo demuestra que un conjunto C dado sea regular. Se trata simplemente
de un filtro que permite rechazar algunos conjuntos como candidatos
a conjuntos regulares. Esto ocurre cuando, dado el conjunto C, no
existe el nmero n al que se refiere el lema, lo cual se demuestra generalmente por reduccin al absurdo: independientemente del valor
de n, no hay forma de satisfacer las condiciones del lema. Ello requiere justificar que existe alguna cadena de longitud superior o igual
a n que no puede ser descompuesta en tres fragmentos que satisfagan
todas las condiciones del lema. La dificultad, pues, estriba en encontrar dicha cadena (en realidad, conjunto de cadenas, ya que al ser n
desconocido la cadena elegida depender del valor de n).
Veamos un ejemplo de aplicacin del lema. Dado el conjunto
C = {w (0 + 1)* : w contiene igual nmero de ceros que de unos},
supongamos que existe n. Entonces podemos tomar, por ejemplo, la
cadena w = Q 2n l 2n . Es evidente que no existe una fragmentacin w =
xyz que satisfaga a un tiempo que
1

Basta con que m = n ya que una cadena de m smbolos recorre m + I nodos,


incluidos
los extremos.
EBSCO Publishing
: eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.1. LEMA DE BOMBEO

T\_

ya que la subcadena y debe estar compuesta de uno o ms ceros,


y al variar k se vara el contenido de ceros de la cadena sin variar
simultneamente el de unos. Por tanto, si k / 1 entonces
y el conjunto C no es regular.
Ejercicios
4.1 Demuestra que D {w E * : w = On } no es regular.
4.2 Raznese qu subconjuntos de (0,1}* de entre los siguientes son
regulares:

{02n : n 6 N};
el conjunto de las cadenas que representan un nmero primo;
el conjunto de las cadenas que representan mltiplos de 3;
el conjunto de las cadenas cuya longitud es un cuadrado perfecto;
el conjunto de las cadenas que tienen el mismo nmero de ceros
que de unos;
el conjunto de las cadenas palndromas (capica);
el conjunto de los prefijos de 1/3;
el conjunto de los prefijos de \/2;
el conjunto de las cadenas cuyo contenido en ceros y unos difiere
en un nmero par
4.3 Dado un lenguaje regular L, son regulares los siguientes conjuntos?

mitad(L) = {x : 3y : x \y\,xy E L}, donde x es la longitud


la cadena
EBSCOde
Publishing
: eBookx.
Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

72

4. CONSTRUCCIN DE AUTMATAS FINITOS

4.4 Dada la cadena s = abaababaababaab..., es Pr(s} = {x :


x es un prefijo de s} regular?
4.5 Dado un lenguaje de cadenas binarias L C {0,1}*, construimos
el lenguaje formado por las cadenas de L cambiadas de la siguiente
forma:
todos los dgitos en posicin par se cambian, los que ocupan posicin impar se mantienen.
Por ejemplo, si 01001 E L, entonces se obtiene 00011.
Justifica que si L es regular, entonces tambin lo es L'. Encuentra
un AFD para L' si L es el lenguaje definido por la expresin regular
4.6 Dado un lenguaje L C {0,1}*, sea

Esto es, L' contiene todas las cadenas obtenidas borrando exactamente un 1 a las cadenas de L. Justifica que si L es regular, entonces
tambin lo es L'. Encuentra un AFD para L' si L es el lenguaje
definido por la expresin regular
4.7 Dado un lenguaje regular L, llamamos err(L) a todas las cadenas que pueden obtenerse por error en un smbolo (si el alfabeto es
{0,1}, Un cero ha sido cambiado por un uno o al revs) de las cadenas
de L. Justifica que err(L) es regular. Encuentra el autmata para
err(L) si L es el lenguaje formado por todas las cadenas binarias tales
que la diferencia (absoluta) entre el nmero de ceros y de unos no es
mltiplo de 3.
4.8 Sea L un conjunto regular. Justificar que entonces tambin es
regular el conjunto

(X/2 est formado por la primera mitad de las cadenas de L).


4.9 Dado un lenguaje L sobre S, definimos el conjunto MT(L) como

Por ejemplo, si L = {e, a, a&, bab, bbab, aabbab} entonces MT(L]


{e, a, bb}. Demostrar que si L es regular, entonces MT(L] tambin
es EBSCO
regular.
Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.2. ALGORITMOS Y DECIDIBILIDAD

73

4.10 Sea una sucesin infinita de palabras x\, #2, 3, , xn,... sobre un alfabeto E. Definimos el lenguaje L de la siguiente forma:
XiXj e L si y slo si i < j. Es L regular? Justifiqese la respuesta.
Una consecuencia relacionada con el lema de bombeo es que no
existen autmatas finitos que reconozcan cadenas prefijo de un nmero irracional, por ejemplo \/2- Esto equivale a afirmar que \/2 no es
computable: cualquier ordenador tiene un nmero finito de estados
(y la memoria accesible en la prctica est acotada) y por tanto el
resultado obtenido sera peridico a partir de cierta cifra, y por tanto
incorrecto.

4.2

Algoritmos y decidibilidad

Un algoritmo es una secuencia finita de instrucciones inambiguas


y efectivas que constituyen un mtodo general para obtener la respuesta a una pregunta determinada. Por efectivo debemos entender
que ste proporciona la respuesta siempre en un tiempo finito. A las
preguntas para las que existe dicho mtodo se las denomina decidibles. No todas las cuestiones admiten una solucin algortmica2. En
este apartado estudiaremos la decidibilidad de preguntas como: son
equivalentes dos autmatas?; genera un autmata dado M un conjunto vaco, finito o infinito de cadenas? Veremos que estas preguntas
son decidibles, en el sentido de que disponemos de un mtodo general
que proporciona una respuesta en un tiempo finito en cualquier caso
que se presente. Para ello enunciaremos los siguientes teoremas:
Teorema 4.1 El lenguaje aceptado por un AFD es distinto del vaco
si y slo si existe una palabra w en este lenguaje cuya longitud es ms
pequea que el nmero de estados del autmata:

Demostracin. La implicacin hacia la izquierda es trivial, as que


demostraremos la implicacin hacia la derecha. Sea n = \M\. Si
L(M) 7^ 0 entonces L(M) contiene al menos una cadena w. Si
w < n ya est demostrado. Si w > n entonces por el lema de
2

Por ejemplo, la existencia o no de un cardinal intermedio entre el de los


nmeros
naturales: eBook
y el Collection
de los reales
(ver pgina
144)
EBSCO Publishing
(EBSCOhost)
- printed
on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

74

4. CONSTRUCCIN DE AUTMATAS FINITOS

bombeo w = xyz con \y\ > 1 y adems xz G L(M] , cuya longitud es


estrictamente menor que la de w. Si xz < n ya hemos terminado.
Si no, se procede sucesivamente, aplicando el lema de bombeo a la
nueva cadena obtenida. En cada paso la longitud de la cadena se
acorta al menos en un smbolo, por lo que en algn momento debe
obtenerse una subcadena cuya longitud es menor que n.
Teorema 4.2 El lenguaje aceptado por un autmata es infinito si y
slo si existe alguna palabra en este lenguaje cuya longitud se encuentra entre dos cotas: el nmero de estados del autmata y dos veces el
nmero de estados del autmata:

Demostracin.
(-4=) Es consecuencia del lema de bombeo y de que \w\ > |M|. En
efecto, si w = xyz es la particin de la cadena que satisface el
lema de bombeo, entonces xykz genera un conjunto infinito de
cadenas al variar fc, todas ellas de L(M).
(=>) Si L(M] es infinito, entonces existen en l cadenas de longitud
superior a cualquiera dada, puesto que en caso contrario el conjunto sera finito. Tomemos w; : w > n = \M\. Si w est comprendida entre n y 2n ya est demostrado. Si w; > 2n entonces
se puede aplicar el lema de bombeo con k = O, obteniendo una
cadena ms corta. Como w = xyz : \y\ > 1, xy\ < n, necesariamente 1 < \y\ < n, y la cadena se va acortando en fragmentos
de longitud menor o igual que n. Es necesario, por tanto, que
en algn momento la cadena que obtenemos tenga una longitud
/ comprendida entre n y 2n (n < / < 2n).

Cuestin: Si L(M] es finito y n |M|, cul es como mximo la


longitud de las cadenas aceptadas por M?
Teorema 4.3 Existe un algoritmo que determina si dos autmatas
son equivalentes (por tanto, tambin si dos expresiones regulares representan
al mismo conjunto).
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.3. MINIMIZACIQN DE AUTMATAS FINITOS

75

Demostracin. Para determinar si L(M\) L(M<2) basta con


construir utilizando las tcnicas de la seccin 3.3 un autmata Ma que acepte I/(Ms) = L(M\) L(M^) y aplicar el algoritmo del teorema 4.1 para determinar si L(M^) = 0. Trivialmente
Los teoremas anteriores proporcionan procedimientos cuya conclusin est garantizada. Por ejemplo, para determinar si el conjunto
de cadenas que acepta M es vaco, finito o infinito basta con buscar
entre las cadenas de longitud comprendida entre O y 2|M| 1. Dado
que para un alfabeto finito S, el nmero de cadenas con longitud menor que 2|M| es finito y est perfectamente determinado, es seguro
que obtendremos una respuesta.
Ejercicios
4.11 Descrbase un algoritmo para obtener el cociente LiL^1 de
dos lenguajes regulares
4.12 Dse una cota para el nmero de cadenas de * con longitud
menor que una dada I, si S contiene p smbolos.

4.3

Minimizacin de autmatas finitos

Una propiedad muy interesante de los autmatas finitos deterministas es que si se establece un relacin de orden de acuerdo con su
tamao segn el nmero de nodos que contiene, el subconjunto
de los autmatas finitos que generan un lenguaje dado L tiene un
mnimo, es decir, existe un nico autmata que es menor (estrictamente) que todos los dems. Esto no ocurre, por ejemplo, en el caso
de los autmatas finitos indeterministas, donde podemos encontrar
varios autmatas equivalentes tales que no existe otro equivalente de
tamao menor. Tampoco es posible si trabajamos con expresiones
regulares o gramticas. En cambio, si caracterizamos cada conjunto
regular por el mnimo AFD que lo genera, esta correspondencia es
biunvoca. Las consecuencias prcticas de esta propiedad son enormes. Por ejemplo, el disponer de una representacin inambigua proporciona una gran potencia a los mtodos de aprendizaje o inferencia
de lenguajes regulares[11], caracterstica que est lejos de ser conseguida
otros : tipos
de lenguajes.
EBSCO en
Publishing
eBook Collection
(EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

76

4. CONSTRUCCIN DE AUTMATAS FINITOS

La existencia de un mnimo hace que el problema de encontrar el


AFD ms pequeo que genera un lenguaje regular L dado est bien
definido. Es posible demostrar que cualquier otro AFD que acepte
L es en realidad una copia del mnimo, en la que algunos nodos se
han multiplicado de forma innecesaria en forma de nodos equivalentes. Las transiciones que se originan en estos nodos equivalentes son
las mismas que las del nodo original en el AFD mnimo, es decir,
conducen al mismo estado o a estados equivalentes entre s.
Existen diversos algoritmos para encontrar el autmata mnimo
M que acepta L cuya justificacin es posible a partir del teorema
de Myhill y Nerode. Sin embargo, en muchos casos se conoce ya
un autmata determinista A tal que L = L(A) y lo que se desea
es obtener la particin de los estados de A en las clases de nodos
equivalentes (que son copia del nodo original del autmata mnimo
M). Ambas cuestiones sern tratadas a continuacin, pero antes
introduciremos algunas definiciones3.
Definiciones:
Se llama orden de una relacin de equivalencia al nmero de
sus clases. Si este es finito se dice que la relacin es de orden
finito.
Dadas P\ y P<2, dos particiones del mismo conjunto, P\ es un
refinamiento de P<2 si cada clase de P\ est totalmente incluida
en alguna de P<.
Sea R una relacin en E*. Se dice que R es invariante por la
derecha si
Dado un lenguaje L C E*, se define RL como la relacin de
equivalencia entre cadenas: x RL y <=> x~lL = y~lL. Es decir,
x RL y si los conjuntos de las colas de x y de y en L coinciden.
Dado un autmata finito determinista M, se define la relacin
de equivalencia RM entre cadenas de E* mediante:
3

Vanse tambin los conceptos de particin y relacin de equivalencia en la


pgina
142.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.3. MINIMIZACIN DE AUTMATAS FINITOS

77

Ejercicios
4.13 Comprueba que RM es una relacin de equivalencia invariante
por la derecha y de orden finito, cuyo orden es menor o igual que el
tamao \M\ del autmata.
4.14 Comprueba que RL es una relacin de equivalencia invariante
por la derecha.
4.15 Justifica que la relacin RL definida anteriormente se puede
expresar tambin de la siguiente manera:

4.3.1

Teorema de Myhill y Nerode

Teorema 4.4 (de Myhill y Nerode) Dado M, un autmata finito


determinista:
(a) La particin de S* inducida por RM es un refinamiento de la
particin inducida por RL(M)
(b) L C S* es regular <=> RL es de orden finito.
Demostracin.
(a) Esta proposicin es equivalente a la implicacin:

Dada una cadena iu, vamos a denotar como qw el nodo tal que
qw = 6w(qi] y por L(qw) el lenguaje generado por M cuando se
toma qw como estado inicial. Por la definicin de cociente:

Esto expresa que las colas en lenguaje definido por el autmata


de una cadena w dada son las cadenas que conducen a estados
de aceptacin partiendo del nodo qw al que se llega desde q\ mediante w. Como consecuencia de lo anterior, si x e y conducen
al mismo estado, sus conjuntos respectivos de colas coinciden:

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

78

4. CONSTRUCCIN DE AUTMATAS FINITOS

es decir, x RM y => % RLM) V (aunque no necesariamente al


revs), lo que implica que la particin establecida por RM es
un refinamiento de la establecida por RL(M}(b) (=>) Si L es regular, existe un autmata finito M de tamao
n tal que L = L(M}. Como RM es un refinamiento de RL, y
adems es de orden finito menor que n se satisface:
n > orden de RM > orden de RL
En otras palabras, como mucho existen n conjuntos de colas
distintos en E* (uno por cada nodo del AFD, pudiendo adems
algunos de ellos coincidir).
(b) (<=) Para probar que L es regular basta con encontrar M, un
AFD tal que L = L(M}. Para ello aprovechamos el hecho de
que RL establece una particin de E* en un nmero finito de
clases. Interpretaremos que cada uno de dichos subconjuntos
es un estado, y que se pueden efectuar transiciones entre ellos
de la siguiente forma: si la cadena w pertenece a un subconjunto, el smbolo a produce una transicin al estado en el que
se encuentra wa. Rigurosamente, se definen:
Q = {[x}: clases de equivalencia de RL}-, el conjunto
(finito) de las clases de equivalencia de la particin definida
en E* por la relacin RL]
q\ = [e], la clase de equivalencia a la que pertenece e;
F = {C[x] : x E }, el conjunto de las clases de equivalencia a las que pertenecen las palabras del lenguaje;
- a(CIXI) ^[xa]i es decir, si el autmata est en el estado
asociado a la clase de equivalencia a la que pertence x,
el smbolo a E produce una transicin al estado que
representa a la clase de equivalencia donde se encuentra
xa.
Con estas definiciones 8x(<li) ^x(C[e]) = CN? y como hemos
definido (^[x] E F -4=- x E L, el autmata slo acepta cadenas
pertenecientes a L. La demostracin se completa probando que
tanto la definicin de la funcin como la del subconjunto F
son consistentes, es decir, que no dependen del elemento x que
se elija como representante de la clase [x].

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.3. MINIMIZACION DE AUTMATAS FINITOS

79

Ejercicios
4.16 Demuestra, a partir de que RL es invariante por la derecha,
que la definicin de la funcin 6 es consistente:
<5 a (CM)- Demuestra tambin la consistencia de la definicin de F.
4.17 Dado S = {a, 6}, se define el conjunto de lenguajes finitos:
Ln = {wcw1 : w, w' (E Sn A w ^ w'}. Demuestra que L = Un>0 Ln no
es regular.
Corolario 4.1 Dado L regular existe un nico (salvo reordenacin
de las etiquetas de los nodos) autmata finito determinista M tal que
L = L(M) y cuyo nmero de nodos sea mnimo.
Demostracin. El autmata M es el que se ha definido en el teorema anterior a partir de RL, que tiene tantos estados como clases
presenta RL. En efecto, cualquier autmata M' equivalente a M genera tambin el lenguaje L y define una relacin RM> cuyo ndice
es como mucho \M' que origina un refinamiento de la particin
inducida por RL- Por tanto:
\M'\ > ndice de RM> > ndice de RL(M] \M\
Luego cualquier otro autmata determinista equivalente contiene un
nmero mayor o igual de estados. Adems, en el caso particular de
que |M| = \M' , entonces M y M1 son idnticos, salvo reordenaciones
triviales de los nodos, pues el refinamiento tiene el mismo nmero
de clases que la particin ms gruesa y, por tanto, slo pueden ser
iguales.

4.3.2

Algoritmos de minimizacin

En el apartado anterior hemos visto cmo es posible construir el


AFD mnimo que acepta un cierto lenguaje regular L a partir de las
clases de equivalencia de RL- Sin embargo, no se proporcionaba un
mtodo efectivo para obtener dichas clases. El procedimiento habitual es partir de A, un AFD ya conocido4 que acepta L = L(A), y se
busca el mnimo autmata equivalente a A. Para ello demostraremos
4

Muchas veces A ha sido construido a partir de una expresin regular siguiendo


las EBSCO
tcnicas
del apartado
3.2. (EBSCOhost) - printed on 2/16/2016 3:10 PM via
Publishing
: eBook Collection
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

80

4. CONSTRUCCIN DE AUTMATAS FINITOS

que es equivalente hablar de particin en L y de particin en los estados de A. Si los nodos del autmata inducen una particin en
definida por RA, la particin RL de S* induce una particin de los
estados de A que conduce al autmata minimizado. Esta particin
viene dada por los nodos que son accesibles mediante cadenas de una
misma clase de RL.
Dado A = (Q, E, <5, gi, F), llamaremos L(qk) al lenguaje regular
generado cuando se toma q^ como nodo inicial en A, de forma que
L(qk) = {w S* : 6
nos permite definir la siguiente relacin de equivalencia entre nodos:

El autmata minimizado se construye como


con
Q' = {[o\i clases de equivalencia con q accesible desde qi}

Trivialmente L(M) = L(A], ya que:

Por tanto M es un autmata equivalente a A cuyo tamao es igual


o menor que el de A. Adems RM = RL(A}I 1 cual slo ocurre para
el AFD mnimo (siempre y cuando no haya nodos intiles), tal y
como vimos en el apartado [4.1]. En efecto, si definimos qx y qy como
q

Y por tanto, RL RM- La ecuacin anterior muestra adems que


la particin de estados inducida por = es la misma que la inducida
por RL al agrupar los nodos accesibles por cadenas de una misma
clase,
si se excluyen los nodos intiles.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.3. MINIMIZACIN DE AUTMATAS FINITOS

Ejercicios
4.18 Demuestra que la definicin de 6' es consistente, es decir que
no depende del elemento representante de la clase elegido:
4.19 Demuestra que si M es mnimo, entonces contiene como mximo un nodo intil.
En la prctica, para determinar la particin en los nodos de A
se puede proceder de forma recursiva empezando desde de la particin trivial (todos los nodos son equivalentes). Sabemos que L(qi) ^
I/te) <=> qi ^ qj. La condicin L(qi) ^ L(qj) significa que existe
alguna cadena w que pertenece a I/ta) pero no a L(QJ) o viceversa.
Para w . esto significa que:

Lo cual nos permite establecer una particin ms fina que la trivial:


las dos clases de equivalencia son F y Q F.
Para cadenas w de longitud 1 se obtiene:

Y para cadenas w de longitud arbitraria:

Por tanto, un posible algoritmo para obtener la particin P sera el


siguiente:
Algoritmo 4.1 (Minimizacin del nmero de estados de un AFD)
Entrada: Un AFD A= (Q, E, <5, q\, F) con transiciones definidas para
todos los estados y smbolos de entrada.
Salida: Un AFD M = (Q', E, ',q{, F') que acepta el mismo lenguaje y que tiene el mnimo nmero de estados posible.
Mtodo:

1. Establzcase una particin inicial P de Q que contiene


dos clases de equivalencia: los estados de aceptacin, F, y
los
de no(EBSCOhost)
aceptacin
Q on
2/16/2016
F.
EBSCO Publishing estados
: eBook Collection
- printed
3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

4. CONSTRUCCIN DE AUTMATAS FINITOS

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

82

2. Para, cada clase G de P:


- Divdase G en subclases tales que dos estados qi y
QJ estn en la mismo subclase si y slo si para todos
los smbolos a E S, (qi,a) y 6(qj,a] pertenecen a la
misma clase de P.
- Substituyase G en la nueva particin P' por el conjunto de todas las subclases creadas dentro de l.
3. Si P ~ P', tmese Pfinai = P; si no, tmese P = P' y
ejectese el paso 2.
4. Eljase uno de los estados en cada clase de la particin -Pfinai
como estado representativo de la clase. Las transiciones
que existan entre los estados representativos de cada clase
sern las transiciones del nuevo autmata M. El estado
inicial de M, q[, ser el estado representativo de la clase
que contena a q\ en A. El conjunto F' de estados de
aceptacin de M' ser el de los estados representativos
que estuviesen originalmente en F.
5. (opcional) si M tiene un estado de absorcin, es decir, un
estado gabs que no es de aceptacin y tiene transiciones
hacia s mismo con todos los smbolos de S, elimnese este
estado.
6. Elimnense todos los estados que no son accesibles desde
el estado inicial.
Ejercicios
4.20 Minimiza el autmata M$ obtenido en el ejercicio 3.16.
4.21 Minimcese el autmata M definido por F = {qi, #3} y la tabla
de transicin

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

4.3. MINIMIZACIN DE AUTMATAS FINITOS

83

y calcula la expresin regular para el lenguaje aceptado.


4.22 Construyase un AFI que acepte cadenas que contengan la subcadena 111 7 desarrllese el AFD equivalente. Minimcese el AFD
obtenido.
4.23 Construye el AFD mnimo que reconoce la expresin regular
(a + ab}*a. Haz lo mismo para la expresin a(a + 6a)* y comprueba que se llega al mismo resultado. Como consecuencia, describe
un algoritmo que permita decidir la equivalencia de dos expresiones
regulares.
4.24 Describe un algoritmo que permita minimizar mquinas de
Moore.
4.25 Encuentra el AFD mnimo que reconozca el lenguaje representado por las siguientes expresiones regulares:
1. ((00)*(01+ 1)1 + 1)*
2. (a*6* + )*(a6 + &6)* + 0*

3. ((00 + 11)*0)*((00 + l)* + l ) + e


4. ((6 + c)*a)*((6 + c)*c + 6)

5. (0 + 1)*(10 + 01)1 + (11 + 00)


6. ((a + 6)*(a& + &)*a)*(aa + 6& + e)
4.26 Construye el AFD mnimo que reconoce las cadenas binarias
que contienen un nmero mltiplo de 3 de unos y que empiezan y
acaban por el mismo dgito.
4.27 Dadas las expresiones regulares r = (10 + 01)* y s = (00 +11)*.
Dibuja el autmata determinista mnimo que reconozca los lenguajes
1. L ( r ) \ J L ( s )
2. L ( r ) C \ L ( s )
4.28 Dibuja el AFD mnimo para el lenguaje Ax~l {y G S* :
yx e A}, siendo A = (1 + 101)* y x = 1.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

This page intentionally left blank

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

Captulo 5
Gramticas
5.1

Introduccin

En la segunda mitad de la dcada de los 50, Noam Chomsky idea


una teora matemtica para especificar lenguajes basada en el concepto de gramtica generativa. El modelo que propone introduce los
conceptos de gramaticalidad y creatividad: "todo hablante nativo posee una cierta intuicin de la estructura de su lengua que le permite,
por una parte, distinguir las frases gramaticales de las frases agramaticales y, por otra, comprender y emitir infinidad de frases inditas.
Del mismo modo, una gramtica deber rendir cuenta explcitamente
de todas las frases gramaticales de la lengua considerada" (Chomsky,
1957).
La definicin de gramtica debe dar reglas con las que generar
cadenas o frases pertenecientes al lenguaje que caracteriza, permitiendo, asimismo, el reconocimiento de una cadena arbitrariamente
dada como perteneciente o no a ste1.
Es til, para comprender el concepto de gramtica, volver por un
momento a la clase de Lengua en la escuela secundaria, en la que el
profesor nos pide que analicemos sintcticamente la frase Juan estudia
informtica en la Universidad. Como estudiantes aventajados, no
tenemos ningn problema en realizar este ejercicio (cuyo resultado
se muestra en la figura 5.1). Observamos que el rbol del anlisis
1

En materia de lenguajes de programacin, este segundo aspecto es el ms importante, un programa no es ms que una cadena de caracteres que el compilador
debe analizar y traducir a la luz de las reglas enunciadas en la gramtica, detectando las incorrecciones sintcticas que encuentre y que le impidan compilarlo.

85

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

86

5. GRAMTICAS

parte de la unidad de informacin oracin, que en el siguiente paso


es reescrita como un par de sintagmas (nominal y verbal). Cada
uno de estos sintagmas vuelve a ser reescrito como otra cadena de
elementos, y as sucesivamente hasta llegar a los constituyentes de
la frase. Las diferentes reescrituras pueden ser descritas mediante la
aplicacin sucesiva de las siguientes reglas:

Figura5.1: Arobol de ana

<oracin> > < sintagma nominal> < sintagma verbal>


<sintagma nominal> > <determinante> <ncleo>
<sintagma verbal> > <verbo> <sintagma nominal> <sintagma
preposicional
< sintagma preposicional > <preposicin> < sintagma nominal>
<determinante> > e \ la
<ncleo> > Juan informtica | universidad
<verbo> > estudia
<preposicin> > en
El smbolo | debe leerse "o". Observemos en la anterior lista de reglas
que existen dos tipos de elementos; por un lado, aparecen las categoras
sintcticas y que en nuestro contexto denominaremos como variables o no
terminales (encerradas entre los smbolos < y >); y por otro, los llamados
smbolos terminales (en negrita). Aunque la frase est compuesta slo por
terminales, la correccin sintctica de la misma est dada por las reglas de
reescritura
de las variables.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.2. DEFINICIN Y CLASIFICACIN DE LAS GRAMTICAS

87

Ejercicio
5.1 Repetir el anlisis anterior para la cadena u) = a * (a + a) cuando la
lista de reglas de reescritura es la siguiente:
1.
2.
3.
4.

E-^>E + E
E > E * E
E ) (E]
E >a

Aqu, E es una variable y {+,*,(,),a} es el conjunto de smbolos terminales. Sealemos, por otra parte, que con esta gramtica podemos generar
cadenas de longitud arbitrariamente grande, esto es, el conjunto de cadenas
generables es infinito (numerable o no numerable?).
Ahora estamos en condiciones de dar una definicin formal de gramtica.

5.2

Definicin y clasificacin de las gramticas

Definicin:

Una gramtica es una cuadrupla


G = (VAr,VT,S,P),

donde VN es un conjunto finito de smbolos variables (no terminales); VT


E, un conjunto finito de smbolos terminales; S 6 VN, el smbolo o variable
inicial; y P, un conjunto finito de reglas de derivacin.
Lgicamente se debe verificar que VN y VT sean disjuntos: VN H VT = 0.
Usaremos V para denotar al conjunto de todos los smbolos, tanto variables
como terminales: V = VN U VT- Las reglas de derivacin r 6 P indican
como sustituir variables y pueden expresarse como aplicaciones
r :V*VNV* > V,
donde V* denota al conjunto de todas las cadenas que se pueden formar
con los smbolos de V. Es decir, las reglas transforman cadenas de V*
que contienen al menos una variable en cadenas de V*. A lo largo de
este libro representaremos las variables por letras latinas maysculas, VN =
{A, B, C,...}, los terminales por letras latinas minsculas, VT = {a, 6, c,...}
y las cadenas de V* por letras griegas minsculas (a, /3,7,...).
Las cadenas generadas por la gramtica son aquellas que se pueden
obtener partiendo del smbolo inicial S mediante la aplicacin sucesiva de
reglas de P. Este conjunto de cadenas derivables desde S se denomina
lenguaje generado por la gramtica G. Simblicamente,
L(G) = {uV :S -^u},

EBSCO Publishing : eBook Collection (EBSCOhost) T


- printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

88

5. GRAMTICAS

donde el asterisco indica que la derivacin se puede realizar en un nmero


arbitrario de pasos, y se podra leer como produce en cero o ms pasos. Ms
concretamente, el smbolo > representa a la relacin reflexiva y transitiva
ms pequea que contiene a ), esto es, ) satisface, para cualesquiera
cadenas a,(3,j E V*:

Diremos que dos gramticas son equivalentes si generan el mismo lenguaje,


es decir,
Segn la complejidad de las reglas que definen una gramtica, sta puede
ser de uno de los cuatro tipos (^0,^1,^2,^3) que constituyen la llamada
jerarqua de Chomsky2:
Gramticas estructuradas por frases o de tipo 0: son las ms generales. Sus
reglas no tienen ninguna restriccin. Generan los llamados lenguajes
recursivament numerables o lenguajes sin restricciones, aunque a
pesar de este nombre no son capaces de representar a los lenguajes
naturales.
Gramticas sensibles al contexto o de tipo 1: sus reglas son de la forma
a > f3 (a,/3 6 V*, |a| < |/3|, a contiene al menos una variable), es
decir, los pasos sucesivos de una derivacin no pueden disminuir de
longitud. Se puede demostrar que este tipo de reglas son equivalentes
a las de la forma aA(3 > aj0, (7 e V+), de ah el nombre de este
tipo de gramtica (la sustitucin de A por 7 depende del contexto en
el que aparece A).
Gramticas independientes del contexto o de tipo 2: sus reglas tienen la
forma A > a, (A E VN, a V*). A diferencia del tipo anterior,
la sustitucin de A por a se realiza independientemente del lugar en
el que aparezca A. La mayor parte de los lenguajes de programacin
estn generados por gramticas de este tipo (aumentadas con algunos
elementos contextales necesarios para la semntica del lenguaje); de
ah la importancia de su estudio.
Gramticas regulares o de tipo 3: son las ms simples, sus reglas son de
uno de los siguientes tipos: A > aB, A > a, A > e, (A, B e
VJv, a e VT), y, como veremos a continuacin, generan los mismos
lenguajes que son reconocidos por un autmata finito.
2

El estudio detallado de los tipos O y 1 se sale del marco de este libro y no


sern
tratados.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.3. GRAMTICAS REGULARES

89

Los lenguajes generados por los ltimos tres tipos son llamados por el
mismo nombre que la gramtica respectiva.
Obsrvese que cada tipo de gramtica est incluido en el tipo anterior,
esto es:

5.3

Gramticas regulares

Las gramticas regulares, o de tipo 3, tienen una relacin muy estrecha


tanto con los lenguajes del mismo nombre, como con los autmatas finitos
que los reconocen; de hecho, segn veremos en esta seccin, los lenguajes
generados por las gramticas regulares son precisamente los regulares, lo
que explica, por otra parte, el abuso del calificativo regular. Recordemos
que una gramtica G = (Vjv, VT,P, S) es regular si todas las reglas r G P
son de uno de los tipos siguientes:

5.3.1

Gramtica regular asociada a un autmata

Comencemos observando el autmata finito de la figura 5.2. El lector


puede comprobar que el lenguaje reconocido por este autmata es (O +
1)*10, es decir, el conjunto de cadenas sobre el alfabeto (0,1} que acaban

Figura 5.2: Autmata que reconoce el lenguaje (O + 1)*10.


en 10. Supongamos que tomamos una cadena u = 1001110 de este lenguaje.
Veremos su recorrido a travs del autmata escribiendo en cada instante,
a continuacin de la subcadena leda, el estado en el que se encuentra el
autmata. Obtenemos la secuencia
p >lq
> lOr: eBook
> Collection
lOOp >(EBSCOhost)
1001? >
10011?
> 100111?
> 1001110
EBSCO Publishing
- printed
on 2/16/2016
3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

90

5. GRAMTICAS

que se puede interpretar como la generacin de la cadena por una gramtica.


Para obtener la gramtica especificamos las variables como los estados del
AFD, y a partir de los arcos obtenemos las reglas de reescritura:

El smbolo inicial de la gramtica representa al estado inicial del autmata.


Para completar el proceso hay que conseguir que la derivacin acabe cuando
en el autmata se alcanza un estado de aceptacin; esto se logra en nuestro
ejemplo aadiendo la produccin

o, alternativamente,
Observemos que todas las producciones que hemos necesitado son de una
de las formas que corresponden a una gramtica regular.
Resumiendo, dado un autmata M (Q, ,0, <?i, P), obtenemos una
gramtica G = (VN, Vr,P, S} tal que L(M) L(G), tomando

VN = Q;
VT = S;
S = Qpara cada transicin del autmata Sa(p) (l^ aadimos a P la regla
p>aq;

para cada estado q E F aadimos a P la regla q > e, o, alternativamente, tantas reglas de la forma p > a como transiciones del tipo
6a(p) = q con q e F tenga el AFD.

5.3.2

Autmata asociado a una gramtica regular

El proceso inverso tambin es muy sencillo de realizar, si bien, en el caso


ms general, el autmata que se obtiene es indeterminista. Consideremos
la gramtica regular G = (VN, VT, P, S); el autmata M = (Q, E, , </i, P),
tal que L(M) = L(G), se puede encontrar mediante:
Q = VN U {Z} con Z un smbolo nuevo;
- VT;
91 = 5;
FPublishing
= {Z} : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
EBSCO
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.3. GRAMTICAS REGULARES

91^

por cada regla r 6 P de la forma A > aB definimos la transicin


6a(A) = B por cada regla r E P de la forma A > a definimos la transicin
a (A) = Z;
por cada regla r G P de la forma A > e definimos la transicin
S(A) = Z
Ejemplo: Para la gramtica siguiente encontramos el autmata de la
figura 5.3.
A )> (L4 05 | e
B > IC \ OD O
C > OC | ID | e
D ^OD

Figura

Ejercicios
5.2 Construyase una gramtica regular para los lenguajes siguientes:
cadenas acabadas en 00;
cadenas con dos unos consecutivos;
cadenas con un 1 en la antepenltima posicin;
cadenas de longitud 4.
Dibuja en algn caso el rbol de derivacin de alguna cadena particular del
lenguaje.
5.3 Demustrese que el conjunto de lenguajes regulares es idntico al conjunto
de lenguajes generables por gramticas regulares.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

92

5. GRAMTICAS

5.4 Encuentra el autmata mnimo que acepta el mismo lenguaje que genera la gramtica regular

S > aS | aA e
A*bA\b
B > a bA cB \ e
C +c cB
5.5 Encuentra una gramtica que genere el mismo lenguaje al que repre-

sentan las expresiones regulares siguientes:


1. ((a|6)*(o6|6)*a)*(oa|66|e).
2. ((00|10*l|e)(01)T(l|10).
3. (00|10*l + e)*(l|00).

5.4

Gramticas independientes del contexto

(GIC)
La gran importancia de las gramticas independientes del contexto o
gramticas incontextuales reside en el hecho de que la mayor parte de los
lenguajes de programacin se representan mediante una gramtica de este
tipo. Estas gramticas suponen una ampliacin sobre las gramticas regulares. Se caracterizan porque sus reglas son de la forma

r : VN > V*,
es decir, la parte derecha de la regla puede ser cualquier cadena de smbolos
terminales y no terminales, si bien la parte izquierda est restringida a una
sola variable. Un ejemplo de GIC estara dado por

S > OB | IA
A > O | OS IAA
B >> 1 | 15 | QBB
que, como el lector puede intentar probar, representa al lenguaje formado
por las cadenas que contienen igual nmero de ceros que de unos. Recordemos que en la seccin 4.1 demostramos que este lenguaje no era regular,
con lo que por fin hemos aumentado el nmero de lenguajes que podemos
estudiar. A los lenguajes generados por GIC les llamaremos lenguajes independientes
del: eBook
contexto
o, abreviadamente,
EBSCO Publishing
Collection
(EBSCOhost) - printed LIC.
on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

93

Ejercicios
5.6 Escribe gramticas independientes del contexto para los conjuntos:
cadenas capica;
expresiones regulares sobre el alfabeto {O,1};
cadenas que no son capica;
cadenas del tipo an~lbn, con n > 0;
cadenas del tipo O n 10 2n , con n > 0;
cadenas del tipo O m l n con n par y m impar o viceversa;
cadenas del tipo abnabn+1, con n > 0;
cadenas del tipo anbm con m , n > 0 j m = n o m = 2n;
cadenas del tipo anbm con ra,n>0yn>ra.
5.7 Encuentra una gramtica que genere todas las cadenas que contienen
el doble nmero de ceros que de unos.

5.4.1

Derivacin y rbol de derivacin

A la secuencia de reglas que nos permite obtener una cadena del lenguaje
generado por la gramtica a partir de su smbolo inicial, se la conoce con
el nombre de derivacin de la cadena. Por ejemplo, para la gramtica del
ejercicio 5.1:
E > E + E E * E \ (E) a,
la secuencia

E > E* E > E * E + E > E *E + a > E * a + a ^ a * a + a


constituye una derivacin de la cadena a*a + a. La cadena de V* obtenida
en cada paso de la derivacin recibe el nombre de forma sentencial.
Un rbol de derivacin es una representacin grfica de la secuencia de
reglas aplicada (es fcil comprobar que las gramticas tipo O no admiten esta
representacin). Por ejemplo, la derivacin anterior se podra representar
mediante el rbol de la fig. 5.4. Ms formalmente, un rbol de derivacin
se define como un rbol ordenado3 que cumple lo siguiente:
3

Se dice que una rbol est ordenado si se ha definido una relacin de orden
entre los hijos de cada nodo. Se suele entonces tomar como criterio de representacin que los nodos dibujados a la izquierda preceden a los que estn ms a la
derecha.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

94

5. GRAMTICAS

Figu
cada nodo interior (con descendencia) est etiquetado con un smbolo
de VN\
el smbolo inicial S de la gramtica ocupa el nodo raz;
los nodos terminales (sin descendencia) u hojas slo contienen smbolos de VT o, tal vez, la cadena vaca e;
si un nodo contiene el smbolo A 6 VN y presenta como descendientes,
en este orden, a los nodos X\, X% . Xn, entonces existe una regla en
la gramtica G en la que la variable A es sustituida por X\, X< ... Xn.
A la hora de reconstruir la derivacin a partir del rbol, se nos presentan
varias alternativas segn el orden en el que efectuemos las sustituciones de
las diversas variables; al objeto de eliminar esta ambigedad es habitual
utilizar dos de ellas, llamadas derivacin por la izquierda y derivacin por
la derecha. La diferencia entre ambas reside en decidir qu variable es
sustituida en cada paso de la derivacin, la que est ms a la izquierda o
la que est ms a la derecha en la forma sentencial. Para el rbol anterior
estas derivaciones seran:
1. Por la izquierda: E > E*E > a*E > a*E+E > a*a+E >
a *a + a
2. Por la derecha: E > E* E > E * E + E > E *E + a >
E * a -f a > a * a + a.
Tomando uno de estos criterios como fijo, la correspondencia entre los rboles de derivacin y las derivaciones es biunvoca.

5.4.2 Ambigedad
Siguiendo con el ejemplo de esta seccin, observemos que la cadena
a *EBSCO
a +Publishing
a puede: ser
por dos rboles
derivacin
(ver
eBookgenerada
Collection (EBSCOhost)
- printed de
on 2/16/2016
3:10 PM
via fig. 5.5).
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

95

figu

Diremos que una gramtica G es ambigua si hay al menos una cadena


en L(G) que tenga dos o ms rboles de derivacin distintos (o, equivalentemente, dos o ms derivaciones por la izquierda distintas).
Se podra pensar que esta ambigedad es consecuencia de cmo se ha
elegido la gramtica, y que siempre es posible encontrar una gramtica equivalente a la dada que no sea ambigua (y en el caso anterior eso es sencillo
de conseguir); pero esta idea es incorrecta, ya que hay lenguajes intrnsecamente ambiguos, para los cuales se ha demostrado que todas las gramticas
que los generan son ambiguas. La propiedad de ambigedad es indecidible:
no hay ningn algoritmo que nos d la respuesta para cualquier gramtica en un tiempo finito. Aunque existen algoritmos que para determinar si
una cierta cadena u L(G) admite dos o ms rboles de derivacin diferentes, para demostrar que G no es ambigua por este mtodo, tendramos
que probar todas las cadenas de V^. Como este conjunto es infinito, el
procedimiento requerira un tiempo potencialmente infinito.
Ejemplo : Un ejemplo estndar de este problema en los lenguajes de
programacin es el fenmeno del "else ambiguo". Consideremos las producciones
< instr >

> if ( < expr > ) < instr >


\
if ( < expr > ) < instr > else < instr >
|
< otrainstr >

que describen la sentencia if-else del lenguaje C. Y consideremos ahora la


cadena
if (exprl) if (expr2) instrl else instr2
Esta cadena puede ser derivada por los dos caminos que se muestran en la
figura
en (a): eBook
el else
va emparejado
con elonprimer
(b), va con el
EBSCO5.6;
Publishing
Collection
(EBSCOhost) - printed
2/16/2016 if;
3:10en
PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

5. GRAMTICAS

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

96

Fig

segundo. El compilador de C debe interpretar la sentencia por el segundo


camino, pero la regla sintctica no es suficiente para indicarlo y, por tanto,
es necesaria informacin adicional.
Generalmente, en las gramticas de los lenguajes de programacin se
elimina la ambigedad atendiendo a la precedencia deseada para los operadores. Una gramtica equivalente a la del ejercicio 5.1 que no es ambigua
y conserva la mayor precedencia esperada de la multiplicacin respecto a la
suma, es:

E > E + T T
T *T*F F
F -> a | (E)

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

97

Ejercicio
5.8 Las gramticas regulares son un subconjunto de las gramticas independientes del contexto. Puede ser intrnsecamente ambiguo un lenguaje
regular? Justifiqese la respuesta.

5.4.3

Recursividad

Si nos fijamos detenidamente en la gramtica anterior, observaremos


que podemos tener derivaciones de la forma E > aE3 (con |a|, /3\ > 0),
donde el smbolo > debe leerse "produce en uno o ms pasos", con lo que
se pueden generar cadenas pertenecientes al lenguaje de longitud arbitraria
y, por tanto, podemos afirmar que el lenguaje generado por la gramtica es
infinito. A las gramticas que poseen esta propiedad se las llama recursivas.
Si a = e, se dice que la gramtica es recursiva por la izquierda; mientras
que si /3 = e se dice que la gramtica es recursiva por la derecha.
La recursividad de las gramticas de los lenguajes de programacin
est estrechamente ligada a la asociatividad de los operadores. Para entender esto, consideremos la cadena a * a * a. Notemos que existen dos
posibles modos de evaluar esta expresin: (a * a) * a y a * (a * a); en el
primer caso, decimos que * asocia a la izquierda; y en el segundo, que asedo a la derecha. Veamos los rboles de derivacin de esta cadena para dos
gramticas, una recursiva por la izquierda y la otra por la derecha (fig. 5.7):

Figur
Vaales. En (a), el operador *asocia a la izquierda en (b)Lo hace a La
Dere
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

98

5. GRAMTICAS

Si deseamos que un operador asocie a la izquierda, deberemos escribir una


gramtica recursiva por la izquierda. Si deseamos que asocie a la derecha,
deberemos escribirla recursiva por la derecha. Observemos que el rbol (a):
correspondiente a la gramtica recursiva por la izquierda, desciende hacia
la izquierda; mientras que el (b), lo hace hacia la derecha.
Por otra parte, la recursividad por la izquierda impide utilizar algunos
algoritmos de anlisis sintctico (los llamados descendentes). Se plantea
entonces el problema de encontrar una gramtica equivalente a la dada
que no presente este tipo de recursin. La eliminacin de la recursin por
la izquierda es tambin necesaria para transformar una gramtica en otra
equivalente que tenga la llamada forma normalizada de Greibach (ver ms
abajo).

Eliminacin de la recursin por la izquierda


Si tenemos una gramtica con reglas del tipo

que presenta recursin por la izquierda inmediata, las producciones que


puede generar son del tipo

Observemos que estas producciones tambin pueden ser generadas mediante


las reglas

que presentan recursin por la derecha.


Este esquema se puede generalizar fcilmente en el caso de tener reglas
de la forma

sustituyndolas por las reglas

Ejemplo: Volvamos a considerar la gramtica de expresiones aritmticas

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

99

Una gramtica equivalente que no presenta recursin por la izquierda es

Un problema aadido lo presentan las gramticas que contienen recursin por la izquierda no inmediata. Una gramtica de este tipo es

que presenta recursin por la izquierda porque son posibles derivaciones del
tipo
Para eliminar sistemticamente la posibilidad de tales derivaciones podemos utilizar el algoritmo siguiente, que siempre funciona si la gramtica
no tiene ciclos (producciones de la forma A > A) o producciones vacas (de
la forma A > e). Este tipo de producciones se pueden eliminar fcilmente
(ver ms abajo).
Algoritmo 5.1 Eliminacin de la recursin por la izquierda
Entrada: Una gramtica G = (Vyv, VT-, -P, S] sin ciclos ni producciones
vacas.
Salida: Una gramtica equivalente sin recursin por la izquierda.
Mtodo:
1. Numrense las variables de la gramtica arbitrariamente VN
{Ai, A-2 ... Ar}. (El algoritmo conseguir que todas las producciones de la nueva gramtica comiencen por terminal o por una
variable con subndice superior al de la variable de la parte izquierda).
2. Tomar i 1.
3. Considerar todas las producciones que comienzan por AI:

(dada la forma en que procede este algoritmo, siempre se cumple


que ningn (3j comienza por Aj- si k < i). Sustituir todas estas
producciones por
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

100

5. GRAMTICAS

donde B es una nueva variable. Eso asegura que todas las


producciones cuya parte izquierda es AI empiezan por terminal
o por una variable A^ tal que k > i.
4. Si i = n, devolver la gramtica resultante y parar el algoritmo.
5. Tomar i = i + l y j = 1.
6. Sustituir todas las reglas de la forma AI > Aja por las reglas
A > Pa . . . | fima donde Aj > [3i \ ... \ flm son todas las
reglas de derivacin que tienen como parte izquierda Aj. Como
ya se habr conseguido que las partes derechas de las reglas que
tienen Aj como parte izquierda comiencen por un terminal o
con Ak con k > j, este paso garantiza que todas las reglas con
parte izquierda A tambin cumplen la propiedad.
7. Si j = i 1, saltar al paso 3. Si no, tomar j = j + ]_ y saltar al
paso 6.
El algoritmo anterior, adems de eliminar la recursin por la izquierda,
conduce a una gramtica donde todas las reglas satisfacen que si AI >
Aja E -P, entonces i < j.
Ejercicios
5.9 Elimina la recursin por la izquierda en las gramticas:

5.10 Explica cmo modificaras el algoritmo que elimina la recursin por


la izquierda para que sirviese para eliminar la recursin por la derecha.
Explcalo usando para ello la ltima gramtica del ejercicio anterior.
5.11 Elimina la recursin por la izquierda en la gramtica

en la que VTT = {p, q, (,), a, =, n, f, +, *,>,<, ==}.

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

5.4.4

101

El anlisis sintctico

Como ya hemos mencionado varias veces, la mayor parte de los lenguajes


de programacin estn basados en GIC. Un compilador debe reconocer si un
determinado programa (cadena de caracteres en definitiva) se adapta a las
especificaciones del lenguaje. Para ello, resulta imprescindible que dispongamos de algoritmos que nos permitan decidir la correccin o incorreccin
del programa antes de traducirlo a instrucciones de mquina. Para decidir
si una cadena dada pertenece al lenguaje generado por una GIC particular,
debemos ser capaces de reconstruir el rbol de derivacin de la cadena. A
este proceso se le llama anlisis sintctico, y su dominio es, por otra parte,
el principal objetivo que debemos plantearnos en el estudio de las GIC. Los
mtodos de anlisis sintctico son mltiples, y su estudio en profundidad
se realiza en la asignatura de Diseo de compiladores. En este curso nos
centraremos en un algoritmo de uso general, vlido tanto para gramticas
ambiguas como no ambiguas, llamado Algoritmo de Cocke, Younger y Kasami (CYK). Introduciremos este mtodo de anlisis sintctico de manera
constructiva; para ello vamos a partir de un ejemplo en el que todas las
reglas de la gramtica tienen una forma especial (veremos ms adelante que
esta gramtica est en forma normalizada de Chomsky).
Ejemplo: Consideremos la gramtica G siguiente,

y tratemos de reconstruir el rbol o rboles de derivacin de la cadena


u = 001101.
La gramtica del ejemplo tiene dos tipos de reglas; uno produce slo
un terminal, el otro produce cadenas de dos variables. Las cadenas de
terminales de longitud mayor que 1 se generan duplicando las variables hasta
alcanzar la longitud deseada. Para reconstruir, si es posible, la derivacin de
u, deberemos partirla en dos trozos, cada uno derivado desde una variable.
Las posible formas de trocear uj son

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

102

5. GRAMTICAS

Con esto conseguimos descomponer el problema de analizar una cadena de


longitud 6 en 5 problemas de longitud menor que 6. Siguiendo con este
proceso, podemos descomponer las subcadenas de longitud 5 en subcadenas
de longitud menor que 5, y as sucesivamente, hasta conseguir que todas las
subcadenas obtenidas tengan longitud 1.
Construyamos una funcin

que, para cada subcadena de u;, devuelva el conjunto de reglas que le permitan derivarla desde cualquier variable. Observando la gramtica, obtenemos
para las subcadenas de longitud 1

La subcadena 00 slo puede ser generada partiendo de una regla que produzca alguna de las cadenas contenidas en el conjunto {AA, AE, E A, E E}.
La primera variable de estas cadenas se obtiene de la parte izquierda de
las reglas que producen el primer smbolo; el segundo, de las reglas que
producen el segundo (en este caso particular ambos smbolos coinciden).
Observando las reglas de la gramtica, la nica variable que produce alguna
de las anteriores cadenas es (7, es decir, /(OO) = {C > AA}. Procediendo
anlogamente con la subcadena 01, se obtiene /(O) = {S > EB}. Puesto que este conjunto contiene una regla cuya parte izquierda es el smbolo
inicial de la gramtica, podemos afirmar que la subcadena 01 pertenece al
lenguaje generado por G.
La subcadena 001 puede ser troceada de dos formas: 0-01 y 00-1. Esta
subcadena podr ser generada slo mediante la regla A > ES, puesto que
es la nica regla de G cuya parte derecha est formada por la concatenacin
de las variables que estn en la parte izquierda de las reglas que producen
O con las variables de la parte izquierda de las reglas que producen 01; o
bien, de las que producen 00 con las que producen 1. Con ello,

Anlogamente, la subcadena 101 se puede descomponer en 1-01 o en 10-1.


En ambos casos nos aparece una subcadena de longitud 2 que no habamos
analizado previamente, por lo que es necesario calcular /(10) y /(O). De
hecho, necesitamos encontrar el valor de la funcin / para todas las subcadenas de longitud menor o igual que 5 contenidas en LJ.
Para evitar llamadas recursivas a la funcin /, conviene almacenar los
resultados previos. Organizaremos esta informacin en una tabla como la de
la figura 5.8, en la que cada celda contendr la regla o reglas de la gramtica
que se ha de aplicar en primer lugar para generar la subcadena que comienza
en EBSCO
su nmero
de columna y tiene una longitud igual a su nmero de fila. Por
Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

103

figura.
ejemplo, la celda (1,1) debe contener las reglas A > O y E > 0; y la celda
(1,3), la regla A > ES. Esta tabla puede irse rellenando por filas, ya que
el valor de la funcin / para una subcadena de longitud n slo depende de
cmo se han generado las subcadenas de longitud nl. La celda situada en
la ltima fila representar a toda la cadena o;, por lo que si contiene una regla
cuya parte izquierda es el smbolo inicial S de la gramtica como es el caso
en nuestro ejemplo, podemos afirmar que u> E L(G); si no es as, entonces
uj $ L(G}. En la figura 5.9 se observa el esquema de dependencias de la
celda (4,2); para rellenar una celda debemos tener en cuenta las reglas cuya

Ficog analisism sintactico


Mediante

parte derecha est formada por las partes izquierdas de las celdas unidas por
unaEBSCO
flecha.
Por ejemplo, dicha celda, que corresponde a la subcadena 0110,
Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

5. GRAMTICAS

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

104

debe obtenerse mirando las partes izquierdas de las reglas contenidas en los
pares de celdas [(1, 2), (3,3)], [(2, 2), (2,4)] y [(3, 2), (1,5)]. Para construir el
rbol o rboles de derivacin de la cadena analizada, leeremos la tabla de
abajo hacia arriba. El (2) que aparece en la celda (4,3) indica que la regla
D > BB se puede obtener de dos maneras: [(1,3), (3,4)] y [(3,3), (1,6)]
(ver figura 5.10), lo que permite estudiar la ambigedad de la gramtica, ya
que podemos obtener todos los rboles de derivacin de la cadena analizada.
Pasemos ahora a enunciar formalmente el algoritmo de Cocke, Younger y
Kasami.

figuraion5.10

Sea la cadena u a\a^ . . . a/. Podemos extraer /(/ + l)/2 subcadenas


(I de longitud 1, / 1 de longitud 2, etc.), que denotaremos x, donde
el subndice indica la posicin del primer smbolo de la subcadena; y el
superndice, su longitud. Por tanto, x| = j ' y x = e. Adems x
x{ = x\x\...x\. Llamaremos P al subconjunto de reglas de P, tales
que r = A > a E Pj si r es la primera regla en una derivacin A > x\.
Obviamente, si i+j > 1 + 1, se tendr P\ 0. Estos conjuntos se construyen
recursivamente, y el problema se reduce a comprobar si alguna regla de la
forma 5 > a E P[. El algoritmo es:
Algoritmo 5.2 Algoritmo de Cocke, Younger y Kasami
Entrada: Una gramtica G = (V/v, FT,-P, 5) en forma de Chomsky, sin
producciones vacas, y una cadena de entrada x a\ a- . . . a/ de V^ .
Salida: La tabla de anlisis sintctico V(G, x) tal que cada elemento P
contiene la regla r = A > a si y slo si r es la primera regla en una
A )
x\, donde
x\ - aa
. . 2/16/2016
. a+j-i.3:10 PM via
+i on
EBSCOderivacin
Publishing : eBook
Collection
(EBSCOhost)
printed
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

105

Mtodo:
1. (j = 1) Construir los conjuntos P para i = 1, 2 . . . /. Si despus
de este paso r = A > a e P/, entonces
2. (j > 1) Si se conocen Pf, para todos los
construir
para algun K],
donde k y j k son ambos menores que j, y por tanto, P/ y
P^k han sido calculados previamente. Este paso asegura que
si A > BC E P/, entonces
A > BC > i... i+k-iC > di.. . a + j_i.
3. El paso anterior se repite para obtener todos los conjuntos Pj
(variando j desde 1 hasta I j + 1).

Ejercicio
5.12 Por medio del algoritomo de Codee, Younger y Kasami, determina si
la cadena uo = abaa pertenece al lenguaje generado por la gramtica

5.13 Dada la gramtica

1. Encuentra todos los rboles de derivacin de la cadena w = obaob.


2. Encuentra todas las subcadenas de w que tambin pertenecen a dicho
lenguaje.
3. Se puede concluir que la gramtica es ambigua? Y que el lenguaje
es intrnsecamente ambiguo?
5.14 Por medio del algoritmo de Coche, Younger y Kasami, determina si
la cadena uo abaa pertenece al lenguaje generado por la gramtica

Construye, en su caso, todos los rboles de derivacin posibles para u.


EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

106

5.4.5

5. GRAMTICAS

Simplificacin de una GIC

A diferencia del caso de los AFD y los lenguajes regulares, no disponemos de un mtodo para construir la gramtica equivalente ms sencilla
que genere un lenguaje independiente del contexto dado. A pesar de eso,
s podemos encontrar gramticas equivalentes a una dada que no contengan ciertos tipos de producciones que dificulten el trabajo con ella y que
nos permitan estandarizar las producciones de la gramtica de modo que
todas tengan una cierta "forma normalizada". Hay tres tipos de reglas no
deseadas:
1. Derivaciones vacas (de la forma A > e).
2. Derivaciones unitarias (de la forma A > B}.
3. Smbolos intiles (smbolos no utilizados en la derivacin de ninguna
cadena de L(G)).
La gramtica que resulta de estas operaciones de eliminacin la denominaremos gramtica simplificada. Este nombre puede ser equvoco, ya que en
algunos casos la versin no simplificada puede resultar ms fcil de entender
para el lector.

Eliminacin de las producciones vacas


Diremos que una regla de derivacin es vaca si es del tipo A > e.
En general, si A produce e en un nmero arbitrario de pasos (A ^> e), se
dice que la variable A es anulable. Si e e L(G) no es posible eliminar todas
las reglas de derivacin vacas, ya que es preciso conservar la posibilidad
de generar e. Salvo por esta excepcin, es posible encontrar una gramtica
equivalente a la dada que no contenga ninguna produccin vaca. El objetivo
es que en la derivacin de cualquier cadena x ^ e no se aplique ninguna regla
de produccin vaca.
Comencemos con un ejemplo. Consideremos la gramtica G

en la que tenemos dos reglas de derivacin vacas. Observemos que desde


la variable A y B podemos generar cadenas de a* y b* respectivamente. El
objetivo es encontrar una gramtica equivalente a G que no contenga las
reglas A > e y B > e. Para ello comenzamos buscando el conjunto
de variables anulables. Evidentemente A y B pertenecen a este conjunto.
Adems, ya que la regla S > ABA produce una cadena formada slo
por variables anulables, tambin se tiene S ^ e, con lo que S tambin es
anulable
(obviamente e L(g}}. Podemos construir las nuevas producciones
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

107

haciendo explcita la posibilidad de que estas variables produzcan e, es decir,


sustituiremos las reglas A > aA \ e por las reglas

y las reglas B > bB \ t por las reglas

En la regla S > ABA las variables de la parte derecha se pueden anular


conjuntamente o por separado, de modo que las posibilidades son

Puesto que 5 es anulable, es necesario mantener esta ltima regla, aunque


no sera vlido en el caso de que 5 apareciera en alguna parte derecha.
Por ello, si e e L(G], resulta ms general sustituir las reglas para S por el
conjunto de reglas siguiente

tomando S' como nuevo smbolo inicial de la gramtica.


Ahora estamos en condiciones de dar un algoritmo formal que elimina
sistemticamente las producciones vacas. Previamente enunciaremos un
algoritmo que nos permite encontrar las variables anulables de la gramtica.
Algoritmo 5.3 Bsqueda de variables anulables
Entrada: Una gramtica G = (V)v, VT, P, S).
Salida: El conjunto V de variables anulables de G.
Mtodo:
1. Tomar
2. Hacer
Vi Vi-i U {A : A > a G P para algn
mientras
3. Tomar
Algoritmo 5.4 Eliminacin de las derivaciones vacas
Entrada:
Una :gramtica
G
EBSCO Publishing
eBook Collection

(EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

108

5. GRAMTICAS

Salida: Una gramtica equivalente G' = (V^, VT, -P', 5') sin producciones
vacas.
Mtodo:

1. Tomar P' = P.
2. Encontrar V aplicando el algoritmo anterior.
3. Para cada produccin A > a G P, aadir a P' todas las
producciones que puedan ser obtenidas de ella borrando de a
una o ms de las variables anulables que contenga.
4. Eliminar de P' todas las producciones vacas, duplicadas y de
la forma A > A que contenga.
5. Si S E Vf, tomar V^ = VN U {S1} y aadir las reglas
a P'; en otro caso, tomar
Ejercicio
5.15 Elimnense las producciones vacas de la gramtica:

Eliminacin de las producciones unitarias


Una produccin es unitaria si su estructura es del tipo A > B. Es
siempre posible encontrar una gramtica equivalente a una dada que no
contenga derivaciones de este tipo. Ilustraremos el mtodo que hay que
seguir en el proceso de eliminacin de esta clase de reglas con la siguiente
gramtica de expresiones aritmticas:

en EBSCO
la que
aparecen
lasCollection
reglas de
derivacin
unitarias
Publishing
: eBook
(EBSCOhost)
- printed
on 2/16/2016

3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

109

Comencemos con la variable E. Un primer paso para eliminar la produccin unitaria de esta variable puede consistir en sustituirla por todas las
producciones que se pueden obtener a partir de las reglas de T, con lo que
las reglas para E quedaran,

Observamos que no hemos conseguido eliminar totalmente las producciones


unitarias de E, por lo que repetimos el proceso con F

Realizando el proceso anlogo con la variable T obtenemos, finalmente, una


gramtica equivalente que no presenta derivaciones unitarias

Este proceso se puede realizar sistemticamente utilizando el siguiente


algoritmo.
Algoritmo 5.5 Eliminacin de las derivaciones unitarias
Entrada: Una gramtica G = (VW, VT, -P, 5) sin derivaciones vacas.
Salida: Una gramtica equivalente G1 (V/v, Vr,P', S) sin producciones
unitarias ni vacas.
Mtodo:

1. Construir, para cada variable A E VN, el conjunto VA {B :


A -^ B} de las variables accesibles desde A por derivaciones
unitarias como sigue:
(a) Tomar Vi = {A}, i = 1.
(b) Hacer

mientras
(c) Tomar
2. Construir el conjunto de producciones P': si B > a G P y no
es una produccin unitaria, aadir la regla A Y a a P' para
toda A que tal que B^VAPublishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via

EBSCO
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

110

5. GRAMTICAS

Eliminacin de los smbolos intiles


Dada una GIC G = (V/v, Vr,P, S), diremos que un smbolo X e V es
til si se utiliza en el proceso de generacin de alguna cadena de L(G], esto
es, si existe alguna derivacin S > aX(3 > LO con a,/3 G V* y LO VfEn otro caso diremos que X es intil. Observemos que para que un smbolo
sea til deben ocurrir dos cosas: debe ser accesible desde el smbolo inicial
y desde l se debe poder generar alguna cadena de terminales. Veamos con
un ejemplo cmo se pueden eliminar los smbolos que no cumplen estas dos
condiciones. Consideremos la gramtica

y busquemos en primer lugar los smbolos que no son capaces de generar


cadenas de terminales. Para ello construiremos el conjunto VNE de smbolos que s lo hacen de manera recursiva. Sea V el conjunto de smbolos
que son capaces de generar cadenas de slo terminales en i o menos pasos. En cero pasos los smbolos que pueden generar cadenas de slo terminales son los propios terminales, es decir, VQ = VT = {a,b,c}. Para
construir Vi observemos que las nicas variables que generan en un paso
cadenas de slo terminales, o, lo que es lo mismo, que son parte izquierda de alguna regla cuya parte derecha es una cadena de VQ , son A y 5,
con lo que Vi = {a,b,c,A,B}. Los smbolos en V< sern aquellos que son
parte izquierda de alguna regla cuya parte derecha es una cadena de V*,
T/2 = {a, 6, c,A,B,S, E}. Y continuando con este proceso obtenemos finalmente que VNE = Va = {a,b, c, A,B,S, E, D}. El resto de smbolos de la
gramtica, V VNE-, no son capaces de producir cadenas de slo terminales
y, por tanto, pueden ser eliminados sin que perdamos ninguna cadena de
L(G). La gramtica quedar como

Ahora construiremos el conjunto VA de smbolos accesibles desde el smbolo inicial. De nuevo procederemos recursivamente. Sea V el conjunto de
smbolos accesibles desde S en i o menos pasos. Evidentemente, VQ = {S} y
Vi EBSCO
= {5,
o, A, B}.
Para
construir
V2 tendremos
aadir
Publishing
: eBook
Collection
(EBSCOhost)
- printed onque
2/16/2016
3:10aPMVivialos smbolos
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

111

accesibles desde A y desde B, con lo que V2 = {S, a, A,B, b}. Puesto que
ya no hay nuevos smbolos accesibles podemos concluir que VA V<. Las
variables D, E y c (de hecho este smbolo ya no apareca en ninguna regla)
no son accesibles desde S y pueden ser eliminadas. La gramtica resultante
queda finalmente

El siguiente algoritmo permite realizar este proceso sistemticamente


para una gramtica arbitraria.
Algoritmo 5.6 Eliminacin de smbolos intiles
Entrada: Una gramtica G (VN, VT, P, S}.
Salida: Una gramtica G' = (V^,V^,P',S) equivalente a G sin smbolos
intiles.
Mtodo:

1. Construir el conjunto VjyE de smbolos de V que generan cadenas de V:


(a) Tomar
(b) Hacer

mientras
(c) Tomar
2. Construir la gramtica G" eliminando de G todos los smbolos,
junto con sus reglas, que no aparezcan en VNE3. Construir el conjunto VA de smbolos de G" accesibles desde S:
(a) Tomar i = O y VQ {S}.
(b) Hacer

mientras
(c) Tomar
4. Construir la gramtica final G' sin smbolos intiles eliminando
de G" todos los smbolos, junto con sus reglas, que no estn en
VA. : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
Publishing

EBSCO
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

112

5. GRAMTICAS

Conviene recordar que el algoritmo de eliminacin de producciones unitarias puede generar, en algunos casos, smbolos intiles. Por tanto, para
garantizar que la gramtica queda simplificada al final del proceso, el orden
de aplicaciones de las transformaciones debera de ser el seguido en esta
seccin:
1. Eliminar las derivaciones vacas.
2. Eliminar las producciones unitarias.
3. Eliminar los smbolos intiles.
No obstante, una aplicacin preliminar del ltimo algoritmo puede mejorar
la eficiencia del proceso.
Ejercicio
5.16 Simplifquese la gramtica:

5.4.6

Formas normalizadas

Una vez que hemos simplificado la gramtica de acuerdo con los criterios mencionados, las GIC pueden adoptar dos formas, llamadas formas
normalizadas, que resultan tiles en aplicaciones especficas. La primera
de ellas es la forma normalizada de Chomsky, que nos va a permitir aplicar el algoritmo de anlisis sintctico de Cocke, Younger y Kasami visto
anteriormente, la otra es la llamada forma normalizada de Greibach, til
principalmente para obtener un autmata con pila asociado a la gramtica
menos indeterminista que en el caso general. En ambos casos, proporcionaremos argumentos de tipo constructivo para justificar que cualquier GIC se
puede escribir en forma normalizada. Es importante destacar que, incluso
con estas restricciones, no queda unvocamente determinada la forma de
una gramtica que genera un lenguaje dado. En otras palabras: es posible
la existencia
de :diferentes
GIC(EBSCOhost)
simplificadas
EBSCO Publishing
eBook Collection
- printedyonnormalizadas
2/16/2016 3:10 PM equivalentes.
via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

113

Forma normalizada de Chomsky


Se dice que una gramtica G = (Vyv, VT, -P, 5) est en forma normalizada
de Chomsky cuando todas las reglas de derivacin de P tienen alguna de las
formas siguientes:
1. A > BC (con A,B,C e VN}.
2. A > a (con a VT)-

3. 5 > e. En este caso, en el cual e E L(G), S no puede aparecer en


la parte derecha de ninguna regla de P.
Es sencillo transformar cualquier GIC dada en una equivalente en forma
de Chomsky, siempre que se haya simplificado previamente. La idea consiste
en que las producciones que tengan longitud mayor que 2 se descompongan
en una secuencia de reglas de longitud 2. Veamos como se ha obtenido la
gramtica en forma de Chomsky de la pgina 101 a partir de la gramtica

Para ello, observamos que las reglas A > O y -B > 1 ya tienen una de
las formas admitidas. Las reglas S > QB 1A, A > OS y B > IS
tienen longitud 2 pero aparecen terminales en el lado derecho, por lo que
sustituimos estos terminales por nuevas variables que slo producen dicho
terminal, ZQ > O y Z\ > 1. Con estos cambios la gramtica queda

cuyas reglas de longitud 1 y 2 ya tienen la forma deseada. La regla A >


ZiAA la descomponemos como el par de reglas A > Z\YAA, YAA > AA
y procediendo anlogamente con la regla que falta obtenemos finalmente la
gramtica en forma normalizada de Chomsky

El algoritmo siguiente permite realizar este proceso con cualquier gramtica simplificada.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

114

5. GRAMTICAS

Algoritmo 5.7 Conversin de una gramtica a la forma normalizada de


Chomsky
Entrada: Una gramtica G = (V/v, VT, P, S]

simplificada.

Salida: Una gramtica G' = (V^, VT, P , S) en forma normal de Chomsky.


Mtodo:
1. Incluir en P' todas las reglas de P que ya tengan una de las
formas permitidas.
2. Por cada regla de produccin de la forma A > X\X<2, donde
al menos uno de los dos smbolos de la parte derecha es un
terminal, aadir la regla A > ZiZ%, donde Z representa Xi
si Xi G VN, o es una nueva variable Zi Za si Xi a G VT3. Para cada regla de la forma A > X\ ... Xn G P con n > 2,
aadir a P' el conjunto de reglas siguiente:

donde Zk es Xk si Xk G VN, o una nueva variable Za si X^ =


a E VT, e Y, . . . , Yn-i son nuevas variables.
4. Para cada nueva variable Za introducida en los dos pasos anteriores en sustitucin de un terminal, aadir a P' la regla
Za > a.
5. Formar V^ aadiendo todas las nuevas variables creadas en los
pasos anteriores.
Ejercicios
5.17 Dada la gramtica G

encuentra una gramtica en forma normal de Chomsky para el lenguaje


L(G] - {e}
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

TI5

5.18 Escrbanse en forma de Chomsky las siguiente gramticas:


1.

Descrbase L(G).
2.

3.

5.19 Encuentra una gramtica en forma de Chomsky que genere el conjunto de cadenas capica sobre el alfabeto {a, b}.
5.20 Proporciona cotas superior e inferior para la longitud de una cadena
w G L(G) en funcin del nmero de pasos de la derivacin si G est en
forma de Chomsky.
5.21 Escribe una gramtica en la forma normalizada de Chomsky equivalente a la expresin regular (a + b)*b(a + b)*a.
5.22 A la vista del ejercicio anterior, es eficiente el algoritmo CYK para
determinar si x L(G) para el caso en que G sea regular? Razona la
respuesta.
5.23 Dada la gramtica de la seccin 5.4, comprueba si la cadena w
001011 pertenece a L(G}. Dibuja todos los rboles de derivacin de w.
Qu
se puede concluir sobre la ambigedad de la gramtica?
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

116

5. GRAMTICAS

Forma normalizada de Greibach


Ahora mostraremos que, para toda GIC, existe una forma equivalente
en la cual la parte derecha de cada regla de derivacin comienza siempre
por un terminal. Las nociones de recursin por la izquierda y su eliminacin
son muy importantes en la construccin de esta forma normalizada, llamada
de Greibach. La forma normalizada de Greibach puede ser especialmente
til para disear autmatas de pila capaces de reconocer una cadena de
la gramtica. En este caso, las derivaciones de P son de forma tal que la
cadena de terminales se va construyendo de izquierda a derecha a lo largo
de la derivacin.
Se dice que una gramtica est en forma normalizada de Greibach cuando todas sus producciones son de la forma A > aa, con a VT y a e V^
(a excepcin, si existe, de la regla S > e).
El algoritmo que permite construir la forma normalizada de Greibach de
una gramtica dada requiere que en sta se haya eliminado previamente la
recursin por la izquierda, tal y como se vio en el algoritmo de la pgina 98.
Dicho algoritmo, adems de eliminar la recursin por la izquierda, conduce
a una gramtica en la que todas las reglas satisfacen que si A > Aja e P,
entonces i < j. Esta propiedad puede ser utilizada para escribir la gramtica
en la forma normalizada de Greibach. Vemoslo primero con un ejemplo.
Consideremos la gramtica recursiva por la izquierda

Para eliminar la recursin por la izquierda renombramos las variables,


AI = A, A2 = B, y aplicamos el algoritmo 5.4.3. El resultado es

Observemos que las reglas de A2 ya tienen la forma de Greibach (aunque


no se puede garantizar que esto ocurra siempre con la variable que tiene
mayor subndice, s podemos garantizar que cuando se aplica el algoritmo
5.4.3 todas las producciones de dicha variable comenzarn por terminal).
El siguiente paso consistir en conseguir que todas las producciones de
las restantes variables, AI y A2, tambin comiencen por terminal. Para ello,
puesto que tenemos garantizado que todas las producciones de una variable
comienzan por terminal o por una variable con subndice mayor, podemos
sustituir estas ltimas por todas sus producciones, es decir, sustituiremos
las reglas
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

5.4. GRAMTICAS INDEPENDIENTES DEL CONTEXTO (GIC)

1T7

por las reglas

y las reglas
por las reglas

Con lo que observamos que todas las reglas de produccin de la gramtica


estn en forma de Greibach. Si en este paso ocurriera que alguna regla
tuviera la forma A > aabfi, con a, b E VT y &:(3 6 V^-, simplemente
tendramos que sustituir dicha regla por las reglas, A > aaB/3 y B > 6,
con B una nueva variable.
Este proceso queda recogido en el siguiente
Algoritmo 5.8 Conversin a la forma normalizada de Greibach
Entrada: Una gramtica simplificada G = (V/v, VT, P, S) sin recursin por
la izquierda.
Salida: Una gramtica G = (V^, VT, -P', S) en forma normalizada de Greibach.
Mtodo:

1. Ordenar V/v {Ai, A-,..., Ar} de manera que toda produccin


A > a G P satisfaga que el primer smbolo de a sea un
terminal o una variable Aj tal que i < j (este orden se consigue
naturalmente en el algoritmo de la pgina 98 de eliminacin de
la recursin por la izquierda).
2. Tomar i = r 1.
3. Mientras i ^ O,
(a) Sustituir todas las reglas de la forma A > Aja, donde
i < j, por A > 0ia | . . . | /3ma donde Aj > fi \... (3m
son todas las reglas que tienen como parte izquierda a Aj.
Las cadenas ft\,..., (3m comienzan todas por terminal.
(b) i = i-\.
4. En este punto, todas las reglas (excepto, si existe, S > e)
tienen partes derechas que comienzan por un terminal. Por
cada regla A > aX\ X< ... X^, sustituir todos los Xj que sean
terminales por nuevos no terminales Zj y aadir la produccin
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

118

5. GRAMTICAS

Ejercicios
5.24 Escribe en forma de Greibach la gramtica definida por las siguientes
reglas de derivacin:

5.25 Sea la gramtica G:

Escrbase una gramtica G' en forma normalizada de Greibach para L(G]


(e).

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

Captulo 6

Lenguajes independientes
del contexto

6.1

Operaciones con LIC

Algunas operaciones con lenguajes independientes del contexto producen siempre como resultado lenguajes que son tambin independientes del
contexto. Decimos entonces que los LIC son estables bajo dicha operacin.
Ejemplos de operaciones bajo las cuales los LIC son estables son:
unin, concatenacin y clausura;
sustitucin;
inversin.
Vamos a justificar estas propiedades, mostrando que se puede escribir una
GIC para los lenguajes resultantes de la operacin. En cambio, los LIC no
son estables bajo:
interseccin;
complementacin;
Unin: Supongamos que tenemos dos gramticas no contextales G\
(Vjvi,Vri,Pi,.Si) y G2 - (V)v2,V r T2,-P2,5 2). Es sencillo contruir G =
(VNjVT,P,S) tal que L(G) = L(Gi) U L(G 2 ) tomando:

119

EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via


UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.

120

6. LENGUAJES INDEPENDIENTES DEL CONTEXTO

Evidentemente, una cadena de terminales es generada por G si y slo si es


generada por G\ o por O?.
Concatenacin: La gramtica G para el lenguaje resultante de la concatenacin de L(G\) y (2), L(Gi)L(G<2), se puede obtener de forma
similar con

La nueva regla S > SiS? es la que concatena las cadenas de los dos
lenguajes.
Clausura: En este caso, para que G sea tal que L(G] = L(G\}* podemos
definir:

donde la ltima regla (una recursin por la izquierda) es la responsable de


generar cero o ms concatenaciones.
Sustitucin: El concepto de sustitucin / de terminales por lenguajes
independientes del contexto es anlogo al que se introdujo de sustitucin
por conjuntos regulares: / es un homomorfismo tal que la imagen /(a) de
cualquier terminal a 6 VT es un cierto LIC, supongamos /(a) = La, y la
imagen de una cadena de terminales es la concatenacin de los conjuntos
imagen de cada smbolo de la cadena:
(VNa,VTa,Pa,Sa) es la gramtica que genera
la que genera Lbj etc., el lenguaje f(L(G}} puede generarse mediante una
nueva gramtica G" tal que L(G') f(L(G)), construida a partir de G =
(V,T,P,S): P' se obtiene sustituyendo en P cada aparicin de un smbolo
terminal a por Sa e incorporando las reglas de derivacin de
P'. Adems
Inversin: La gramtica G" que genera el lenguaje inverso
{x G S* : XR e L(G}} puede construirse simplemente invirtiendo el orden
de escritura de los smbolos de la parte derecha de cada regla de derivacin
de EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102

You might also like