21.06.2016 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!