11.07.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!