You are on page 1of 6

ANALIZADOR SINTACTICO

El papel del analizador sintctico

Anlisis sintctico ascendente y descendente ANLISIS SINTCTICO DESCENDENTE

En ste analizador las entradas son de izquierda a derecha, y construcciones de derivaciones por la izquierda de una sentencia o enunciado. CARCTERISTICAS El anlisis sintctico descendente (ASD) intenta encontrar entre las producciones de la gramtica la derivacin por la izquierda del smbolo inicial para una cadena de entrada. Parte del axioma de la gramtica.

Procesa la entrada de izquierda a derecha. Escoge reglas gramaticales.

Bueno primeramente para trabajar el anlisis sintctico descendente se debe realizar primeramente algunas operaciones para que la gramtica sea LL1 las cuales son: - ELIMINAR AMBIGUEDAD: Para eliminar la ambigedad se debe reescribir la gramtica. - ELIMINAR RECURSIVIDAD POR LA IZQUIERDA: Una gramtica es recursiva por la izquierda si tiene un nodo Terminal a tal que existe una derivacin A->A para alguna cadena . Es decir por simple observacin podemos identificar. Para eliminar la recursividad por la izquierda se utiliza la siguiente formula.

- Factorizar: Se trata de rescribir las producciones de la gramtica con igual comienzo para retrasar la decisin hasta haber visto lo suficiente de la entrada como para elegir la opcin correcta.

Ejemplo:

Anlisis Sintctico Descendente Con Retroceso. El mtodo parte del axioma inicial y aplica todas las posibles reglas al no terminal ms a la izquierda. Se usa el retroceso para resolver la incertidumbre. Sencillo de implementar. Muy eficiente.

Ejemplo:

Anlisis Sintctico Descendente Predictivo (Asdp) El analizador debe realizar la previsin de la regla a aplicar slo con ver el primer smbolo que produce para que el algoritmo tenga una complejidad lineal. Las gramticas que son susceptibles de ser analizadas sintcticamente de forma descendente mediante un anlisis predictivo y consultando un nicamente un smbolo de entrada pertenecen al grupo LL(1). A partir de gramticas LL(1) se pueden construir analizadores sintcticos descendentes predictivos (ASDP), que son ASD sin retroceso. Ejemplo:

ANLISIS SINTCTICO ASCENDENTE El objetivo de un anlisis ascendente consiste en construir el rbol sintctico desde abajo hacia arriba, esto es, desde los tokens hacia el axioma inicial, lo cual disminuye el nmero de reglas mal aplicadas con respecto al caso descendente (si hablamos del caso con retroceso) o ampla el nmero de gramticas susceptibles de ser analizadas (si hablamos del caso LL(1)). Anlisis ascendente con retroceso Al igual que ocurra con el caso descendente, este tipo de anlisis intenta probar todas las posibles operaciones (reducciones y desplazamientos) mediante un mtodo de fuerza bruta, hasta llegar al rbol sintctico, o bien agotar todas las opciones, en cuyo caso la cadena se rechaza. En el anlisis con retroceso no se permiten las reglas , puesto que estas se podrn aplicar de forma indefinida. Anlisis Ascendente sin Retroceso El anlisis ascendente sin retroceso busca una derivacin derecha de la cadena de entrada de forma determinista.

Este se sustenta en su aplicacin a las gramticas LR(K). La L viene de la lectura de la cadena de entrada de izquierda a derecha. La R de producir un rbol de derivacin derecho. La k indica el nmero de smbolos que es necesario leer a la entrada para tomar la decisin de qu produccin emplear. Un parser del tipo shift-reduce puede verse como un autmata de pila determinista extendido que realiza el anlisis de abajo hacia arriba. Dada una cadena de entrada w, simula una derivacin ms a la derecha.

Anlisis semntico y tratamiento de errores ANALISIS SEMANTICO

Tratamiento de Errores

rboles Sintcticos

. Un rbol sintctico es una representacin de las relaciones jerrquicas entre los constituyentes sintcticos. Ms formalmente, un rbol sintctico es una grafo que representa esta relacin de orden parcial. Cuando en una construccin un constituyente X es parte de un constituyente inmediato de otro constitiyente ms grande Y, el rbol sintctico correspondiente tendr una lnea entre el nodo que representa a X y en nodo que representa a Y. Actualmente se acepta que toda lengua admite una anlisis mediante rboles sintcticos binarios. En los rboles grficos los ncleos sintcticos se suelen representar con una letra, por ejemplo X, seguida de un subndice (por ejemplo ), mientras que las estructuras ms complejas se sealan mediante una o dos barras superpuestas o mediante primas (por ejemplo, ) y si se trata de proyecciones mximas de un ncleo mediante la letras S antecediendo a la letra que designa al ncleo (por ejemplo SX).