Escolar Documentos
Profissional Documentos
Cultura Documentos
Cap 06 PDF
Cap 06 PDF
nguagensFor
mai
se
Aut
mat
os
Paul
oBl
aut
hMenez
es
Aplicaes tpicas
centradas em linguagens artificiais, em especial, nas linguagens de
programao
analisadores sintticos
tradutores de linguagens
processadores de texto em geral
Hierarquia de Chomsky
classe das Linguagens Livres do Contexto
contm propriamente a Classe das Linguagens Regulares
Abordagens
Gramtica Livre do Contexto (axiomtico ou gerador)
restries na forma das regras de produo
mais livre do que na gramtica regular
Autmato com Pilha (operacional ou reconhecedor)
anlogo ao autmato finito no determinstico
adicionalmente: memria auxiliar tipo pilha
pode ser lida ou gravada
Relativamente s GLC
rvore de derivao
representa a derivao de uma palavra na forma de rvore
parte do smbolo inicial como a raiz
termina em smbolos terminais como folhas
Gramtica Ambgua
pelo menos uma palavra com duas ou mais rvores de
derivao
Simplificao de Gramtica (produes)
sem reduzir o poder de gerao
Forma Normal: restries rgidas na forma das produes sem
reduzir o poder de gerao da gramtica
10
11
12
Linguagens Regulares
13
"Livre do contexto" ?
mais geral classe de linguagens cuja produo da forma A
em uma derivao, a varivel A deriva
sem depender ("livre") de qualquer anlise dos smbolos que
antecedem ou sucedem A (o "contexto") na palavra que est
sendo derivada
14
15
16
17
18
19
20
21
22
raiz
vrtice
interior
...
Exp: rvore de Derivao: aabb e [xx]x
folhas
23
24
mais esquerda
mais direita
25
mais esquerda
26
mais direita
27
28
Gramtica ambgua
uma palavra associada a duas ou mais rvores de derivao
29
30
31
32
33
34
35
36
Simplificaes so importantes
construo e otimizao de algoritmos
demonstrao de teoremas
37
Simplificaes
Smbolos inteis
excluso de variveis ou terminais no usados
Produes vazias, da forma A
se pertence linguagem: includa produo vazia especfica
Produes que substituem variveis, da forma A B
substituem uma varivel por outra
no adicionam informao de gerao de palavras
Provas omitidas
algoritmos de simplificao atingem os objetivos propostos
38
39
6.4.1
Smbolos Inteis
Smbolos inteis
smbolos no usados na gerao de palavras de terminais
Simplificao exclui
produes que fazem referncia a esses smbolos
os prprios smbolos inteis
no necessria qualquer modificao adicional
40
Algoritmo
Etapa 1: qualquer varivel gera terminais
restringe o conjunto de variveis
considera todas as variveis que geram terminais diretamente
(exemplo: A a)
adiciona, sucessivamente, variveis que geram terminais
indiretamente (exemplo: B Ab)
Etapa 2: qualquer smbolo atingvel a partir do smbolo inicial
analisa as produes da gramtica a partir do smbolo inicial
considera exclusivamente o smbolo inicial
sucessivamente, as produes da gramtica so aplicadas:
41
GLC
42
43
44
{ A, C }
{ A, C, S }
{ A, C, S }
45
{S}
{ S, A }
{a}
{ S, A }
{a}
46
47
6.4.2
Produes Vazias
Algoritmo
Etapa 1: variveis que constituem produes vazias
A
variveis que geram diretamente
B A: sucessivamente, variveis que indiretamente geram
Etapa 2: excluso de produes vazias
considera apenas as produes no vazias
cada produo cujo lado direito possui uma varivel que gera ,
determina uma produo adicional, sem essa varivel
Etapa 3: gerao da palavra vazia, se necessrio
48
GLC
49
50
51
Iterao
incio
{ S, Y }
{ S, Y, X }
{ S, Y, X }
52
Iterao
Produes
incio
{ S aXa bXb, X a b Y }
Gramtica resultante
G1 = ({ S, X, Y }, { a, b }, { S aXa bXb aa bb, X a b Y }, S)
Etapa 3: gerao da palavra vazia, se necessrio
palavra vazia pertence linguagem: S includa
Linguagens Formais e Autmatos
53
Gramtica resultante
G2 = ({ S, X, Y }, P2, S)
P2 = { a, b }, { S aXa bXb aa bb , X a b Y }
Observe
Y, originalmente um smbolo til, resultou em um smbolo intil
excluso de produes vazias gerou smbolo intil
Concluso
no qualquer combinao de simplificaes de gramtica
que atinge o resultado desejado
54
55
6.4.3
56
Algoritmo
Etapa 1: fecho transitivo de cada varivel
conjunto de variveis que podem substitu-la transitivamente
ex: se A B e B C, ento B e C pertencem ao fecho de A
57
GLC
58
59
GLC
P = { S aXa bXb, X a b S }
Etapa 1: fecho transitivo da cada varivel
FECHO-S =
FECHO-X = { S }
60
Iterao
Produes
inicial
{ S aXa bXb, X a b }
{ S aXa bXb, X a b }
Gramtica resultante
G1 = ({ S, X }, { a, b }, P1, S)
P1 = { S aXa bXb, X a b aXa bXb }, S)
61
62
6.4.4
Simplificaes Combinadas
63
64
Formas normais
restries rgidas na forma das produes sem reduzir o poder de
gerao das GLC, excetuando-se a gerao da palavra vazia
Aplicaes
desenvolvimento de algoritmos
destaque para reconhecedores de linguagens
prova de teoremas
65
ou
Aa
palavra de variveis
Algoritmos de converso
provas omitidas de que os algoritmos atingem os objetivos
propostos
66
67
6.5.1
GLC
ou
Aa
Palavra vazia
no pertence linguagem gerada por uma gramtica na FNC
68
69
gramtica resultante
(algoritmos estudados)
70
gramtica resultante
V2 = V 1 ;
P2 = P1;
para toda A X1X2Xn P2 tal que n 2
faa se para r { 1,,n }, Xr um smbolo terminal
ento (suponha Xr = a)
V2 = V2 { Ca };
substitui
a por Ca em A X1X2Xn P2;
P2 = P2 { Ca a };
Linguagens Formais e Autmatos
71
gramtica resultante
construo de V3 e P3
a cada ciclo, suponha (D1 V3,,Dn-2 V3)
V3 = V2;
P3 = P2;
para toda A B1B2Bn P3 tal que n 3
faa P3 = P3 { A B1B2Bn };
V3 = V3 { D1,,Dn-2 };
P3 = P3 { A B1D1, D1 B2D2,,
Dn-3 Bn-2Dn-2, Dn-2 Bn-1Bn };
72
expr. aritmticas
P = { E EE EE [E] x }
Etapa 1: simplificao da gramtica
j est simplificada
73
C] ]
74
75
76
6.5.2
GLC
Palavra vazia
no pertence linguagem gerada por uma gramtica na FNG
77
Algoritmo (etapas)
linguagem no possui
primeiro smbolo no lado direito: terminal
opcional
V = n
78
79
Br Br
80
81
GLC tq GERA(G)
gramtica resultante
(algoritmos estudados)
82
gramtica resultante
gramtica resultante
83
P3 = P2
para r variando de 1 at n
faa
para s variando de 1 at r-1
Etapa 3
faa para toda Ar As P3
faa excluir Ar As de P3;
para
toda As P3
faa
P3 = P3 { Ar }
para toda Ar Ar P3
Etapa 4
faa excluir Ar Ar de P3;
V3 = V3 { Br };
P3 = P3 { Br } { Br Br };
para toda Ar P3 tq no inicia por Ar e
alguma Ar Ar foi excluda
faa P3 = P3 { Ar Br };
Linguagens Formais e Autmatos
84
gramtica resultante
construo de P4
P4 = P3;
para r variando de n-1 at 1 e toda Ar As P4
faa excluir Ar As de P4;
para toda As de P4
faa P4 = P4 { Ar };
85
toda Br As r
excluir Br As r de P4;
para toda As a
faa P4 = P4 { Br a r };
86
GLC
P = { S AA a, A SS b }
Etapa 1: simplificao da gramtica
j est simplificada
Etapa 2: renomeao das variveis em uma ordem crescente qualquer
S e A so renomeadas para A1 e A2
A1 A2A2 a
A2 A1A1 b
87
(varivel auxiliar B)
88
89
90
91
Recurso esquerda
A + A
Algoritmo
quatro primeiras etapas do algoritmo Forma Normal de Greibach
92
GLC
93
94
95
Pilha
independente da fita de entrada
no possui limite mximo de tamanho
to grande quanto se queira
baseada na noo de conjunto infinitamente contvel
96
leitura
topo
sentido
de
crescimento
base
Linguagens Formais e Autmatos
97
98
AP Nmero de estados
qualquer LLC pode ser reconhecida por um AP
com somente um estado (ou trs estados, dependendo da
definio)
pilha suficiente como nica memria
estados no so necessrios para "memorizar" informaes
passadas
estados no AP
poderiam ser excludos sem se reduzir o poder computacional
como a pilha no possui tamanho mximo
AP pode assumir tantos estados quanto se queira
99
100
6.7.1
101
AP No Determinstico ou simplesmente AP
Fita
anloga do autmato finito
Pilha
memria auxiliar
pode ser usada para leitura e gravao
Unidade de Controle
reflete o estado corrente da mquina
possui: cabea de fita e cabea de pilha
Programa, Funo Programa ou Funo de Transio comanda
leitura da fita
leitura e gravao da pilha
102
Pilha
cada clula armazena um smbolo do alfabeto auxiliar
pode ser igual ao alfabeto de entrada
leitura ou gravao sempre no topo
no possui tamanho fixo, nem mximo
tamanho corrente: tamanho da palavra armazenada
valor inicial: vazio (palavra vazia)
103
Unidade de controle
nmero finito e predefinido de estados
Cabea da Fita
unidade de leitura: acessa uma clula da fita de cada vez
move exclusivamente para a direita
pode testar se a entrada foi completamente lida
Cabea da Pilha
unidade de leitura e gravao
104
105
Controle Finito?
Unidade de controle: nmero finito e predefinido de estados
Mas no dita de controle finito
em oposio aos autmatos finitos
contedo da pilha tambm caracteriza o estado do sistema
106
107
transio
108
109
110
(x, y, v)
estado anterior
smbolo lido da fita
novo estado
palavra gravada na pilha
b l lid d
ilh
Computao de um AP
sucessiva aplicao da funo programa para cada smbolo da
entrada (da esquerda para a direita) at ocorrer uma condio de
parada
111
112
Parada de um AP
Aceita
pelo menos um dos caminhos alternativos atinge um estado
final
no importa se leu ou no toda a entrada
Rejeita
todos os caminhos alternativos rejeitam a entrada
a funo programa indefinida para cada caso
Loop
pelo menos um caminho alternativo est em loop infinito
demais: rejeitam ou tambm esto em loop infinito
113
114
*
ACEITA(M)
REJEITA(M)
LOOP(M)
115
(a, , B)
q0
(b, B, )
(?, ?, )
q1
(b, B, )
(?, ?, )
qf
116
117
q0
(a, , a)
(b, , b)
Linguagens Formais e Autmatos
(, , )
q1
(?, ?, )
qf
(a, a, )
(b, b, )
118
q0
(, , )
(a, , X)
q1
(b, , X)
(, , )
q2
(?, ?, )
qf
(a, X, )
119
120
6.7.2
121
Teorema: GLC AP
Se L uma LLC, ento existe M, AP M tal que ACEITA(M) = L
122
q0
(, , S)
q1
(?, ?, )
qf
(a1, A1, 1)
...
(an, An, n)
Linguagens Formais e Autmatos
123
124
125
q0
(, , S)
q1
(?, ?, )
qf
(a, S, B)
(a, S, SB)
(b, B, )
126
Teorema: AP GLC
Se L aceita por um AP, ento L LLC
demonstrao omitida
127
128
129
6.7.3
130
131
132
133
134
135
136
Linguagens Formais e
Autmatos
P. Blauth Menezes
blauth@inf.ufrgs.br
137