next up previous contents
Next: 1.1.2 El análisis no Up: 1.1 El análisis incremental Previous: 1.1 El análisis incremental

1.1.1 El análisis incremental

En el proceso tradicional, tras analizar la salida generada por el compilador (que puede estar constituida por un conjunto de listados con los errores encontrados y sus referencias al texto fuente), si efectivamente éste ha detectado errores, será necesario repetir el ciclo edición-compilación, lo que conllevará que el texto fuente sea reanalizado completamente, aunque el error tan sólo afecte a una pequeña porción del programa. Ciertos compiladores no proporcionan un listado de todos los errores encontrados sino que paran el proceso de compilación al encontrar el primer error. El usuario debe entonces modificar el texto y recompilar el programa. En este punto no nos interesa si el compilador es llamado desde la línea de comandos o si por el contrario dispone de un entorno de programación que permite ralizar la compilación directamente desde un editor. Lo que realmente interesa resaltar aquí es que cada vez que se invoca al compilador, todo el texto fuente es reanalizado completamente.

Inmediatamente se puede pensar que reconstruir totalmente el árbol de análisis sintáctico constituye un derroche cuando la corrección del error tan sólo provocará la modificación de una rama de dicho árbol. De acuerdo con esto, lo ideal sería que tan sólo se reconstruyesen (o mejor dicho, se reanalizasen) aquellas ramas afectadas por el error. Sin embargo, para conseguir esto que aparentemente es tan sencillo se deben dar una serie de condiciones como son:

El cumplimiento de estas condiciones implica una modificación sustancial del análisis sintáctico clásico, ya que:

En el procesamiento del lenguaje natural el uso de analizadores incrementales presenta más ventajas incluso que en el campo de los compiladores de lenguajes de programación, ya que permiten que ante una entrada errónea (una falta de ortografía, un error al realizar el OCRgif de un documento digitalizado mediante un escáner, etc.) sólo se tenga que reanalizar como mucho la frase en la cual está contenido el error. En este contexto, sería prohibitivo que para subsanar un error se tuviese que realizar un nuevo análisis completo de todo el texto de entrada.


next up previous contents
Next: 1.1.2 El análisis no Up: 1.1 El análisis incremental Previous: 1.1 El análisis incremental

Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997