next up previous contents
Next: A.2 El análisis incremental Up: A.1 El análisis no Previous: Un ejemplo sencillo

A.1.3 El bosque compartido

Como ya se comentó anteriormente, ICE representa el análisis por medio de las reglas de la gramática de contexto libre usadas en una reducción a derechas de la sentencia analizada, en vez de utilizar directamente un árbol de análisis sintáctico. De este modo se consigue que cuando la sentencia tenga diferentes análisis, el conjunto de todas las cadenas de análisis sean representadas de forma finita compartida mediante una gramática de contexto libre que genera el conjunto completo, posiblemente infinito.

El grafo de bosque compartido es equivalente a un grafo AND-OR de una gramática de contexto libre, en donde las ramas AND se corresponden con árboles de análisis deterministas tradicionales y las ramas OR se corresponden con los distintos caminos creados por las ambigüedades en el análisis no determinista. La compartición de estructuras se logra permitiendo que un nodo tenga más de un padre. Se puede compartir un subárbol entero o una parte de los descendientes de un nodo dado.

Para generar el bosque compartido, los items realizan el papel de no terminales en una gramática de salida tex2html_wrap_inline13613 donde tex2html_wrap_inline13615 es el conjunto de todos los items, tex2html_wrap_inline13617 el conjunto de los componentes léxicos de la gramática original tex2html_wrap_inline13257 y tex2html_wrap_inline13621 son las reglas construidas por el algoritmo de análisis junto con los items. Se genera una regla en la gramática de salida cada vez que se realiza una reducción o un desplazamiento en la pila. En ambos casos, el lado izquierdo de la regla se corresponde con el nuevo item que describe la configuración resultante. El lado derecha está formado, en el caso de un desplazamiento, por el componente léxico reconocido y en el caso de una reducción por los items que representan a los items eliminado de la pila. El último item producido por un proceso de computación que reconoce la cadena de entrada es el símbolo inicial tex2html_wrap_inline13623.


next up previous contents
Next: A.2 El análisis incremental Up: A.1 El análisis no Previous: Un ejemplo sencillo

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