Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Análisis Sintáctico Capítulo 4
2
Analizador Sintáctico
Componente Léxico (Token) Arbol de Análisis Sintáctico Programa Fuente Analizador Léxico Analizador sintáctico Resto de Etapa Inicial Código Intermedio GetNextToken() Tabla de Símbolos
3
Errores Léxicos Sintácticos Semáticos Lógicos
Escribir mal algo (fi en lugar de if) Sintácticos Paréntesis no equilibrados If sin Then Semáticos Llamada a función con parámetros de tipo incorrecto Lógicos Recursión infinita Run time error
4
Errores Sintácticos Objetivos Informar de los errores con claridad
Lugar donde ocurrió el error Recuperarse de los errores Varias estrategias No retrasar el análisis en programas correctos
5
Programa ejemplo Program impmax(input, output); Var x, y : integer;
Function max(i: integer; j: integer) : integer; {devuelve el máximo de los enteros i y j} Begin if i > j then max := i else max := j End; readln(x,y); writeln(max(x,y)) End.
6
Estrategias de recuperación de errores
En modo de pánico A nivel de frase De producciones de error De corrección global
7
En modo de pánico Se descubre el error Se desechan símbolos de entrada
Se llega a un componente de sincronización ; end loop then Se debe definir cuáles se usarán Puede desechar gran parte de la entrada Garantiza recuperación
8
A nivel de frase Identificar prefijo para la entrada restante Ejemplo
If while not true then ... Entrada restante: not true then... Prefijo identificable: if Corrección: if not true then ... Difícil de implementar
9
Producciones de error Se identifican patrones de error
Se incluyen producciones para esos patrones Si la producción se usa... Corregir en reglas semánticas Modificar la gramática
10
Corrección Global Identificar todas las posibles variaciones
Evaluar la mínima Utilizarla
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.