next up previous contents
Next: A.1.1 El núcleo de Up: A Descripción general de Previous: A Descripción general de

A.1 El análisis no determinista de ICE

Como todo analizador sintáctico de contexto libre, la misión de ICE es analizar sentencias de un lenguaje tex2html_wrap_inline13245 generado por una gramática tex2html_wrap_inline13247 donde N es el conjunto de símbolos no terminales, tex2html_wrap_inline13251 es el conjunto de terminales, P son las reglas y S el el símbolo inicial.

El modelo operacional es el de un traductor a pila o PDTgif en el cual a partir de una configuración inicial (estado inicial, pila vacía, cadena de entrada completa y cadena de salida vacía) se van aplicando transiciones hasta alcanzar una configuración final (estado final y/o pila vacía, nada por analizar en la cadena de entrada y cadena de salida completa) que representa el resultado de un proceso de computación con éxito. Una sentencia ambigua para la gramática tex2html_wrap_inline13257 provocará la existencia de varios caminos (secuencias de transiciones) válidos desde la configuración inicial hasta la final. La configuración final puede no ser única ya que diferentes caminos probablemente generarán diferentes cadenas de salida y además puede haber más de un estado final.

En el análisis de sentencias ambiguas, la compartición de computaciones es un problema fundamental. Sin embargo, en un PDT tradicional el formalismo de transiciones depende del contenido total de la pila con lo cual se reducen las posibilidades de compartición. Es por ello precisamente por lo que dicha estructura recibe la denominación de tex2html_wrap_inline13259. Para resolver este problema ICE hace uso de de estructuras dinámicasgif, introducidas originalmente en [Villemonte de la Clergerie 90] para el desarrollo de compiladores lógicos eficientes y aplicadas al análisis de contexto libre en [Vilares 92].

ICE realiza una interpretación mediante programación dinámica de un PDT consistente en la exploración sistemática de un espacio de elementos que reciben el nombre de items. Este espacio de búsqueda es una representación condensada de todas las posibles computaciones del PDT. ICE garantiza que realmente se exploran todas las partes útiles del espacio de búsqueda (completitud) y que las partes redundantes o inútiles se ignoran todo lo que sea posible (admisibilidad). Se puede probar [Vilares 92, Vilares 93] que la representación de configuraciones mediante items es compatible con el formalismo de transiciones y que la corrección y completitud de computaciones con los items se verifican en relación a tex2html_wrap_inline13259.

En la práctica, sólo se suelen considerar las estructuras dinámicas tex2html_wrap_inline13263 y tex2html_wrap_inline13265. Ambas construyen items a partir de la noción de modo. Un modo es una tupla de 4 elementos (tex2html_wrap_inline13267) donde p es el estado actual en el PDT, X es el último símbolo (terminal o no terminal) reconocido en el estado p, tex2html_wrap_inline13275 es un puntero, llamado back-pointer, a la posición i de la cadena de entrada w que contiene el primer componente léxico derivado del símbolo X, mientras que tex2html_wrap_inline13283 es un puntero a la posición j en la cadena de entrada del componente léxico que está siendo analizado. tex2html_wrap_inline13263 se diferencia de tex2html_wrap_inline13265 en que considera los items como estructuras formadas por un único modo , mientras que para tex2html_wrap_inline13265 los items están formados por dos modos de la forma [(tex2html_wrap_inline13267)(tex2html_wrap_inline13295)]. Esto quiere decir básicamente que tex2html_wrap_inline13263 utiliza el tope de la pila para representar la configuración actual, mientras que tex2html_wrap_inline13265 utiliza el tope y su predecesor en la pila.

A fin de garantizar la eficiencia en un contexto no determinista, es preciso asegurar una buena compartición de computaciones. Es por ello que ICE hace uso de tex2html_wrap_inline13263, ya que tex2html_wrap_inline13265 no se puede considerar que sea óptima debido a la continua dependencia del contexto representado por el segundo modo de los items.




next up previous contents
Next: A.1.1 El núcleo de Up: A Descripción general de Previous: A Descripción general de

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