Analizador Sintáctico
Analizador Sintáctico
Analizador Sintáctico
SINTCTICO
DESCENDENTE
INTEGRANTES:
-
I.INTRODUCCIN
Qu es un ANALIZADOR SINTCTICO
DESCENDENTE?
Se llama descendente porque parte del smbolo inicial (la raz del rbol
de derivacin) y trata de llegar a la cadena de terminales (las hojas del
rbol).
Se estudia los siguientes tokens a analizar para decidir la regla a
expandir.
Lookahead: N de tokens necesario para realizar la eleccin de la regla
a expandir.
Gramticas LL(1): con Lookahead = 1
CARACTERSTICAS
Parte del axioma de la gramtica.
Procesa la entrada de izquierda a derecha.
Escoge reglas gramaticales.
EJEMPLO:
Analizar la cadena de entrada cad dada la
gramtica siguiente:
Gramtica
S cAd
A ab|a
cad, se toma la primera produccin.
Gramtica
S cAd
A ab
Aa
Gramtica
S cAd
A ab
Aa
Gramtica
S cAd
A ab
A a
Gramtica
S cAd
A ab
Aa
II.A.S.D. CON
RETROCESO
CONCEPTO:
Consiste en que parte del axioma inicial y
aplica todas las posibles reglas al no
terminal ms a la izquierda. Intenta
sustituir cada smbolo no terminal por
cada una de sus producciones hasta
encontrar la produccin adecuada.
Podramos
considerar
el
anlisis
sintctico
descendente con retroceso como un caso particular de
bsqueda ciega en profundidad (se desempata de
izquierda a derecha)
El criterio para decidir si una regla es aplicable en una
posicin es la coincidencia de esa posicin con el no
terminal que est en la parte izquierda de la regla.
No podemos continuar por un camino cuando
tengamos terminales que discrepan con el programa
(podemos suponer el orden de recorrido natural del
programa (de izquierda a derecha)
PASOS:
1.
2.
3.
4.
5.
6.
Ejemplo:
Gramtica:
Cadena a analizar:
III.A.S.D
RECURSIVO
( exp ) / nmero
PSEUDOCDIGO:
procedure factor ;
begin
case token of
(:
match( ( ) ;
exp ;
match( ) ) ;
number :
match(number) ;
else error ;
end case ;
end factor ;
IV.ANLISIS
PREDICTIVO
LL(1)
Conjuntos de Prediccin
Son conjuntos de smbolos terminales
Ayudan a predecir qu regla se debe aplicar para el no
Terminal que hay que derivar.
Se construyen a partir de los smbolos de las partes derechas
de las producciones de la gramtica.
El analizador consulta el siguiente smbolo en la entrada.
Si pertenece al conjunto de prediccin de una regla aplica esa
regla, si no da error.
La gramtica
la gramtica no es LL(1).
Reglas
Gramtica
Para SIG(E)
Para SIG(E)
Para SIG(T)
Para SIG(T)
Para SIG(F)
V.USO DE
TABLAS DE
ANLISIS
CONCEPTO
Matriz bidimensional M con A filas y B columnas.
A es la cantidad de no terminales de la gramtica
y B es la cantidad de terminales.
La tabla es utilizada por un analizador sintctico
predictivo guiado por tablas para analizar
sintcticamente una hilera de caracteres.
CARACTERSTICAS
Su funcionamiento se basa en una pila y una tabla de
anlisis
La pila almacena las hojas del rbol de anlisis sintctico
Siempre se estudia el contenido de la cima de la pila
La tabla de anlisis tiene: Una fila por cada smbolo no
terminal, Una columna por cada smbolo terminal y el fin
de entrada
Las celdas de la tabla contienen enlaces a las reglas de
produccin
El contenido de la tabla indica que regla expandir en
funcin del smbolo terminal recibido
CONSTRUCCIN DE LA TABLA
FUNCIONAMIENTO DE LA TABLA
LO
P
M
EJE
FUNCIONAMIENTO DE
LA PILA
V.MANEJO DE
ERRORES
GRACIAS!