Escolar Documentos
Profissional Documentos
Cultura Documentos
a b
S
+
S
S S
a
a * S
a
_______________________________________________________________________________________________________________ - 5 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
4. Ambigidade
Definio 4
Uma Gramtica Livre de Contexto dita ser Gramtica Ambgua, se existe uma cadeia que possua duas
ou mais derivaes ou duas ou mais rvores de derivao.
Exemplo 07
L
1
composta de expresses aritmticas contendo parnteses balanceados, um operador e dois operandos,
com G
1
= ({S}, {+, *, (, ), a}, S, P
1
) tal que P
1
= {S S + S | S * S | ( S ) | a }
A cadeia a+a*a, pertencente a L
1
pode ter as derivaes:
S S + S a + S a + S * S a + a * S a + a * a
S S + S S + S * S S + S * a S + a * a a + a * a
e as rvores de derivao:
Ento a gramtica ambgua.
Definio 5
Uma Linguagem uma Linguagem Inerentemente Ambgua se qualquer Gramtica Livre de Contexto
que a define ambgua.
Uma Linguagem uma Linguagem No Ambgua se existir uma Gramtica Livre de Contexto, que a
define, no ambgua.
S
+
S
S S
a
a * S
a
S
*
S
S S
a
+ a S
a
_______________________________________________________________________________________________________________ - 6 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 08 - Linguagens no ambguas.
Seja G
1
= ({S}, {a, +}, S, P
1
), tal que P
1
= { S a | S + S}
Ento se pode gerar a cadeia a + a da forma:
S S + S S + a a + a (derivao direita)
S S + S a + S a + a (derivao esquerda)
Portanto G
1
ambgua
Seja G
2
= ({S}, {a, +}, S, P
2
), tal que P
2
= { S a | a + S}
Ento se pode gerar a cadeia a + a da forma:
S a + S a + a a + a
Portanto G
2
no ambgua
Seja G
3
= ({S}, {a, +}, S, P
3
), tal que P
3
= { S a | a + a | S + S}
Ento se pode gerar a cadeia a + a da forma:
S a + a
S S + S S + a a + a (derivao direita)
S S + S a + S a + a (derivao esquerda)
Portanto G
3
ambgua
Entretanto a Linguagem, L = L(G
1
) = L(G
2
) = L(G
3
), no ambgua, j que existe uma gramtica
(G
2
) que no ambgua.
Exemplo 09 - Linguagens inerentemente ambguas.
A linguagem L = { a
n
b
m
c
m
| n 0, m 0} { a
n
b
m
c
n
| n 0, m 0} inerentemente ambgua.
Vejamos porque:
L = L
1
L
2
L
1
gerada pela Gramtica G
1
= ({S
1
, A},{a,b,c}, S
1
, P
1
), tal que P
1
= {S
1
S
1
c | A, A aAb | }
L
2
gerada pela Gramtica G
2
= ({S
2
, B},{a,b,c}, S
2
, P
2
), tal que P
2
= {S
2
aS
2
| B, B bBc | }
L gerada pela gramtica, G = ({S
1
, A, S
2
, B},{a,b,c}, S, P), tal que P = P
1
P
2
{ S S
1
| S
2
}
A gramtica G ambgua desde que a cadeia a
n
b
n
c
n
(a nica resultante da unio das duas linguagens) tem
duas derivaes distintas (uma a partir de S
1
e outra a partir de S
2
).
_______________________________________________________________________________________________________________ - 7 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
5. Simplificao de Gramticas Livres de Contexto
A simplificao acontece para a otimizao de construes de gramticas e por conseqncia na
otimizao de algoritmos e demonstrao de teoremas. A seguir sero vistas as seguintes simplificaes:
Retirada de produes vazias da forma A
Retirada de produes da forma A B que simplesmente substituem uma varivel por outra.
Retirada de variveis ou smbolos terminais no usados
5.1. Retirada de produes vazias
Considere a Gramtica Livre de Contexto G = (V, T, S, P). O algoritmo para retirada das produes vazias
composto por trs etapas, como segue:
Etapa1: Definio do conjunto de variveis que constituem produes vazias (V
)
Etapa2: Definio do conjunto de produes sem produes vazias.
Etapa3: Incluso de gerao da palavra vazia, se necessrio.
Etapa1: Conjunto de variveis que constituem produes vazias
No final dessa etapa ser construdo um conjunto de variveis que geram , ou seja, V
.
Rotina para construo de V
= {A | A };
Repita
V
= V
{ X | X X
1
... X
n
P tal que X
1
, ...., X
n
V
}
At que o cardinal de V
no aumente
Lembre-se que cardinal de um conjunto corresponde ao tamanho deste conjunto. Assim, a rotina encerra o
comando Repita ... At ... quando o conjunto V
no se alterar.
Etapa2: Conjunto de produes sem produes vazias.
A gramtica resultante dessa etapa G
1
= (V, T, S, P
1
) onde o conjunto de produes P
1
construdo pela
rotina abaixo.
Rotina para construo de P
1
P
1
= {A | }
Repita
para toda produo A P e X V
tal que =
1
X
2
e
1
2
faa
P
1
= P
1
{ A
1
2
}
At que o cardinal de P
1
no aumente
Etapa3: Incluso de gerao da palavra vazia, se necessrio.
Se a palavra vazia pertence linguagem, ento a gramtica resultante desta etapa G
2
= (V, T, S, P
2
),
com P
2
= P
1
{ S }
_______________________________________________________________________________________________________________ - 8 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 10
Seja G = ({S, X, Y}, {a,b}, P, S) com P = {S aXa | bXb | , X a | b | Y, Y ab | }
Etapa1:
V
= {Y | Y } = { Y }
V
= {S | S } = { S, Y }
1
a
. iterao: V
= { Y } { X | X Y } = {S, Y, X}
Portanto V
= {S, X, Y}
Etapa2:
P
1
= { S aXa | bXb , X a | b | Y, Y ab }
1
a
. iterao - P
1
= { S aXa | bXb , X a | b | Y , Y ab } { S aa | bb } =
= { S aXa | bXb | aa | bb , X a | b | Y, Y ab }
2
a
. iterao - P
1
= { S aXa | bXb | aa | bb, X a | b | Y , Y ab } =
= { S aXa | bXb | aa | bb , X a | b | Y, Y ab }
Ento G
1
= (V, T, S, P
1
) onde P
1
= { S aXa | bXb | aa | bb , X a | b | Y , Y ab }
Etapa3:
P
2
= P
1
{ S }
Ento G
2
= (V, T, S, P
2
), com P
2
= { S aXa | bXb | aa | bb | , X a | b | Y , Y ab }
5.2. Retirada de produes da forma A B
Considere a Gramtica Livre de Contexto G = (V, T, S, P). O algoritmo para retirada dessas produes
composto por duas etapas, como segue:
Etapa1: Construo do fecho de cada varivel
Etapa2: Excluso das produes da forma A B.
Etapa1: construo do fecho de cada varivel
Rotina para construo dos fechos
Para toda varivel A V faa
fecho-A = {B | A B e A
+
B usando exclusivamente produes da forma X Y};
Etapa2: excluso das produes da forma A B.
A gramtica resultante dessa etapa G
1
= (V, T, P
1
, S) onde P
1
construdo como na rotina a seguir:
Rotina para gerao de P
1
P
1
= { A | V};
Para toda varivel A V e B fecho-A faa
Se B P e V
Ento P
1
= P
1
{ A };
_______________________________________________________________________________________________________________ - 9 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 11
Considere a Gramtica obtida do exerccio 10:
G = ({S,X,Y}, {a,b}, S, P), com P
= { S aXa | bXb | aa | bb | , X a | b | Y, Y ab }
Etapa1:
Para toda varivel A V, ento S, X e Y
fecho-S =
fecho-X = {Y}
fecho-Y =
Etapa2:
P
1
= { S aXa | bXb | aa | bb | , X a | b , Y ab }
1
a
.iterao - S {S,X,Y}
fecho-S = ento (FALHA)
2
a
.iterao - X {S,X,Y} e Y fecho-X = {Y}
Como Y ab, ento X ab
Ento P
1
= {S aXa | bXb | aa | bb | , Xa|b,Yab} {X ab} =
P
1
= {S aXa | bXb | aa | bb | , Xa | b | ab, Yab}
A gramtica resultante G
1
= (V, T, P
1
, S) onde P
1
= {S aXa | bXb | aa | bb | , Xa | b | ab, Yab}
5.3. Retirada de smbolos no usados
Considere a Gramtica Livre de Contexto G = (V, T, S, P). O algoritmo para retirada dos smbolos inteis
composto por duas etapas, como segue:
Etapa1: Garantia de que qualquer varivel gera terminais.
Etapa2: Garantia de que qualquer smbolo atingvel a partir do smbolo inicial.
Etapa1: garante que qualquer varivel gera terminais. Resultado: G
1
= (V
1
, T, S, P
1
)
Ao final dessa etapa construda a Gramtica Livre de Contexto G
1
= (V
1
, T, S, P
1
) com V
1
construdo
como na rotina a seguir e P
1
possuir os mesmos elementos de P excetuando-se as produes cujas
variveis no pertencem a V
1
.
Rotina para gerao de V
1
:
V
1
= ;
Repita
V
1
= V
1
{ A | A P e (T V
1
)*}
At que o cardinal de V
1
no se altere.
Lembre-se que cardinal de um conjunto corresponde ao tamanho deste conjunto. Assim, a rotina encerra o
comando Repita ... At ... quando o conjunto V
1
no se alterar.
_______________________________________________________________________________________________________________ - 10 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Etapa2: garante que qualquer smbolo atingvel a partir do smbolo inicial.
Ao final dessa etapa construda a Gramtica Livre de Contexto G
2
= (V
2
, T
2
, S, P
2
) com V
2
construdo e
T
2
construdos como a rotina abaixo e o conjunto P
2
possuir os mesmos elementos de P
1
excetuando-se
as produes cujos smbolos no pertencem a V
2
ou T
2.
Rotina para a gerao de V
2
e T
2
:
T
2
= ;
V
2
= { S };
Repita
V
2
= V
2
{ A | X A P
1
, X V
2
};
T
2
= T
2
{ a | X a P
1
, X V
2
};
At que os cardinais de V
2
e T
2
no aumentem.
Exemplo 12
A gramtica resultante do exerccio 11 foi G = (V, T, P, S) onde
P = {S aXa | bXb | aa | bb | , Xa | b | ab, Yab}
Etapa1:
A gerao de V
1
V
1
= ;
1
a
. interao - V
1
= { S, X, Y | S aa | bb, X a | b | ab, Yab } = {S, X, Y}
Ento V
1
= {S, X, Y}
Ento P
1
= P
Etapa2:
A gerao de V
2
e T
2
T
2
= ;
V
2
= { S };
1
a
. interao - V
2
= {S} { A | B A P
1
, B {S}} =
= {S} { X | S a X a } = {S, X}
T
2
= { a | B a P
1
, B {S, X}} =
= { a | X a} = {a}
2
a
. interao - V
2
= {S, X} { A | B A P
1
, B {S,X}} =
= {S, X} = {S, X}
T
2
= {a} { a | B a P
1
, B {S, X}} =
= {a} { b | X b } = {a,b}
Ento V
2
= {S, X} e T
2
= {a,b}
Ento P
2
= P = {S aXa | bXb | aa | bb | , Xa | b | ab } , j que Y V
2
Assim, G
2
= ({S, X}, {a,b}, S, P
2
), com P
2
= {S aXa | bXb | aa | bb | , Xa | b | ab }
Portanto, a partir de:
G = ({S, X, Y}, {a,b}, P, S) com P = {S aXa | bXb | , X a | b | Y, Y ab | }
Obteve-se:
G
2
= ({S, X}, {a,b}, S, P
2
), com P
2
= {S aXa | bXb | aa | bb | , Xa | b | ab }
_______________________________________________________________________________________________________________ - 11 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
5.4. Simplificaes combinadas
Deve-se seguir a seguinte seqncia:
1. Retirada de produes vazias (A )
2. Retirada de produes da forma A B
3. Retirada de smbolos no usados
Exemplo 13
Seja G = ({S,X,Y,Z,A,B}, {a,b,u,v}, S, P), onde
P = { S XYZ,
X AXA | BXB| Z | ,
Y AYB | BYA | Z | ,
Z Zu | Zv | ,
A a,
B b}
1. Fase: Retirada das produes vazias
Etapa 1.1: Definio do conjunto de variveis que constituem produes vazias (V
)
V
Ento V
= {S, X, Y, Z}
Etapa 1.2: Definio do conjunto de produes sem produes vazias.
Primeiramente, faro parte do conjunto de produes, as produes que no so vazias, ou seja,
{A | }
Ento, P
1
= {SXYZ, X AXA | BXB| Z, Y AYB | BYA | Z, Z Zu | Zv, A a, B b}
Depois, sero includas as produes que obedecem regra:
Se A P e X V
tal que =
1
X
2
e
1
2
faa P
1
= P
1
{ A
1
2
}
Assim,
P
1
= P
1
{ S YZ | XZ | XY | X | Y | Z, X AA | BB, Y AB | BA, Z u | v }
Portanto P
1
= {SXYZ | YZ | XZ | XY | X | Y | Z, X AXA | BXB| Z | AA | BB,
Y AYB | BYA | Z | AB | BA, Z Zu | Zv | u | v, A a, B b}
Etapa 1.3: Incluso de gerao da palavra vazia, se necessrio (S )
A palavra vazia pertencia linguagem, portanto precisa ser recolocada.
Portanto, G
2
= ({S,X,Y,Z,A,B}, {a,b,u,v}, S, P
2
), onde
P
2
= { SXYZ | YZ | XZ | XY | X | Y | Z | , X AXA | BXB| Z | AA | BB,
Y AYB | BYA | Z | AB | BA, Z Zu | Zv | u | v, A a, B b}
_______________________________________________________________________________________________________________ - 12 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
2. Fase: Retirada de produes da forma A B
Etapa 2.1: Construo do fecho de cada varivel
fecho-S = {X,Y,Z}
fecho-X = {Z}
fecho-Y = {Z}
fecho-Z =
fecho-A =
fecho-B =
Etapa 2.2: Excluso das produes da forma A B.
Primeiramente, forme o conjunto de produes excluindo as produes da forma A B
P
3
= { SXYZ | YZ | XZ | XY | , X AXA | BXB| AA | BB,
Y AYB | BYA | AB | BA, Z Zu | Zv | u | v, A a, B b}
Passe por todas as variveis e seus fechos e faa:
Para varivel X e Z em seu fecho, acrescentaremos: X Zu | Zv | u | v
Para varivel Y e Z em seu fecho, acrescentaremos: Y Zu | Zv | u | v,
Para varivel S e X em seu fecho, acrescentaremos: S AXA | BXB| AA | BB
Para varivel S e Y em seu fecho, acrescentaremos: S AYB | BYA | AB | BA
Para varivel S e Z em seu fecho, acrescentaremos: S Zu | Zv | u | v,
Assim, P
3
= { SXYZ |YZ|XZ|XY||AXA | BXB|AA |BB |AYB |BYA |AB |BA | Zu |Zv | u | v,
X AXA | BXB| AA | BB | Zu | Zv | u | v,
Y AYB | BYA | AB | BA | Zu | Zv | u | v,
Z Zu | Zv | u | v, A a, B b }
3. Fase: Retirada de smbolos no usados
Etapa 3.1: Garantia de que qualquer varivel gera terminais.
V
1
= ;
V
1
= { W | W P e (a,b,u,v)*} = {S, X, Y, Z, A, B}
Assim, P
3
no se altera.
Etapa 3.2: garante que qualquer smbolo atingvel a partir do smbolo inicial.
T
2
= ;
V
2
= {S};
1
a
. interao - verifica quais variveis so vistas pelas variveis que esto em V
2
= {S}.
Assim, V
2
= {S} {X, Y, Z, A, B} = {S, X,Y,Z,A,B}
Verifica quais terminais so vistos pelas variveis que esto em V
2
Assim, T
2
= { a, b, u, v} = {a, b, u, v}
Ento V
2
= { S, X, Y, Z, A, B} e T
2
= {a, b, u, v}
Portanto a gramtica simplificada :
G
3
= ({S,X,Y,Z,A,B}, {a,b,u,v}, S, P
3
), onde:
P
3
= { SXYZ | YZ | XZ | XY | | AXA | BXB| AA | BB | AYB | BYA | AB | BA | Zu | Zv | u | v,
X AXA | BXB| AA | BB | Zu | Zv | u | v,
Y AYB | BYA | AB | BA | Zu | Zv | u | v,
Z Zu | Zv | u | v, A a, B b }
_______________________________________________________________________________________________________________ - 13 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
6. Formas Normais
Existem vrios conjuntos de formas normais para linguagens livres de contexto. Algumas delas so mais
teis e so mais estudadas. Aqui sero vistas duas: a Forma Normal de Chomsky e a Forma Normal de
Greibach.
Uma forma normal, a pesar de impor restries sobre as gramticas, suficientemente abrangentes para
permitir que qualquer gramtica tenha uma gramtica equivalente na forma normal.
6.1. Forma Normal de Chomsky
Definio 6
Uma Gramtica Livre de Contexto dita estar na Forma Normal de Chomsky se todas as produes so
da forma:
A BC ou A a
Onde A, B e C so variveis e a um terminal.
Teorema 1
Qualquer Gramtica Livre de Contexto G = (V, T, S, P) com L(G)
tem uma gramtica G
fnc
= (V
fnc
, T
fnc
, S, P
fnc
)
na Forma Normal de Chomsky
Algoritmo
Transforma uma Gramtica Livre de Contexto em uma Gramtica na Forma Normal de Chomsky em trs
etapas:
Etapa1: Simplificao da gramtica
Etapa2: Transformao do lado direito das produes de comprimento maior ou igual a dois.
Etapa3: Transformao do lado direito das produes de comprimento maior ou igual a trs, em
produes com exatamente duas variveis.
_______________________________________________________________________________________________________________ - 14 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Etapa1: Simplificao da gramtica
A gramtica resultante desta etapa : G
1
= (V
1
, T
1
, S, P
1
)
Etapa2: Transformao do lado direito das produes de comprimento maior ou igual a dois.
A gramtica resultante desta etapa : G
2
= (V
2
, T
1
, S, P
2
), onde V
2
e P
2
so construdos atravs da rotina
abaixo:
V
2
= V
1
;
P
2
= P
1
;
Para toda produo A X
1
X
2
... X
n
P
2
tal que n 2 faa
se r {1, ..., n}, X
r
um smbolo terminal
ento (suponha X
r
= a)
V
2
= V
2
{C
a
};
substitui a pela varivel C
a
em A X
1
X
2
... X
n
P
2
;
P
2
= P
2
{C
a
a};
Etapa3: Transformao do lado direito das produes de comprimento maior ou igual a trs, em
produes com exatamente duas variveis.
A gramtica resultante desta etapa : G
3
= (V
3
, T
1
, S, P
3
), onde V
3
e P
3
so construdos atravs da rotina
abaixo:
V
3
= V
2
;
P
3
= P
2
;
Para toda produo A B
1
B
2
... B
n
P
3
tal que n 3 faa
P
3
= P
3
{ A B
1
B
2
... B
n
};
V
3
= V
3
{ D
1
D
2
... D
n-2
};
P
3
= P
3
{A B
1
D
1
, D
1
B
2
D
2
, , D
n-3
B
n-2
D
n-2
, D
n-2
B
n-1
B
n
};
Exemplo 14
Considere a Gramtica G = ({S}, {+, *, [, ], x}, P, S), onde P = { S S + S | S * S | [ S ] | x}
Etapa1: Simplificao j est simplificada
Etapa2:
V
2
= V = {S}
P
2
= P = { S S + S | S * S | [ S ] | x}
Para toda produo A X
1
X
2
... X
n
P
2
tal que n 2
S S + S
Faa: se para r {1, ..., 3}, X
r
um smbolo terminal
ento (suponha X
r
= +)
V
2
= {S} {C
+
} = { S, C
+
}
S S C
+
S
P
2
= { S S C
+
S | S * S | [ S ] | x} {C
+
+} =
P
2
= { S S C
+
S | S * S | [ S ] | x, C
+
+}
_______________________________________________________________________________________________________________ - 15 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
S S * S
Faa se r {1, ..., 3}, X
r
um smbolo terminal
ento (suponha X
r
= *)
V
2
= { S, C
+
} {C
*
} = { S, C
+
,C
*
}
S S C
*
S
P
2
= { S S C
+
S | S C
*
S | [ S ] | x, C
+
+} {C
*
*} =
P
2
= { S S C
+
S | S C
*
S | [ E ] | x, C
+
+, C
*
*}
S [ S ]
Faa se r {1, ..., 3}, X
r
um smbolo terminal
ento (suponha X
r
= [)
V
2
= { S, C
+
,C
*
} {C
[
} = { S, C
+
,C
*
,C
[
}
S C
[
S ]
P
2
= { S S C
+
S | S C
*
S | C
[
S ] | x, C
+
+} {C
[
[} =
P
2
= { S S C
+
S | S C
*
S | C
[
S ] | x, C
+
+, C
[
[}
ento (suponha X
r
= ])
V
2
= { S, C
+
,C
*
,C
[
} {C
]
} = { S, C
+
,C
*
,C
[
,C
]
}
S C
[
S C
]
P
2
= { S S C
+
S | S C
*
S | C
[
S C
]
| x, C
+
+, C
[
[} {C
]
]}
P
2
= { S S C
+
S | S C
*
S | C
[
S C
]
| x, C
+
+, C
[
[,C
]
]}
Ento V
2
= { S, C
+
,C
*
,C
[
,C
]
}
P
2
= { S S C
+
S | S C
*
S | C
[
S C
]
| x, C
+
+, C
[
[, C
]
]}
Etapa3:
V
3
= V
2
= { S, C
+
,C
*
,C
[
,C
]
}
P
3
= P
2
= { S S C
+
S | S C
*
S | C
[
S C
]
| x, C
+
+, C
[
[, C
]
]}
Para toda produo A B
1
B
2
... B
n
P
3
tal que n 3
S S C
+
S
P
3
= P
3
{ S S C
+
S } = { S S C
*
S | C
[
S C
]
| x, C
+
+, C
[
[, C
]
]}
V
3
= V
3
{ D
1
} = { S, C
+
,C
*
,C
[
,C
]
, D
1
}
P
3
= P
3
{S SD
1
, D
1
C
+
S} =
= { S S C
*
S | C
[
S C
]
| x | SD
1
, C
+
+, C
[
[, C
]
], D
1
C
+
S}
S S C
*
S
P
3
= P
3
{ S S C
*
S } =
= {S C
[
S C
]
| x | SD
1
, C
+
+, C
[
[, C
]
], D
1
C
+
S}
V
3
= V
3
{ D
2
} = { S, C
+
,C
*
,C
[
,C
]
, D
1
, D
2
}
P
3
= P
3
{S SD
2
, D
2
C
*
S} =
= {S C
[
SC
]
| x | SD
1
| SD
2
, C
+
+, C
[
[, C
]
], D
1
C
+
S, D
2
C
*
S}
S C
[
S C
]
P
3
= P
3
{ S C
[
S C
]
} =
= {S x | SD
1
| SD
2
, C
+
+, C
[
[, C
]
], D
1
C
+
S, D
2
C
*
S}
V
3
= V
3
{ D
3
} = { S, C
+
,C
*
,C
[
,C
]
, D
1
, D
2
, D
3
}
P
3
= P
3
{S C
[
D
3
, D
3
S C
]
} =
= {S x|SD
1
|SD
2
|C
[
D
3
, C
+
+, C
[
[, C
]
], D
1
C
+
S, D
2
C
*
S, D
3
S C
]
}
_______________________________________________________________________________________________________________ - 16 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Portanto, a Gramtica na Forma Normal de Chomsky, pode ser dada por:
G
fnc
= (V
fnc
, T
fnc
, S, P
fnc
), onde
V
fnc
= { S, C
+
,C
*
,C
[
,C
]
, D
1
, D
2
, D
3
}
T
fnc
= {+, *, [, ], x}
P
fnc
= {S x,
S SD
1,
S SD
2,
S C
[
D
3
,
C
+
+,
C
[
[,
C
]
],
D
1
C
+
S,
D
2
C
*
S,
D
3
S C
]
}
Exemplo 15
Considere a Gramtica G = ({S, A, B}, {a,b}, S, P), P = {S abAB, A bAB|, B BAa|A|}
Etapa1: Simplificao
1. Fase: Retirada das produes vazias
Etapa 1.1: Definio do conjunto de variveis que constituem produes vazias (V
)
V
= {A,B}
Etapa 1.2: Definio do conjunto de produes sem produes vazias.
Primeiramente, faro parte do conjunto de produes, as produes que no so vazias
Ento, P
1
= {S abAB, A bAB, B BAa | A}
Depois, sero includas as produes que obedecem regra:
Se A P e X V
tal que =
1
X
2
e
1
2
faa P
1
= P
1
{ A
1
2
}
Assim, P
1
= P
1
{ S abB | abA | ab , A bB | bA | b, B Ba | Aa | a}
Portanto P
1
= { S abAB| abB | abA | ab, A bAB | bB | bA | b, B BAa | A | Ba | Aa | a }
Etapa 1.3: Incluso de gerao da palavra vazia, se necessrio (S )
A palavra vazia no pertencia linguagem, portanto no precisa ser recolocada.
Portanto, G
1
= ({S, A, B}, {a,b}, S, P
1
), onde
P
1
= { S abAB| abB | abA | ab, A bAB | bB | bA | b, B BAa | A | Ba | Aa | a }
2. Fase: Retirada de produes da forma A B
Etapa 2.1: Construo do fecho de cada varivel
fecho-S =
fecho-A =
fecho-B = {A}
_______________________________________________________________________________________________________________ - 17 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Etapa 2.2: Excluso das produes da forma A B.
Primeiramente, forme o conjunto de produes excluindo as produes da forma A B
P
2
= { S abAB| abB | abA | ab, A bAB | bB | bA | b, B BAa | Ba | Aa | a }
Passe por todas as variveis e seus fechos:
Para fecho-B = {A}, acrescentaremos: B bAB | bB | bA | b
Assim, P
2
={SabAB| abB |abA |ab, AbAB | bB | bA | b, BBAa |Ba | Aa | bAB | bB | bA |a|b}
Portanto, G
2
= ({S, A, B}, {a,b}, S, P
2
), onde
P
2
={SabAB| abB |abA |ab, AbAB | bB | bA | b, BBAa |Ba | Aa | bAB | bB | bA |a|b}
3. Fase: Retirada de smbolos no usados
Etapa 3.1: Garantia de que qualquer varivel gera terminais.
V
2
= ;
V
2
= { W | W P e (a,b)*} = {S, A, B}
Assim, P
2
no se altera.
Etapa 3.2: garante que qualquer smbolo atingvel a partir do smbolo inicial.
T
3
= ;
V
3
= {S};
1
a
. interao - verifica quais variveis so vistas pelas variveis que esto em V
3
= {S}.
Assim, V
3
= {S} { A, B} = {S, A,B}
Verifica quais terminais so vistos pelas variveis que esto em V
3
Assim, T
3
= { a, b } = {a, b }
Ento V
3
= { S, A, B} e T
3
= {a, b}
Portanto a gramtica simplificada G
2
= ({S, A,B}, {a,b}, S, P
2
), onde:
P
2
= { S abAB | abB | abA | ab,
A bAB | bB | bA | b,
B BAa | Ba | Aa | bAB | bB | bA | a | b}
Etapa2: Transformao do lado direito das produes de comprimento maior ou igual a dois.
V
3
= {S,A,B};
P
3
= {S abAB | abB | abA | ab, A bAB | bB | bA | b, B BAa | Ba | Aa | bAB | bB | bA | a | b};
V
3
= V
3
{C
a
, C
b
} = {S,A,B,C
a
,C
b
};
deve-se acrescentar as produes: {C
a
a, C
b
b} e fazer as substituies.
P
3
= { S C
a
C
b
AB | C
a
C
b
B | C
a
C
b
A | C
a
C
b
, A C
b
AB | C
b
B | C
b
A | b,
B BAC
a
| BC
a
| AC
a
| C
b
AB | C
b
B | C
b
A | a | b, C
a
a, C
b
b};
Etapa3: Transformao do lado direito das produes de comprimento maior ou igual a trs, em produes
com exatamente duas variveis.
V
4
= V
3
= {S,A,B,C
a
,C
b
};
P
4
= P
3
;
Verifique as produes que possuam mais de 2 variveis e as retire de P
4
Ento: P
4
= {S C
a
C
b
, A C
b
B | C
b
A | b, B BC
a
| AC
a
| C
b
B | C
b
A | a | b, C
a
a, C
b
b};
Para cada produo retirada, { S C
a
C
b
AB | C
a
C
b
B | C
a
C
b
A, A C
b
AB, B BAC
a
| C
b
AB}
S C
a
C
b
AB
V
4
= V
4
{D
1
, D
2
} = {S,A,B,C
a
,C
b
,D
1
, D
2
}
P
4
= P
4
{S C
a
D
1
, D
1
C
b
D
2
, D
2
AB}
_______________________________________________________________________________________________________________ - 18 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
S C
a
C
b
B
V
4
= V
4
{D
3
} = {S,A,B,C
a
,C
b
,D
1
,D
2
,D
3
}
P
4
= P
4
{S C
a
D
3
, D
3
C
b
B}
S C
a
C
b
A
V
4
= V
4
{D
4
} = {S,A,B,C
a
,C
b
,D
1
,D
2
,D
3
,D
4
}
P
4
= P
4
{S C
a
D
4
, D
4
C
b
A}
A C
b
AB
V
4
= V
4
{D
5
} = {S,A,B,C
a
,C
b
,D
1
,D
2
,D
3
,D
4
,D
5
}
P
4
= P
4
{ A C
b
D
5
, D
5
AB}
B BAC
a
V
4
= V
4
{D
6
} = {S,A,B,C
a
,C
b
,D
1
,D
2
,D
3
,D
4
,D
5
,D
6
}
P
4
= P
4
{ B BD
6
, D
6
AC
a
}
B C
b
AB
V
4
= V
4
{D
7
} = {S,A,B,C
a
,C
b
,D
1
,D
2
,D
3
,D
4
,D
5
,D
6
,D
7
}
P
4
= P
4
{ B C
b
D
7
, D
7
AB}
Portanto, a Gramtica G = ({S, A, B}, {a,b}, S, P), P = {S abAB, A bAB|, B BAa|A|}, na
Forma Normal de Chomsky :
G = ({S,A,B,C
a
,C
b
,D
1
,D
2
,D
3
,D
4
,D
5
,D
6
,D
7
}, {a,b}, S, P
4
),
P
4
= { S C
a
C
b
| C
a
D
1
| C
a
D
3
| C
a
D
4
A C
b
B | C
b
A | C
b
D
5
| b
B BC
a
| AC
a
| C
b
B | C
b
A | BD
6
| C
b
D
7
| a | b
D
1
C
b
D
2
,
D
2
AB,
D
3
C
b
B,
D
4
C
b
A,
D
5
AB,
D
6
AC
a
,
D
7
AB,
C
a
a,
C
b
b }
6.2. Forma Normal de Greibach
Definio 7
Uma Gramtica Livre de Contexto dita estar na Forma Normal de Greibach se todas as produes so
da forma:
A a
Onde A uma varivel, a um terminal e uma cadeia de variveis.
_______________________________________________________________________________________________________________ - 19 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Teorema 2
Qualquer Gramtica Livre de Contexto G = (V, T, S, P) com L(G)
tem uma gramtica G
fng
= (V
fng
, T
fng
, S, P
fng
)
na Forma Normal de Greibach
Algoritmo
Transforma uma Gramtica Livre de Contexto em uma Gramtica na Forma Normal de Greibach em seis
etapas:
Etapa 1: Simplificao da gramtica
Etapa 2: Renomeao das variveis em uma ordem crescente qualquer
Etapa 3: Transformao de produes para a forma A
r
A
s
, onde r s
Etapa 4: Excluso das recurses da forma A
r
A
r
.
Etapa 5: Um terminal no incio do lado direito de cada produo.
Etapa 6: Produes na forma A a onde composta por variveis.
Etapa1: Simplificao da gramtica
A gramtica resultante desta etapa : G
1
= (V
1
, T
1
, S, P
1
)
Etapa2: Renomeao das variveis em uma ordem crescente qualquer
A gramtica resultante desta etapa : G
2
= (V
2
, T
1
, S, P
2
) onde V
2
e P
2
so construdos como segue:
Supondo que o cardinal de V
1
n,
V
2
= { A
1
, A
2
, ..., A
n
} e V
1
onde as variveis so renomeadas;
P
2
P
1
renomeando as variveis nas produes.
Etapa 3 e 4: Transformao de produes para a forma A
r
A
s
, onde r s e Excluso das
recurses da forma A
r
A
r
.
A gramtica resultante destas duas etapas realizadas em conjunto : G
3
= (V
3
, T
1
, S, P
3
) onde V
3
e P
3
so
construdos como a rotina a seguir e supondo o cardinal de V
2
= n
P
3
= P
2
;
V
3
= V
2
;
Para r variando de 1 at n faa
Para s variando de 1 at r-1 faa
Para toda produo A
r
A
s
P
3
faa
Excluir a produo A
r
A
s
de P
3
Para toda produo A
s
P
3
faa
P
3
= P
3
{ A
r
}
_______________________________________________________________________________________________________________ - 20 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Para toda produo Ar Ar P3 faa
Excluir a produo A
r
A
r
de P
3
V
3
= V
3
{B
r
}
P
3
= P
3
{B
r
} {B
r
B
r
}
Para toda produo A
r
P
3
tal que no inicia por A
r
e alguma A
r
A
r
foi excluda
faa
P
3
= P
3
{ A
r
B
r
}
Etapa 5: Um terminal no incio do lado direito de cada produo.
A gramtica resultante destas duas etapas realizadas em conjunto : G
4
= (V
3
, T
1
, S, P
4
) onde P
4
construdo a partir da rotina:
P
4
= P
3
;
Para r variando de n-1 at 1 e toda A
r
A
s
P
4
faa
Excluir a produo A
r
A
s
de
P4
;
Para toda produo A
s
P
4
faa
P
4
= P
4
{ A
r
}
Tambm necessrio garantir que as produes relativas s variveis auxiliares Br iniciam por um
terminal do lado direito, como segue:
Rotina para produes B
r
Para toda produo B
r
A
s
r
P
4
faa
Excluir a produo B
r
A
s
r
de P
4
Para toda produo A
s
a faa
P
4
= P
4
{ B
r
a
r
}
Etapa 6: Produes na forma A a onde composta por variveis.
A gramtica resultante desta etapa : G
5
= (V
4
, T
1
, S, P
5
) onde P
5
construdo a partir da rotina:
V
4
= V
3
;
P
5
= P
4
;
Para toda produo A aX
1
X
2
... X
n
P
5
faa
se para r {1, ..., n}, X
r
um smbolo terminal
ento (suponha X
r
= b)
V
4
= V
4
{C
b
};
substitui b pela varivel C
b
em A aX
1
X
2
... X
n
P
5
;
P
5
= P
5
{C
b
b};
_______________________________________________________________________________________________________________ - 21 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 16
Considere a Gramtica Livre de Contexto G = ({S,A}, {a,b}, S, P) onde P = { S AA | a, A SS | b}
Etapa1: Simplificao da gramtica
A gramtica j est simplificada.
Etapa2: Renomeao das variveis em uma ordem crescente qualquer
G
2
= (V
2
, T, S, P
2
) onde V
2
e P
2
so dados abaixo:
V
2
= { A
1
, A
2
}
P
2
= { A
1
A
2
A
2
| a, A
2
A
1
A
1
| b}
Etapa 3 e 4: Transformao de produes para a forma A
r
A
s
, onde r s e Excluso das
recurses da forma A
r
A
r
.
P
3
= P
2
= { A
1
A
2
A
2
| a, A
2
A
1
A
1
| b}
V
3
= V
2
=
{A
1
, A
2
};
Para r =1 (at 2) faa
Para s =1 (at r-1 = 0) .....
Para toda A
1
A
1
P3 ....
Para toda A
1
P
3
tal que no inicia por A
1
e alguma A
1
A
1
foi excluda ....
Para r = 2 (at 2) faa
Para s =1 (at 1)
Para A
2
A
1
P
3
, portanto A
2
A
1
A
1
( = A
1
)
Excluir A
2
A
1
A
1
de P
3
ento P
3
= { A
1
A
2
A
2
| a, A
2
b}
Para toda A
1
P
3
, ou seja, A
1
A
2
A
2
e A
1
a , faa
P
3
= P
3
{ A
2
} = P
3
{ A
2
A
2
A
2
A
1
} { A
2
aA
1
}
P
3
= { A
1
A
2
A
2
| a, A
2
b | A
2
A
2
A
1
| aA
1
}
Para toda A
2
A
2
P
3
, portanto: A
2
A
2
A
2
A
1
, com = A
2
A
1
, faa
Excluir A
2
A
2
A
2
A
1
de P
3
, portanto P
3
= { A
1
A
2
A
2
| a, A
2
b | aA
1
}
V
3
= V
3
{B
2
} = {A
1
, A
2
, B
2
}
P
3
= P
3
{B
2
A
2
A
1
} {B
2
A
2
A
1
B
2
}
P
3
= { A
1
A
2
A
2
| a, A
2
b | aA
1
, B
2
A
2
A
1
| A
2
A
1
B
2
}
Para toda A
2
P
3
, ou seja: A
2
b | aA
1
, e A
2
A
2
A
2
A
1
foi excluda faa
P
3
= P
3
{ A
2
B
2
} = P
3
{ A
2
b B
2
| aA
1
B
2
}
P
3
= { A
1
A
2
A
2
| a, A
2
b | aA
1
| b B
2
| aA
1
B
2
, B
2
A
2
A
1
| A
2
A
1
B
2
}
Assim, G
3
= ({A
1
, A
2
, B
2
}, {a,b}, S, P
3
) onde
P
3
= { A
1
A
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
, B
2
A
2
A
1
| A
2
A
1
B
2
}
Etapa 5: Um terminal no incio do lado direito de cada produo.
P
4
= { A
1
A
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
, B
2
A
2
A
1
| A
2
A
1
B
2
}
Para r = 2 (at 1) e toda A
2
A
s
P
4
.....
Para r = 1 (at 1) e toda A
1
A
s
P
4
, ento A
1
A
2
A
2
, com = A
2
, faa
Excluir A
1
A
2
A
2
de P
4
, ento
P
4
= { A
1
a, A
2
b | aA
1
| bB
2
| aA
1
B
2
, B
2
A
2
A
1
| A
2
A
1
B
2
}
Para toda A
2
P
4
, ou seja: A
2
b | aA
1
| bB
2
| aA
1
B
2
, faa
P
4
= P
4
{ A
1
} = P
4
{ A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
}
_______________________________________________________________________________________________________________ - 22 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
A
2
A
1
| A
2
A
1
B
2
}
Para toda B
r
A
s
r
P
4
, ou seja, B
2
A
2
A
1
| A
2
A
1
B
2
, faa
B
2
A
2
A
1
, ento r = 2, A
s
= A
2
e
r
= A
1
Excluir B
2
A
2
A
1
de P
4
, ento
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
A
2
A
1
B
2
}
Para toda A
2
a, ou seja, A
2
b | aA
1
| bB
2
| aA
1
B
2
, faa
P
4
= P
4
{ B
2
a
r
} = P
4
{ B
2
bA
1
| aA
1
A
1
| bB
2
A
1
| aA
1
B
2
A
1
}
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
A
2
A
1
B
2
| bA
1
| aA
1
A
1
| bB
2
A
1
| aA
1
B
2
A
1
}
B
2
A
2
A
1
B
2
, ento r = 2, A
s
= A
2
e
r
= A
1
B
2
Excluir B
2
A
2
A
1
B
2
de P
4
, ento
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
bA
1
| aA
1
A
1
| bB
2
A
1
| aA
1
B
2
A
1
}
Para toda A
2
a, ou seja, A
2
b | aA
1
| bB
2
| aA
1
B
2
, faa
P
4
= P
4
{B
2
a
r
} = P
4
{B
2
b A
1
B
2
| aA
1
A
1
B
2
| bB
2
A
1
B
2
| aA
1
B
2
A
1
B
2
}
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
bA
1
| aA
1
A
1
| bB
2
A
1
| aA
1
B
2
A
1
| bA
1
B
2
| aA
1
A
1
B
2
| bB
2
A
1
B
2
| aA
1
B
2
A
1
B
2
}
G
4
= ({A
1
, A
2
, B
2
}, {a,b}, A
1
, P
4
) com
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a, A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
bA
1
| aA
1
A
1
| bB
2
A
1
| aA
1
B
2
A
1
| bA
1
B
2
| aA
1
A
1
B
2
| bB
2
A
1
B
2
| aA
1
B
2
A
1
B
2
}
Etapa 6: Produes na forma A a onde composta por variveis.
Toda produo A a, composta por variveis. Ento no tem nada para fazer.
Portanto, a Gramtica G = ({S,A}, {a,b}, S, P) onde P = { S AA | a, A SS | b}
na Forma Normal de Greibach :
G
4
= ({A
1
, A
2
, B
2
}, {a,b}, A
1
, P
4
) com
P
4
= { A
1
bA
2
| aA
1
A
2
| bB
2
A
2
| aA
1
B
2
A
2
| a,
A
2
b | aA
1
| bB
2
| aA
1
B
2
,
B
2
bA
1
| aA
1
A
1
| bB
2
A
1
| aA
1
B
2
A
1
| bA
1
B
2
| aA
1
A
1
B
2
| bB
2
A
1
B
2
| aA
1
B
2
A
1
B
2
}
_______________________________________________________________________________________________________________ - 23 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 17
Considere a Gramtica Livre de Contexto G = ({S,A}, {a,b}, S, P), P = {S aSaA | A, A abA | b}
Etapa1: Simplificao
1. Fase: Retirada das produes vazias no h produes vazias
2. Fase: Retirada de produes da forma A B
Etapa 2.1: Construo do fecho de cada varivel
fecho-S = {A}
fecho-A =
Etapa 2.2: Excluso das produes da forma A B.
Primeiramente, forme o conjunto de produes excluindo as produes da forma A B
P
2
= { S aSaA, A abA | b }
Passe por todas as variveis e seus fechos:
Para fecho-S = {A}, acrescentaremos: S abA | b
Assim, P
2
={ S aSaA | abA | b, A abA | b }
Portanto, G
2
= ({S, A, B}, {a,b}, S, P
2
), onde P
2
={ S aSaA | abA | b, A abA | b }
3. Fase: Retirada de smbolos no usados
Etapa 3.1: Garantia de que qualquer varivel gera terminais.
V
2
= ;
V
2
= { W | W P e (a,b)*} = {S, A}
Assim, P
2
no se altera.
Etapa 3.2: garante que qualquer smbolo atingvel a partir do smbolo inicial.
T
3
= ;
V
3
= {S};
1
a
. interao - verifica quais variveis so vistas pelas variveis que esto em V
3
= {S}.
Assim, V
3
= {S} { A } = {S, A}
Verifica quais terminais so vistos pelas variveis que esto em V
3
Assim, T
3
= {a, b} = {a, b}
Ento V
3
= { S, A} e T
3
= {a, b}
Portanto a gramtica simplificada G
2
= ({S, A}, {a,b}, S, P
2
), onde:
P
2
={ S aSaA | abA | b,
A abA | b }
Etapa2: Renomeao das variveis em uma ordem crescente qualquer
G
3
= ({ A
1
, A
2
}, T, S, P
3
) , P
3
= { A
1
a A
1
a A
2
| abA
2
| b, A
2
ab A
2
| b }
Etapa 3 e 4: Transformao de produes para a forma A
r
A
s
, onde r s e Excluso das
recurses da forma A
r
A
r
.
Como no temos A
r
A
s
, r s e nem A
r
A
r
, nada muda.
G
3
= (V
3
, T, S, P
3
) , V
3
=
{A
1
, A
2
}, P
3
= { A
1
a A
1
a A
2
| abA
2
| b, A
2
ab A
2
| b }
_______________________________________________________________________________________________________________ - 24 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Etapa 5: Um terminal no incio do lado direito de cada produo.
Como j temos um terminal no incio de cada produo, nada se altera.
G
3
= (V
3
, T, S, P
3
) , V
3
=
{A
1
, A
2
}, P
3
= { A
1
a A
1
a A
2
| abA
2
| b, A
2
ab A
2
| b }
Etapa 6: Produes na forma A a onde composta por variveis.
V
4
= V
3
=
{A
1
, A
2
};
P
4
= P
3
= { A
1
a A
1
a A
2
| abA
2
| b, A
2
ab A
2
| b }
Como temos terminais em , ento se retira essas produes de P
4
, ficando P
4
={ A
1
b, A
2
b }
Faz: V
4
= V
4
{C
a
, C
b
} = {A
1
, A
2
, C
a
, C
b
};
E: P
4
= P
4
{ C
a
a, C
b
b};
Substitui os terminais nas produes excludas: { A
1
a A
1
a A
2
| abA
2
, A
2
ab A
2
}
Obtendo: {A
1
a A
1
C
a
A
2
, A
1
a C
b
A
2
,A
2
a C
b
A
2
}
Ento: V
4
= {A
1
, A
2
, Ca, Cb};
P
4
={ A
1
aA
1
C
a
A
2
| aC
b
A
2
| b, A
2
aC
b
A
2
| b , C
a
a, C
b
b}
Portanto, a Gramtica G = ({S,A}, {a,b}, S, P), P = {S aSaA | A, A abA | b},
na Forma Normal de Greibach :
G
4
= ({A
1
, A
2
, C
a
, C
b
}, {a,b}, A
1
, P
4
),
P
4
={ A
1
aA
1
C
a
A
2
| aC
b
A
2
| b,
A
2
aC
b
A
2
| b ,
C
a
a,
C
b
b}
7. Autmatos com Pilha (Pushdown Automata)
Os aceitadores ou reconhecedores das Linguagens Livres de Contexto so os Autmatos com Pilha. Os
Autmatos com Pilha podem ser determinsticos ou no determinsticos. Os mais usuais so os Autmatos
com Pilha no determinsticos.
Esses Autmatos possuem uma memria auxiliar para o processamento da entrada. Essa memria
definida como sendo uma pilha que no possui limite mximo de armazenamento, portanto, sendo infinita.
Por ser uma pilha o ltimo smbolo gravado na pilha o primeiro a ser lido.
Enquanto os Autmatos Finitos eram definidos como sendo M = ( Q, , , q
0
, F), onde
Q conjunto finito de estados
alfabeto de entrada, conjunto finito de smbolos
funo de transio ou funo programa definido por : Q x Q
q
0
estado inicial ( q
0
Q )
F conjunto de estados finais ( F Q )
O Autmato com Pilha pode ser definido como abaixo.
_______________________________________________________________________________________________________________ - 25 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Definio 8
Um Autmato com Pilha No Determinstico (APND) definido pela stupla: M = (Q, , , , q
0
, z, F)
Onde: Q conjunto finito de estados
alfabeto de entrada, conjunto finito de smbolos
conjunto finito de smbolos, chamado de alfabeto da pilha
funo de transio ou funo programa definido por : Q x ( {}) x ( {}) 2
Qx*
q
0
estado inicial ( q
0
Q )
z smbolo inicial da pilha ( z )
F conjunto de estados finais ( F Q )
Exemplo 18
Seja a funo de transio (q
1
, a, b) = {(q
2
, cd), (q
3
, )}
Ento:
Se em algum momento, o AP estiver no estado q
1
, o smbolo lido a e o smbolo desempilhado b (o
topo da pilha continha b)
Ento: vai para o estado q
2
e cd empilhado
vai para o estado q
3
e nada empilhado
Assume-se que a insero de um conjunto de smbolos (por exemplo o cd do exemplo anterior) na pilha
feita smbolo por smbolo, da direita para a esquerda.
Exemplo 19
Seja o Autmato com Pilha No Determinstico:
M = ({ q
0
, q
1
, q
2
, q
3
}, {a, b}, {0,1}, , q
0
, 0, {q
3
}), onde:
(q
0
, a, 0) = {(q
1
,10), (q
3
, )},
(q
0
, , 0) = {(q
3
,)},
(q
1
, a, 1) = {(q
1
,11)},
(q
1
, b, 1) = {(q
2
, )},
(q
2
, b, 1) = {(q
2
, )},
(q
2
, , 0) = {(q
3
, )}.
A leitura das funes de transio pode ser feita:
(q
0
, a, 0) = {(q
1
,10), (q
3
, )}
Estando no estado q
0
, lido o smbolo a e desempilhado o smbolo 0,
ento desempilha 0 e pode-se ir para q
1
e empilhar 10 ou ir para q
3
e no empilhar nada.
(q
0
, , 0) = {(q
3
,)}
Estando no estado q
0
, lido o smbolo e desempilhado o smbolo 0,
ento desempilha 0, vai para q
3
e no se empilha nada.
_______________________________________________________________________________________________________________ - 26 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
(q
1
, a, 1) = {(q
1
,11)}
Estando no estado q
1
, lido o smbolo a e desempilhado o smbolo 1,
ento desempilha 1, vai para q
1
e empilha-se 11.
(q
1
, b, 1) = {(q
2
, )},
Estando no estado q
1
, lido o smbolo b e desempilhado o smbolo 1,
ento desempilha 1, vai para q
2
e no se empilha nada.
(q
2
, b, 1) = {(q
2
, )},
Estando no estado q
2
, lido o smbolo b e desempilhado o smbolo 1,
ento desempilha 1, vai para q
2
e no se empilha nada.
(q
2
, , 0) = {(q
3
, )}.
Estando no estado q
2
, lido o smbolo e desempilhado o smbolo 0,
ento desempilha 0, vai para q
3
e no se empilha nada.
7.1. A linguagem aceita por um Autmato com Pilha
Definio 9
Um Autmato com Pilha No Determinstico (APND) definido pela stupla:
M = (Q, , , , q
0
, z, F)
A linguagem aceita por M o conjunto:
L(M) = { w *: (q
0
, w, z) *
M
(p, , u), p F, u *}
Ou seja, a linguagem aceita por um autmato o conjunto de todas as cadeias/palavras que podem colocar
o autmato em um estado final quando atingir o fim da string. O contedo da pilha irrelevante para essa
definio.
Considerando o APND do exerccio 19,
M = ({ q
0
, q
1
, q
2
, q
3
}, {a, b}, {0,1}, , q
0
, 0, {q
3
}), onde:
(q
0
, a, 0) = {(q
1
,10), (q
3
, )},
(q
0
, , 0) = {(q
3
,)},
(q
1
, a, 1) = {(q
1
,11)},
(q
1
, b, 1) = {(q
2
, )},
(q
2
, b, 1) = {(q
2
, )},
(q
2
, , 0) = {(q
3
, )}.
Sabendo-se que:
q
0
estado inicial
0 smbolo inicial da pilha, portanto Pilha = {0}
{q
3
} conjunto de estados finais
_______________________________________________________________________________________________________________ - 27 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Pode-se intuitivamente concluir:
(1) As cadeias {a, } so reconhecidas pelo autmato, j que:
Por (q
0
, a, 0) = {(q
3
, )}, chega-se ao estado final. Portanto a reconhecida pelo autmato.
Por (q
0
, , 0) = {(q
3
, )}, chega-se ao estado final. Portanto reconhecida pelo autmato.
(2) A cadeia {ab} reconhecida pelo autmato, j que:
Pilha = {0}
Por (q
0
, a, 0) = {(q
1
,10)}, Pilha = {10}
Por (q
1
, b, 1) = {(q
2
, )}, Pilha = {0}
Por (q
2
, , 0) = {(q
3
, )}, Pilha = {}
(3) A cadeia {aabb} reconhecida pelo autmato, j que:
Pilha = {0}
Por (q
0
, a, 0) = {(q
1
,10)}, Pilha = {10}
Por (q
1
, a, 1) = {(q
1
,11)}, Pilha = {110}
Por (q
1
, b, 1) = {(q
2
, )}, Pilha = {10}
Por (q
1
, b, 1) = {(q
2
, )}, Pilha = {0}
Por (q
2
, , 0) = {(q
3
, )}, Pilha = {}
Percebe-se que esse autmato reconhece a linguagem:
L = { a, , ab, aabb, ....} = {a
n
b
n
: n0} {a}
Exemplo 20
Seja a linguagem L = {w {a,b}* | w possui o mesmo nmero de a e de b}
Ento o autmato M = ({q
0
, q
f
}, {a, b}, {0, 1, z}, , q
0
, z, {q
f
}), onde:
(q
0
, , z) = {(q
f
, z)},
(q
0
, a, z) = {(q
0
, 0z) },
(q
0
, b, z) = {(q
0
, 1z)},
(q
0
, a, 0) = {(q
0
, 00)},
(q
0
, b, 0) = {(q
0
, )},
(q
0
, a, 1) = {(q
0
, )},
(q
0
, b, 1) = {(q
0
, 11)}.
Processando:
(q
0
, baab, z) (q
0
, aab, 1z)
(q
0
, ab, z)
(q
0
, b, 0z)
(q
0
, , z)
(q
f
, , z) aceita baab
(q
0
, aab, z) (q
0
, ab, 0z)
(q
0
, b, 00z)
(q
0
, , 0z) no aceita aab
_______________________________________________________________________________________________________________ - 28 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 21
Seja a linguagem L = {ww
R
| w {a,b}
+
}
Ento o autmato M = ({ q
0
, q
1
, q
f
}, {a, b}, {a, b, z}, , q
0
, z, {q
f
}), onde:
(q
0
, a, a) = {(q
0
, aa)},
(q
0
, b, a) = {(q
0
, ba)},
(q
0
, a, b) = {(q
0
, ab)},
(q
0
, b, b) = {(q
0
, bb)},
(q
0
, a, z) = {(q
0
, az)},
(q
0
, b, z) = {(q
0
, bz)},
(q
0
, , a) = {(q
1
, a)},
(q
0
, , b) = {(q
1
, b)}.
(q
1
, a, a) = {(q
1
, )},
(q
1
, b, b) = {(q
1
, )},
(q
1
, , z) = {(q
2
, z)}.
Processando:
(q
0
, abba, z) (q
0
, bba, az)
(q
0
, ba, baz)
(q
0
, a, bbaz)
(q
0
, , abbaz)
(q
1
, , abbaz) no aceita
(q
0
, abba, z) (q
0
, bba, az)
(q
0
, ba, baz)
(q
1
, ba, baz)
(q
1
, a, az)
(q
1
, , z)
(q
2
, , z) aceita
7.2. Autmatos com Pilha, Gramticas Livres de Contexto e Linguagens Livres de
Contexto
Teorema 03
Se L uma Linguagem Livre de Contexto, ento existe um Autmato com Pilha No Determinstico tal
que L = L(M).
_______________________________________________________________________________________________________________ - 29 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Se L uma Linguagem Livre de Contexto, ento existe uma Gramtica Livre de Contexto G, tal que L =
L(G). Se a partir de G for possvel determinar um Autmato com Pilha No Determinstico M, tal que
L(G) = L(M), ento teremos L = L(G) = L(M).
Seja G uma Gramtica Livre de Contexto na forma Normal de Greibach, tal que G = (V, T, S, P) com
L(G) . Ento para construir um Autmato com Pilha No Determinstico M a partir de G, faz-se:
M = ({ q
0
, q
1
, q
f
}, T, V {z}, , q
0
, z, {q
f
}), onde:
(q
0
, , z) = {(q
1
, Sz)},
(q
1
, a, A) = {(q
1
, ) para A a P},
(q
1
, , z) = {(q
f
, z)},
Se L, ento basta construir um autmato como feito anteriormente e incluir a transio:
(q
0
, , z) = {(q
f
, z)}
Exemplo 22
Considere a Gramtica Livre de Contexto na Forma Normal de Greibach:
G = ({S,B}, {a,b}, S, P) com P = { S aB | aSB, B b}
Ento M = ({q
0
, q
1
, q
f
}, {a, b}, {S, B, z}, , q
0
, z, {q
f
}), onde:
(q
0
, , z) = {(q
1
, Sz)},
(q
1
, a, S) = {(q
1
, B)},
(q
1
, a, S) = {(q
1
, SB)},
(q
1
, b, B) = {(q
1
, )},
(q
1
, , z) = {(q
f
, z)}.
L(G) = {ab, aabb, aaabbb, ...} de forma intuitiva
(q
0
, ab, z) (q
1
, ab, Sz)
(q
1
, b, Bz)
(q
1
, , z)
(q
f
, , z) aceita
(q
0
, aabb, z) (q
1
, aabb, Sz)
(q
1
, abb, SBz)
(q
1
, bb, BBz)
(q
1
, b, Bz)
(q
1
, , z)
(q
f
, , z) aceita
(q
0
, aaabbb, z) (q
1
, aaabbb, Sz)
(q
1
, aabbb, SBz)
(q
1
, abbb, SBBz)
(q
1
, bbb, BBBz)
_______________________________________________________________________________________________________________ - 30 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
(q
1
, bb, BBz)
(q
1
, b, Bz)
(q
1
, , z)
(q
f
, , z) aceita
Exemplo 23
Considere a Gramtica Livre de Contexto na Forma Normal de Greibach:
G = ({S,A,B,C}, {a,b,c}, S, P) com P = { S aA, AaABC| bB| a, B b, C c}
Ento M = ({q
0
, q
1
, q
f
}, {a, b, c}, {S, A, B, C, z}, , q
0
, z, {q
f
}), onde:
(q
0
, , z) = {(q
1
, Sz)},
(q
1
, a, S) = {(q
1
, A)},
(q
1
, a, A) = {(q
1
, ABC)},
(q
1
, b, A) = {(q
1
, B)},
(q
1
, a, A) = {(q
1
, },
(q
1
, b, B) = {(q
1
, )},
(q
1
, c, C) = {(q
1
, )},
(q
1
, , z) = {(q
f
, z)}.
A cadeia aaabc pertence a L(G) = L(M) ?
S aA aaABC aaaBC aaabC aaabc
(q
0
, aaabc, z) (q
1
, aaabc, Sz)
(q
1
, aabc, Az)
(q
1
, abc, ABCz)
(q
1
, bc, BCz)
(q
1
, c, Cz)
(q
1
, , z)
(q
f
, , z)
Teorema 04
Se L aceita por um Autmato com Pilha No Determinstico ento L uma Linguagem Livre de
Contexto.
Se for possvel a partir de um Autmato com Pilha No Determinstico M, tal que L = L(M), encontrar
uma Gramtica Livre de Contexto G tal que L(G) = L(M) = L, ento L uma Linguagem Livre de
Contexto.
Seja M = (Q, , , , q
0
, z, F) com as seguintes restries:
F = {q
f
}, ou seja, possui um nico estado final
Todas as Funes de Transio so da forma:
(q
i
, a, A) = {c
1
, c
2
, ..... , c
n
}, onde c
i
= (q
j
, ) ou c
i
= (q
j
, BC)
ou seja, cada movimento incrementa ou decrementa a pilha de um smbolo.
_______________________________________________________________________________________________________________ - 31 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Suponha que uma Gramtica que tenha as variveis da forma (q
i
Aq
j
) * v se no Autmato com Pilha
No Determinstico apaga A da pilha enquanto faz a leitura de v e passa do estado q
i
para q
j
. Apagar A
da pilha significa que A e todos seus efeitos sero removidos da pilha.
Suponha que em tal Gramtica se possa escolher (q
0
zq
f
) como varivel inicial, ento (q
0
zq
f
) * w, ou
seja, o Autmato com Pilha No Determinstico consegue aceitar w partindo de q
0
e indo at qf. Assim a
Linguagem gerada pela Gramtica ser a mesma gerada pelo Autmato com Pilha No Determinstico.
Para criar a Gramtica, segundo essas condies, faz-se:
- a partir das produes da forma: (q
i
, a, A) = (q
j
, ), cria-se as regras de produo na forma:
(q
i
Aq
j
) a
- a partir das produes da forma: (q
i
, a, A) = (q
j
, BC), cria-se as regras de produo na forma:
(q
i
Aq
k
) a(q
j
Bq
l
)(q
l
Cq
k
)
onde q
k
e q
l
so todas os possveis smbolos do conjunto Q do Autmato com Pilha No Determinstico
- escolhe-se o (q
0
zq
f
) como varivel inicial da Gramtica, onde q
0
o smbolo inicial e q
f
, o smbolo final
do Autmato com Pilha No Determinstico.
Exemplo 24
Considere o Autmato com Pilha No Determinstico M = ({q
0
,q
1
,q
2
}, {a,b}, {A,z}, , q
0
, z, {q
2
}) com
(q
0
,a,z) = {(q
0
,Az)}
(q
0
,a,A)={(q
0
,A)}
(q
0
,b,A)={(q
1
,)}
(q
1
,,z)={(q
2
,)}
Vejamos as restries:
F = {q
2
}, ou seja, possui um nico estado final - OK
(q
i
, a, A)={c
1
,c
2
,..,c
n
}, onde c
i
=(q
j
, ) ou c
i
=(q
j
,BC) NO est na forma: (q
0
,a,A)={(q
0
,A)}
Ento se cria a partir de (q
0
,a,A)={(q
0
,A)}, faz-se:
(q
3
,,z)={(q
0
,Az)}
(q
0
,a,A)={(q
3
,)}
Assim tem-se: (q
0
,a,z) = {(q
0
,Az)}
(q
3
,,z)={(q
0
,Az)}
(q
0
,a,A)={(q
3
,)}
(q
0
,b,A)={(q
1
,)}
(q
1
,,z)={(q
2
,)}
Agora temos de encontrar as regras de produo a partir das funes de transio:
- as ltimas trs funes de transio so convertidas diretamente j que so da forma c
i
= (q
j
, ):
(q
0
,a,A)={(q
3
,)}, ento (q
0
Aq
3
) a
(q
0
,b,A)={(q
1
,)}, ento (q
0
Aq
1
) b
(q
1
,,z)={(q
2
,)}, ento (q
1
zq
2
)
_______________________________________________________________________________________________________________ - 32 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
- as duas primeiras, que so da forma c
i
= (q
j
, BC), geram:
(q
0
,a,z) = {(q
0
,Az)}, ento (q
0
zq
0
) a(q
0
Aq
0
)(q
0
zq
0
)| a(q
0
Aq
1
)(q
1
zq
0
)| a(q
0
Aq
2
)(q
2
zq
0
)| a(q
0
Aq
3
)(q
3
zq
0
)
(q
0
zq
1
) a(q
0
Aq
0
)(q
0
zq
1
)| a(q
0
Aq
1
)(q
1
zq
1
)| a(q
0
Aq
2
)(q
2
zq
1
)| a(q
0
Aq
3
)(q
3
zq
1
)
(q
0
zq
2
) a(q
0
Aq
0
)(q
0
zq
2
)| a(q
0
Aq
1
)(q
1
zq
2
)| a(q
0
Aq
2
)(q
2
zq
2
)| a(q
0
Aq
3
)(q
3
zq
2
)
(q
0
zq
3
) a(q
0
Aq
0
)(q
0
zq
3
)| a(q
0
Aq
1
)(q
1
zq
3
)| a(q
0
Aq
2
)(q
2
zq
3
)| a(q
0
Aq
3
)(q
3
zq
3
)
(q
3
,,z)={(q
0
,Az)}, ento (q
3
zq
0
) (q
0
Aq
0
)(q
0
zq
0
)| (q
0
Aq
1
)(q
1
zq
0
)| (q
0
Aq
2
)(q
2
zq
0
)| (q
0
Aq
3
)(q
3
zq
0
)
(q
3
zq
1
) (q
0
Aq
0
)(q
0
zq
1
)| (q
0
Aq
1
)(q
1
zq
1
)| (q
0
Aq
2
)(q
2
zq
1
)| (q
0
Aq
3
)(q
3
zq
1
)
(q
3
zq
2
) (q
0
Aq
0
)(q
0
zq
2
)| (q
0
Aq
1
)(q
1
zq
2
)| (q
0
Aq
2
)(q
2
zq
2
)| (q
0
Aq
3
)(q
3
zq
2
)
(q
3
zq
3
) (q
0
Aq
0
)(q
0
zq
3
)| (q
0
Aq
1
)(q
1
zq
3
)| (q
0
Aq
2
)(q
2
zq
3
)| (q
0
Aq
3
)(q
3
zq
3
)
- varivel inicial (q
0
zq
f
) = (q
0
zq
2
)
Ento a Gramtica Livre de Contexto G = (V, {a,b}, (q
0
zq
2
), P) onde P so as produes acima e V o
conjunto formado por todas as variveis geradas: {(q
0
Aq
3
), (q
0
Aq
1
), (q
1
zq
2
), (q
0
zq
0
), (q
0
zq
1
), (q
0
zq
2
),
(q
0
zq
3
), (q
0
Aq
0
), (q
0
zq
0
), ...}
Verifiquemos se a cadeia aab aceita pelo Autmato M e pela Gramtica G:
(q
0
, aab, z) (q
0
, ab, Az)
(q
3
, b, z)
(q
0
, b, Az)
(q
1
, , z)
(q
2
, , ) ACEITA
(q
0
zq
2
) a(q
0
Aq
3
)(q
3
zq
2
)
aa(q
3
zq
2
)
aa(q
0
Aq
1
)(q
1
zq
2
)
aab(q
1
zq
2
)
aab ACEITA
7.3. Autmato com Pilha Determinstico
Definio 10
Um Autmato com Pilha Determinstico, M = (Q, , , , q
0
, z, F) um Autmato com Pilha No
Determinstico sujeito as seguintes restries, para todo q Q, a {} e b :
(1) (q,a,b) contm ao menos um elemento
(2) se (q,,b) no vazio, ento (q,c,b) deve ser vazio para todo c
_______________________________________________________________________________________________________________ - 33 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Exemplo 25
Seja L = { ww
R
| w {a,b}+} e M = ({q
0
,q
1
,q
2
}, {a,b}, {a,b,z},, q
0
, z, {q
2
}) com as funes de transio:
(q
0
,a,a) = {(q
0
,aa)}
(q
0
,b,a) = {(q
0
,ba)}
(q
0
,a,b) = {(q
0
,ab)}
(q
0
,b,b) = {(q
0
,bb)}
(q
0
,a,z) = {(q
0
,az)}
(q
0
,b,z) = {(q
0
,bz)}
(q
0
,,a) = {(q
1
,a)}
(q
0
,,b) = {(q
1
,b)}
(q
1
,a,a) = {(q
1
,)}
(q
1
,b,b) = {(q
1
,)}
(q
1
,,z) = {(q
2
,z)}
M no determinstico, j que (q
0
,,a) = {(q
1
,a)} e (q
0
,a,a) = {(q
0
,aa)} vazio ....
Exemplo 26
Seja L = {a
n
b
n
| n 0} com M = ({q
0
,q
1
,q
2
}, {a,b}, {0,1},, q
0
, 0, {q
0
}) com as funes de transio:
(q
0
,a,0) = {(q
1
,10)}
(q
1
,a,1) = {(q
1
,11)}
(q
1
,b,1) = {(q
2
, )}
(q
2
,b,1) = {(q
2
, )}
(q
2
,,0) = {(q
0
, )}
M determinstico, j que (q
2
,,0) = {(q
0
, )} e (q
2
,a,0) = (q
2
,b,0) = {}
Definio 11
L dita ser uma Linguagem Livre de Contexto Determinstica se e somente se existe um Autmato com
Pilha Determinstico M tal que L = L(M).
Como no exemplo 26, M determinstico ento L = {a
n
b
n
| n 0} uma Linguagem Livre de Contexto
Determinstica.
_______________________________________________________________________________________________________________ - 34 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
8. Propriedades das Linguagens Livres de Contexto
8.1. Lema do Bombeamento
Lema:
Se L uma Linguagem Livre de Contexto, ento existe uma constante m 0 tal que para qualquer
palavra w L com | w | m, w pode ser decomposta como w = uvxyz com | vxy | m, | vy | 1 tal que
uv
i
xy
i
z palavra de L, i 0.
Exemplo 27:
Seja a Linguagem L = {a
n
b
n
c
n
| n 0}.
Aplicando o Lema do Bombeamento, w = uvxyz = a
r
b
r
c
r
com | vxy | r, | vy | 1 e para i 0,
uv
i
xy
i
z tem de ser uma palavra de L.
Supondo que vy possui os smbolos a e c, x deve conter smbolos b. S que uv
i
xy
i
z no palavra de L, j
que tem desbalanceamento no nmero de a, b e c.
8.2. Operaes sobre as Linguagens Livres de Contexto
Teorema 05
A Classe das Linguagens Livres de Contexto fechada para as operaes de Unio e Concatenao.
Prova - Unio
Sejam L
1
e L
2
duas Linguagens Livres de Contexto geradas, respectivamente, pelas Gramticas Livres de
Contexto G
1
= (V
1
, T
1
, S
1
, P
1
) e G
2
= (V
2
, T
2
, S
2
, P
2
). Considere L
3
= L
1
L
2
, ento G
3
= (V
3
, T
3
, S
3
, P
3
)
(S
3
V
1
V
2
) tal que
V
3
= V
1
V
2
{S
3
},
T
3
= T
1
T
2
e
P
3
= P
1
P
2
{S
3
S
1
|S
2
}
Suponha w L
1
, ento w L
3
, j que S
3
S
1
* w.
Suponha v L
2
, ento v
L3
, j que S
3
S
2
* v.
Portanto L
3
= L(G
3
) uma Linguagem Livre de Contexto.
Pode-se provar tambm usando Autmatos com Pilha No Determinsticos.
Sejam L
1
e L
2
duas Linguagens Livres de Contexto aceitas, respectivamente, pelos Autmatos com Pilha
No Determinsticos M
1
= (Q
1
,
1
,
1
,
1
, q
01
, z
1
, F
1
) e M
2
= (Q
2
,
2
,
2
,
2
, q
02
, z
2
, F
2
). Seja M
3
= (Q
3
,
3
,
3
,
3
, q
03
, z
3
, F
3
) com q
03
Q
1
Q
2
, z
3
z
1
z
2
, tal que
Q
3
= Q
1
Q
2
{q
03
}
3
=
1
2
,
3
=
1
2
{z
3
}
F
3
= F
1
F
2
Dessa forma, M3 reconhece L
1
L
2
_______________________________________________________________________________________________________________ - 35 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Prova Concatenao
Retomando a prova para Unio acima usando Gramtica Livre de Contexto, pode-se definir G
4
= (V
4
, T
4
,
S
4
, P
4
) (S
4
V
1
V
2
) tal que
V
4
= V
1
V
2
{S
4
},
T
4
= T
1
T
2
e
P
4
= P
1
P
2
{S
4
S
1
S
2
}
Ento L(G
4
) = L(G
1
)L(G
2
) que possui como prefixo uma cadeia de L
1
e como sufixo uma cadeia de L
2
.
Se construir G
5
= (V
5
, T
5
, S
5
, P
5
) (S
5
V
1
) tal que
V
5
= V
1
{S
5
},
T
5
= T
1
P
5
= P
1
{S
5
S
1
S
5
|}
Ento L(G
5
) = L(G
1
)*
Teorema 06
A Classe das Linguagens Livres de Contexto no fechada para as operaes de Interseco e
Complemento.
Prova Interseco.
Faamos a prova com um contra-exemplo.
Considere as Linguagens Livres de Contexto L
1
= {a
n
b
n
c
m
| n 0, m 0} e L
2
= {a
n
b
m
c
m
| n 0, m 0}.
Seja L = L
1
L
2
= {a
n
b
n
c
n
| n 0} no uma Linguagem Livre de Contexto.
Prova Complemento
Sabe-se que
2 1 2 1
L L L L = . Como para a interseco a operao no fechada, ento tambm no o
para o complemento.
Teorema 07
Seja L
1
uma Linguagem Livre de Contexto e L
2
uma Linguagem Regular. Ento L
1
L
2
uma
Linguagem Livre de Contexto.
Prova
Seja M
1
= (Q, , ,
1
, q
0
, z, F
1
) um Autmato com Pilha No Determinstico que aceita L
1
e M
2
= (P, ,
2
, p
0
, F
2
) um Autmato Finito Determinstico que aceita L
2
.
Seja M
3
= (Q
3
, , ,
3
, q
03
, z, F
3
) um Autmato com Pilha No Determinstico que aceita L = L
1
L
2
Onde Q3 = Q x P,
q03 = (q01,p0),
F3 = F1 x F2,
3
definido tal que ((q
k
,p
l
),x)
3
((q
i
,p
j
),a,b), se e somente se (q
k
,x)
1
(q
i
,a,b) e
2
(p
j
,a) = p
l
.
se a = , ento p
j
= p
l
.
_______________________________________________________________________________________________________________ - 36 -
Teoria da Computao e Linguagens Formais - Simone Domingues Prado Apostila 03
Assim uma cadeia aceita por M
3
se e somente se ela aceita por M
1
e por M
2
ou seja, se ela est em
L(M
1
) L(M
2
) = L
1
L
2
.
Exemplo 28
A linguagem L = {a
n
b
n
| n 0, n 100} uma Linguagem Livre de Contexto.
Seja L
1
= {a
n
b
n
| n 0} e L
2
= {a
100
b
100
}, onde L
1
uma Linguagem Livre de Contexto e L
2
uma
Linguagem Regular,
2
L tambm Regular. Ento L1
2
L = L Livre de Contexto.