Escolar Documentos
Profissional Documentos
Cultura Documentos
P. Blauth Menezes
blauth@inf.ufrgs.br
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 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
14
15
16
17
18
19
20
21
raiz
vrtice interior
...
X1
Linguagens Formais e Autmatos - P. Blauth Menezes
X2
...
a Xn folhas
22
x
Linguagens Formais e Autmatos - P. Blauth Menezes
x
24
x
Linguagens Formais e Autmatos - P. Blauth Menezes
x
25
26
Gramtica ambgua
uma palavra associada a duas ou mais rvores de derivao
27
x
Linguagens Formais e Autmatos - P. Blauth Menezes
x
28
29
30
31
32
33
Simplificaes so importantes
construo e otimizao de algoritmos demonstrao de teoremas
34
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
35
36
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
37
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:
38
39
Etapa 2: qualquer smbolo atingvel a partir do smbolo inicial Gramtica resultante G2 = (V2, T2, P2, S) T2=; V2={S}; repita V2=V2{AXAP1, XV2}; T2=T2{aXaP1, XV2} at que os cardinais de V2 e T2 no aumentem; P2 possui os mesmos elementos que P1, excetuando-se produes cujos smbolos no pertencem a V2 ou T2
40
41
42
gramtica resultante da etapa 1 G1 = ({ A, C, S }, { a }, { S aAa, A a S, C c }, S) Etapa 2: qualquer smbolo atingvel a partir do smbolo inicial Iterao Variveis Terminais incio 1 2 {S} { S, A } { S, A } {a} {a}
43
44
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
45
46
Etapa 2: excluso de produes vazias Gramtica resultante G1 = (V, T, P1, S) construo de P1 P1={A}; repita para toda AP1, XV tal que =1X2, 12 faa P1=P1{A12} at que o cardinal de P1 no aumente;
47
Etapa 3: gerao da palavra vazia, se necessrio se pertence linguagem introduz a produo S gramtica resultante G2 = (V, T, P2, S)
P2 = P1 { S }
48
Iterao incio 1 2
V { S, Y } { S, Y, X } { S, Y, X }
49
Iterao incio 1 2
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 - P. Blauth Menezes
50
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
51
52
6.4.3
53
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
54
55
Etapa 2: excluso das produes que substituem variveis Gramtica resultante G1 = (V, T, P1, S) construo de P1 P1={AAP e V}; para toda AV e BFECHO-A faa se BP e V ento P1=P1{A};
56
57
Iterao inicial S X
58
59
6.4.4
Simplificaes Combinadas
Exemplo: gramtica sem smbolos inteis, mas com produes que substituem variveis
algoritmo para excluir produes que substituem variveis pode gerar smbolos inteis (por qu?)
60
61
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
62
Algoritmos de converso
provas omitidas de que os algoritmos atingem os objetivos propostos
63
64
6.5.1
Palavra vazia
no pertence linguagem gerada por uma gramtica na FNC
65
66
67
Etapa 2: transformao do lado direito das produes de comprimento maior ou igual a dois G2 = (V2, T1, P2, S) construo de V2 e P2 gramtica resultante
V2=V1; P2=P1; para toda AX1X2XnP2 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 AX1X2XnP2; P2=P2{Caa};
Linguagens Formais e Autmatos - P. Blauth Menezes
68
Etapa 3: transformao do lado direito das produes de comprimento maior ou igual a trs em produes com exatamente duas variveis G3 = (V3, T1, P3, S) gramtica resultante
construo de V3 e P3 a cada ciclo, suponha D1 V3,,Dn-2 V3) V3=V2; P3=P2; para toda AB1B2BnP3 tal que n3 faa P3=P3{AB1B2Bn}; V3=V3{D1,,Dn-2}; P3=P3{AB1D1, D1B2D2,, Dn-3Bn-2Dn-2, Dn-2Bn-1Bn};
69
70
Etapa 3: exatamente duas variveis no lado direito das produes produes E E C+ E E C E C[ E C] substitudas por E E D1 E D2 C[ D3 D1 C+ E D2 C E D3 E C]
71
Gramtica resultante, na Forma Normal de Chomsky GFNC = ({ E, C+, C, C[, C], D1, D2, D3 }, { +, , [, ], x }, PFNC, E) Produes de PFNC E E D1 E D2 C[ D3 x, D1 C+ E D2 C E D3 E C], C+ + C C[ [ C] ]
72
73
6.5.2
Palavra vazia
no pertence linguagem gerada por uma gramtica na FNG
74
Algoritmo (etapas)
Etapa 1: simplificao da gramtica. Anloga FNC A AB smbolos inteis linguagem no possui primeiro smbolo no lado direito: terminal opcional
Etapa 2: renomeao das variveis em uma ordem crescente exemplo: A1, A2,, An diferentes critrios de renomeao diferentes gramticas na FNG todas equivalentes (geram a mesma linguagem) # V = n
75
Etapa 3: produes na forma Ar As , em que r s Ar As tais que r > s so modificadas substitui As pelas suas produes (As 1 m) resulta em Ar 1 m e assim sucessivamente conjunto de variveis finito: limite para produes crescentes gerao de terminal Ar a gerao de recurso Ar Ar
76
Etapa 4: excluso das recurses da forma Ar Ar podem existir originalmente na gramtica ou serem geradas pela etapa anterior eliminao da recurso esquerda introduz variveis auxiliares inclui recurso direita
Br Br
77
Etapa 5: um terminal no incio do lado direito de cada produo produes da forma Ar As so tais que r < s portanto, produes da maior varivel An obrigatoriamente iniciam por terminal no lado direito An-1 An: substitu An pelas suas produes (An a) lado direito das produes de An-1 tambm inicia por terminal exemplo: An-1 a repetio para An-2,,A1 resulta em produes exclusivamente da forma Ar a Etapa 6: produes na forma A a, palavra de variveis anloga correspondente etapa do algoritmo relativo FNC
Linguagens Formais e Autmatos - P. Blauth Menezes
78
79
Etapa 2: renomeao das variveis em uma ordem crescente qualquer. G2 = (V2, T1, P2, Ai) gramtica resultante
Etapas 3 e 4: transformao de produes para a forma Ar As , na qual r s e excluso das recurses da forma Ar Ar G3 = (V3, T1, P3, Ai) construo de V3 e P3 supondo cardinal de V2 n a cada ciclo, Br V3 gramtica resultante
80
P3=P2 para r variando de 1 at n faa para s variando de 1 at r-1 Etapa 3 faa para toda ArAs P3 faa excluir ArAs de P3; para toda As P3 faa P3=P3{Ar} para toda ArArP3 Etapa 4 faa excluir ArAr de P3; V3=V3{Br}; P3=P3{Br}{BrBr}; para toda ArP3 tq no inicia por Ar e alguma ArAr foi excluda faa P3=P3{ArBr};
Linguagens Formais e Autmatos - P. Blauth Menezes
81
Etapa 5: um terminal no incio do lado direito de cada produo G4 = (V3, T1, P4, Ai) construo de P4 P4=P3; para r variando de n-1 at 1 e toda ArAs P4 faa excluir ArAs de P4; para toda As de P4 faa P4=P4{Ar}; gramtica resultante
82
produes relativas s variveis auxiliares Br iniciam por um terminal do lado direito para faa toda BrAs r excluir BrAs r de P4; para toda As a faa P4=P4{Brar};
Etapa 6: produes na forma A a, palavra de variveis anloga correspondente etapa da Forma Normal de Chomsky
83
84
Etapas 3 e 4: transformao de produes para a forma Ar As , na qual r s e excluso das recurses da forma Ar Ar A2 A1A1 necessita ser modificada, resultando em A1 A2A2 a A2 A2A2A1 aA1 b A2 A2A2A1 contm recurso A1 A2A2 a A2 aA1 b aA1B bB B A2A1 A2A1B (varivel auxiliar B)
85
Etapa 5: um terminal no incio do lado direito de cada produo lado direito das produes da maior varivel A2 inicia por um terminal substitui A2 em A1 A2A2 pelas correspondentes derivaes A1 aA1A2 bA2 aA1BA2 bBA2 a A2 aA1 b aA1B bB B A2A1 A2A1B produes referentes varivel B B aA1A1 bA1 aA1BA1 bBA1 aA1A1B bA1B aA1BA1B bBA1B
86
Etapa 6: produes na forma A a, composta por variveis produes j esto nessa forma Gramtica resultante, na Forma Normal de Greibach PFNG = { A1 aA1A2 bA2 aA1BA2 bBA2 a, A2 aA1 b aA1B bB, B aA1A1 bA1 aA1BA1 bBA1 aA1A1B bA1B aA1BA1B bBA1B } GFNG = ({ A1, A2, B }, { a, b }, PFNG, A1),
87
88
Recurso esquerda
A + A
Algoritmo
quatro primeiras etapas do algoritmo Forma Normal de Greibach
89
Etapa 1: simplificao da gramtica Etapa 2: renomeao das variveis em uma ordem crescente qualquer Etapa 3: produes na forma Ar As , na qual r s Etapa 4: excluso das recurses da forma Ar Ar
90
92
Pilha
independente da fita de entrada no possui limite mximo de tamanho to grande quanto se queira baseada na noo de conjunto infinitamente contvel
93
94
95
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
96
6.7.1
98
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 define o estado da mquina
99
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)
100
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
101
102
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
103
104
105
106
107
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 possvel que nunca atinja uma condio de parada processa indefinidamente (loop infinito) exemplo: empilha e desempilha um mesmo smbolo indefinidamente, sem ler da fita definio formal estende a definio da funo programa argumento: um estado e uma palavra exerccio
108
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
109
110
*
ACEITA(M) REJEITA(M) LOOP(M)
algum conjunto vazio? partio induzida contm um conjuntos a menos uma classe de equivalncia no pode ser vazia
111
(a, , B)
q0
(b, B, )
q1
(b, B, )
(?, ?, ) qf
(?, ?, )
112
113
q0
(, , )
q1
(?, ?, )
qf
(a, , a) (b, , b)
Linguagens Formais e Autmatos - P. Blauth Menezes
(a, a, ) (b, b, )
114
q0
(, , )
q1
(, , )
q2
(?, ?, )
qf
(a, , X)
(b, , X)
(a, X, )
115
6.7.2
117
Teorema: GLC AP
Se L uma LLC, ento existe M, AP M tal que ACEITA(M) = L
118
GFNG = (VFNG, TFNG, PFNG, S), G na Forma Normal de Greibach M = (TFNG, { q0, q1, qf }, , q0, { qf }, VFNG) (q0, , ) = { (q1, S) } (q1, a, A) = { (q1, ) A a PFNG } (q1, ?, ?) = { (qf, ) }
q0
(, , S)
q1
(?, ?, )
qf
119
A demonstrao de que ACEITA(M) = GERA(GFNG) induo no nmero de movimentos de M (ou derivaes de GFNG) exerccio como o AP pode ser modificado para tratar a palavra vazia?
120
121
122
Teorema: AP GLC
Se L aceita por um AP, ento L LLC demonstrao omitida
123
6.7.3
126
Autmato com Pilha, sem usar a estrutura de pilha estados: nica forma de memorizar informaes passadas muito semelhante ao autmato finito AP, sem usar a pilha, com ou sem no-determinismo reconhecem a Classe das Linguagens Regulares
127
Autmato com Pilha Determinstico aceita a Classe das Linguagens Livres do Contexto Determinsticas importante subconjunto prprio da Classe das LLC implementao de um AP determinstico simples e eficiente facilita o desenvolvimento de analisadores sintticos algumas propriedades da Classe das LLC Determinsticas existe um tipo de gramtica que gera exatamente tal classe (exerccio de pesquisa) fechada para a operao de complemento no fechada para as operaes de unio, interseco e concatenao
128
Autmato com (uma) Pilha No-Determinstico aceitam exatamente a Classe das LLC Autmato com Duas Pilhas mesmo poder computacional da Mquina de Turing considerada o dispositivo mais geral de computao se existe um algoritmo para resolver um problema pode ser expresso como um autmato com duas pilhas no-determinismo no aumenta o poder computacional
129
Autmato com Mltiplas Pilhas poder computacional de um autmato com mais de duas pilhas equivalente ao do autmato com duas pilhas se um problema solucionado por um autmato com mltiplas pilhas pode ser solucionado por um autmato com duas pilhas
130
132