Traductores e Intérpretes UCAB : Analisis Sintactico Ascendente Por Corrimiento Reducción
This page last changed on Jan 27, 2008 by carlos.gonzalez.
Mangos, Agarraderos, Asideros o HandlersInformalmente un mango de una cadena es una subcadena que concuerda con el lado derecho de una producción y cuya reducción al no terminal del lado izquierdo de la producción representa un paso a lo largo de la inversa de una derivación por la derecha. En muchos casos, la subcadena situada más a la izquierda β que concuerda con el lado derecho de alguna producción A -> β no es un mango porque una reducción por la producción A -> β produce una cadena no reducible al símbolo inicial. Por ejemplo, para la gramática con producciones:
la frase abbcder se puede reducir: Analizador por Corrimiento ReducciónHay dos problemas a resolver en un análisis sintáctico por corrimiento reducción:
Las estructuras a utilizar son parecidas a la de análisis predictivo no recursivo, se usa una pila para manejar los símbolos gramaticales y un buffer para la cadena de entrada. Al igual que el APNR se coloca un símbolo $ para indicar el fondo de la pila y el fin de la cadena. Al principio la pila está vacía y la cadena a el buffer.
El analizador sintáctico funciona desplazando cero o más símbolos de la entrada a la pila hasta que un mango β este en la cima. Entonces el analizador reduce β al lado izquierdo de la producción utilizada; el analizador repite el proceso hasta que se detecta un error o la pila contiene el símbolo inicial y la entrada está vacía.
Para el ejemplo anterior el resultado será el siguiente:
Aunque se habla de corrimiento y reducción, existen 4 operaciones (acciones):
|
Document generated by Confluence on Oct 04, 2010 11:24 |