Análisis Sintáctico
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
siguientes.<br />
• Agregar una sobrecarga mínima al procesamiento de los programas correctos.<br />
Por fortuna, los errores comunes son simples, y a menudo basta con un mecanismo<br />
simple para su manejo.<br />
Estrategias para recuperarse de los errores<br />
Una vez que se detecta un error, ¿cómo debe recuperarse el analizador sintáctico?<br />
Aunque no hay una estrategia que haya demostrado ser aceptable en forma<br />
universal, algunos métodos pueden aplicarse en muchas situaciones. El método<br />
más simple es que el analizador sintáctico termine con un mensaje de error<br />
informativo cuando detecte el primer error. A menudo se descubren errores<br />
adicionales si el analizador sintáctico puede restaurarse a sí mismo, a un estado en<br />
el que pueda continuar el procesamiento de la entrada, con esperanzas razonables<br />
de que un mayor procesamiento proporcione información útil para el diagnóstico. Si<br />
los errores se apilan, es mejor para el compilador desistir después de exceder cierto<br />
límite de errores, que producir una molesta avalancha de errores “falsos”.<br />
El resto de esta sección se dedica a las siguientes estrategias de recuperación de<br />
los errores: modo de pánico, nivel de frase, producciones de errores y corrección<br />
global.<br />
Recuperación en modo de pánico Con este método, al describir un error el<br />
analizador sintáctico descarta los símbolos de entrada,<br />
uno a la vez, hasta encontrar un conjunto designado de tokens de sincronización.<br />
Por lo general, los tokens de sincronización son delimitadores como el punto y coma<br />
o }, cuya función en el programa fuente es clara y sin ambigüedades. El diseñador<br />
del compilador debe seleccionar los tokens de sincronización apropiados para el<br />
lenguaje fuente. Aunque la corrección en modo de pánico a menudo omite una<br />
cantidad considerable de entrada sin verificar errores adicionales, tiene la ventaja<br />
43