lunes, 22 de noviembre de 2010

Manejo de Errores

¡¡Los programas no siempre son correctos!!
El compilador tiene que:
Reportar clara y exactamente la presencia de errores
Recuperarse de cada error lo suficientemete rápido para poder detectar errores subsiguientes
Tratar de evitar mensajes falsos de error
 
Tipos de Errores
Léxicos
Sintácticos
Semánticos
Lógicos
 
Errores Léxicos
Un error que produce un token erroneo
Errores léxicos posibles
Un identificador, palabra reservada u operador mal escrito (typo) 
 
Errores Sintácticos
Un programa que no satisface la CFG del lenguaje
Ejemplos
Expresión aritmética con paréntesis no balanceados
Un punto y coma faltante
 
Errores Semánticos
Un error que necesita información sensitiva al contexto para ser identificado
Ejemplos
Un operador aplicado a un tipo incompatible de operando
Accesar una variable no declarada
 
Errores Lógicos
Errores en el modelo de ejecución
Ejemplos
Recursión infinita
Accesar un arreglo fuera de los límites
Dereferenciar un null pointe  
 
Tipos de recuperación de errores de sintáxis

Panic mode recovery
Parse level recovery
Producciones de error
Corrección global

 
 
 
 
 
 
 
 

1 comentario: