Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Análisis Sintáctico Descendente
Sección 4.4
2
Análisis sintáctico por descenso recursivo
Consíderese la gramática S => cAd A => ab | a Entrada w = cad Revisar las dos posibilidades de A
3
Análisis sintáctico por descenso recursivo
Pero si fuera S => cAd A => aAb | a Entrada w = cad
4
Análisis sintáctico predictivo
Conocer el no terminal a expandir Dado el símbolo actual “a” (token) A => α1 | α2 | ... | αn Elegir αi anticipadamente
5
Análisis sintáctico predictivo
Ejemplo: Prop => if Expr then Prop Else Prop | while Expr do Prop | begin lista_props end ¿Cómo elegir cuál usar?
6
Transformación ¿Se puede usar predictivo en cualquier gramática?
Puede ser necesario hacer correcciones Eliminar recursión izquierda Factorizar por la izquierda Agrupar todos los prefijos comunes Prop => if Expr then Prop Else Prop | if Expr then Prop
7
Diagrama de transiciones
Con la gramática lista Para cada no terminal: Crear estado inicial y final Para cada producción A => X1X2...Xn Crear camino desde inicial hasta final Aristas X1, X2, ..., Xn
8
Ejemplo Copie la siguiente gramática: E => E + T | T
T => T * F | F F => (E) | id ¿Tiene recursión izquierda? ¿Necesita factorización izquierda?
9
Gramática sin recursión
E => TE’ E’ => +TE’ | nil T => FT’ T’ => *FT’ | nil F => (E) | id
10
Diagrama de transiciones
1 2 E: + T E’ 3 4 5 6 E’: nil
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.