ANLISE SINTTICA
Prof. Alexandre Paes dos Santos
Arapiraca 03/11/2011
Introduo
Livres de Contexto;
BNF(Forma de Backus-Naur);
Introduo
precisa e fcil;
Possibilidade de construir automaticamente um
analisador sinttico ( Analisador Gramatical, Parser);
Benefcio adicional:
Revelao
Uma
de ambigidades sintticas
til
universais(Algoritmo Coker-Younger-Kasami e
o Algoritmo de Early) ;
Em ambos os casos a rvores varrida da
Mtodo Top-down;
esquerda para a direita um smbolo de
Mtodo Botton-up;
cada vez;
Trabalham somente em uma subclase de
gramticas:
LL e LR
Outras
pequenas atividades:
Tipos de Erros:
Lxicos:
a presena de erros;
Recuperar-se dos erros rapidamente para poder
detectar erros subseqentes;
Preocupao com o no retardo
Adivinhao quanto ao que o programador tinha em
mente;
Mtodos LL e LR
Estatsticas:
60% dos programas estavam semntica e sintaticamente
corretos;
80% dos enunciados com erros possuam apenas um erro;
13% dois erros;
A maioria possua erros triviais: erros em um nico token;
60% erros de pontuao
20% operadores e operandos;
15% palavras-chaves;
5% dos erros restantes de outros tipos;
O grosso dos erros giravam em torno do ponto-e-vrgula
Ripley e Druseikis
Erros concretos:
Como se recuperar?
No adequado encerrar logo aps a deteco de erros;
Erros esprios;
Erros semnticos esprios;
Exemplo: zap no definido;
Modalidade desespero;
Nvel de frase;
Produes de erros;
Correo global;
Modalidade desespero
Mais
simples;
Descarte de smbolos de entrada, um de cada vez, at
se encontrar um conjunto de tokens de sincronizao;
Pula uma parte considervel da entrada sem verificar;
Garantia de no entrar num loop infinito;
Erros mltiplos num nico enunciado raros;
Nvel de frase:
Correo
Produes de erros:
Aumentar
Correo global:
rvores
XeY
Consiste em:
4.
2.
3.
4.
Smbolos terminais:
Smbolos no-terminais
Convenes Notacionais:
Convenes Notacionais:
Simplificando:
Derivaes:
Um
E deriva - E
Derivao de (id)
O smbolo
passos
Podemos usar
para definir L(G) , a linguagem
gerado por G
As cadeias em L(G) s podem conter smbolos
terminais de G;
Dizemos que uma cadeia de terminais w est em
L(G) se e somente se
+
A cadeia w chamada de sentena de G
Se
onde pode conter no terminais,
dizemos ento de uma forma sentencial de G;
Uma sentena uma forma sentencial despida de
no terminais
So formas sentenciais:
Escrevemos
para indicar que
(id+id) pode ser derivada a partir de E
Alternativa:
rvores de Derivao
Construindo a
rvore gramatical
Ambigidade
Uma
regular (a|b)*abb
b
b
q1
q2
q3
q
f
q1
a
a
q2
q3
a
b
q
f
Eliminando a ambigidade
Eliminando a ambigidade
(1)
(1)
(2)
(2)
(1)
(2)
Eliminando a ambigidade