tesis_uam/Guia para hacer compiladores _UAM7403.pdf - cedip
tesis_uam/Guia para hacer compiladores _UAM7403.pdf - cedip
tesis_uam/Guia para hacer compiladores _UAM7403.pdf - cedip
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Cosidérese la gramáticaS --> c A dA-->ab I ay la cadena de entrada w = cad. Para construir un árbol deanálisis sintáctico descendente <strong>para</strong> esta cadena, primero se creaun árbol formado por un solo nodo etiquetado con S. Un apuntadora la entrada apunta a c, el primer sinrbolo de w. Después seútiliza la primera producción de S <strong>para</strong> expandir el árbol yobtener el árbol de la figura sig.a b aPasos en el análisis sintáctico descendente.Se empareja la hoja situada más a la izquierda, etiquetada con c,con el primer símbolo de w, y acontinuación se aproxima elapuntador de entrada a rar, el segundo símbolo de w, y seconsidera la siguiente hoja etiquetada con A. Entonces se puedeexpandir A utilizando la primera alternativa de A <strong>para</strong> obtener elárbol de la figura (b). Como ya se tiene una concordancia <strong>para</strong>el segundo símbolo de la entrada se lleva el apuntador de entradaa 'd8, el tercer símbolo de la entrada, y se com<strong>para</strong> 'd' con lahoja siguiente, etiquetada con 8b8. Como 'b8 no concuerda con'd', se indica fallo y se regresa a A <strong>para</strong> saber si existe otraalternativa de A que no se haya intentado, pero que pueda darlugar a un emparejamiento.Al regresar a A, se debe reestablecer el apuntador de entradaa la posición 2, aquella que tenía al ir a A por primera vez, locual significa que el procedimiento <strong>para</strong> A (análogo alprocedimiento <strong>para</strong> no terminales de la figura 2.17) debealmacenar el apuntador a la entrada en una variable local. Seintenta a continuación la segunda alternativa de A <strong>para</strong> obtenerel árbol de la figura (c). Se empareja la hoja 'a8 con el segundosímbolo de w, y la hoja 'd8, con el tercer símbolo. Como ya se haproducido un árbol de análisis sintáctico <strong>para</strong> w, se <strong>para</strong> y seanuncia el éxito de la realización completa del análisissintático.Una gramática recursiva por la izquierda puede <strong>hacer</strong> que unanalizador sintáctico por descenso recursivo, incluso uno conretroceso, entre en un lazo infinito. Es decir, cuando se intentaexpandir A, puede que de nuevo se esté intentando expandir A sin43