Capítulo 9. Tratamiento de errores

Hay dos conceptos fundamentales:

Corrección ortográfica

Errores ortográficos típicos:

Pueden comprobarse sólo los errores anteriores, lo que acelera el proceso.

Correcciones posibles:

Todas las correcciones efectuadas deben ser cuidadosamente documentadas, para evitar que el programador se pierda al probar el programa.

Corrección de errores sintácticos

Si se detecta al analizar la cadena

  xUy
donde x,y en A* y U en A es el próximo símbolo a analizar, podemos intentar lo siguiente:

No hacer nunca los dos últimos. Deshace la información semántica asociada.

Ejemplo: tenemos

  if (...) { x=0; else ...

El error se detecta en "else". Solución posible: añadir "}" delante de "else", analizando

  if (...) { x=0; } else ...

Recuperación de errores de compilación

Conviene tener una sola rutina de recuperación de errores separada del resto del compilador.

Recuperación de errores en un intérprete

Hay que señalar el error y detener la ejecución, permitiendo al programador

y asegurarse de que todo sigue correctamente. En lenguaje simbólico se puede manipular la pila de ejecución, salir automáticamente de rutinas pendientes, sin continuar la ejecución, etc.