You are on page 1of 5
Analizador Sintacticeo ESTRUCTURA a Andlisis Léxico a tee sts El compilador revisa y controla que las "palabras" estén bien escrilas y + rtenezcan a algun tipo de token cons (cadena) definido dentro del : alee ‘ lenguaje Saecner i eset Como por ejemplo que sea algiin tipo de palabra reservada, 0 sies el 1 nombre de una variable que este escrita de acuerdo a las pautas de definicion de! lenguaje. v Enesta etapa se crea la tabla de Cat simbolos, la cual contiene las ee Variables y tipo de dato al que 7 pertenece, las constantes literales, el topetn nombre de funciones y los argumentos que reciben etc. Programa 6] | Elanalizador sintactico es la fase que Fuente sigue al anilisis léxico. En esta fase se construye un AST (arbol de sintaxis Generador Codigo abstracta) para capturar la jerarquia — de la entrada ‘Opiiizador Codigo Internedio T Gensiador O5diz0 Programa Obicto pr CI ‘objet oe Funciones del Analizador Sintactico Token Analizador ‘Analizador | _ast_| Analizador Progam | Léxico Sintactico mantic Fuente ‘Nuevo Token? Construir un AST a partir de los tokens recibidos por el andlizador léxico Deteccion de errores sintacticos Tipo de gramatica que acepta un analizador sintictico La gramatica que acepta el analizador sintactico es una gramatica de contexto libre: Gramatica:G (N, T.P, 8) N--No terminates, T - Terminales. P = Reglas de Produccién. 'S - Axioma Inicial. Ejemplo : Se considera la gramatica que reconoce las operaciones aritméticas. ESEsT IT ToT'F IF FID |NUM |(E) Derivacion Derwaciones: La idea central es que se considera ina producion como una regla de reescrtura, donde # no terminal dela zqulerda es susttuid porta cadena del lado derecho de la procuccion Derivacion por la izquierda : Derivacion doncle solo el no terminal dle mas. la izquierda de cualquier forma de frase se susttuye en cada paso. Derivacion por la derecha © Derivacién canénica: Derivacion donde el no terminal mas a la derecha se sustituye fen cada paso. Elemplc: Sea la gramatica E+E+E/E-EIEEIE/EIEME lia Construyase una derlvacion por la zquierda y por la derecha para la siguiente frase: ator Cit ida +d) Arbol sintactico de una sentencia de un lenguaje £5 una representacion que se utiliza para escribir el proceso de derivacion de dicha Sentencia Problema del arbol sintactico Ambigiiedad: Una gramatice es ambigua si derivande de forma diferente con el mismo tipo de derivacién se llega al mismo resultado. Tipos de andlisis sintacti De la forma de construir el drbol sintdctico se desprenden dos tipos 0 clases de analizadores sintacticos. Pueden ser descendentes o ascendente + Descendentes : Parten del axioma inicial, y van efectuando derivaciones a izquierda hasta obtener la secuencia de derivaciones que reconoce a la sentencia, Pueden ser: ¥ Con retroceso. ¥ Con recursién v LL) + Ascendentes: Parten de la sentencia de entrada, y van aplicando reglas de produccién hacia atrés (desde el consecuente hasta el antecedente), hasta llegar al axioma inicial Pueden ser: ¥ Con retroceso. y LR) Bete ruc et nny Po ett Analisis Descendente, r Mediante este arbol se pueden derivar todas las posibles sentencias reconocibles por esta gramitica y el objetivo dle este algoritmo es hacer una biizqueda en este drbol de la rama que culmine en la sentencia a reconocer. Be yay secre ce EL mecanismo funciona mediante una busqueda primero en profundidad. Mira si todos los tokens a la izquierda de un No Terminal coincide con la cabeza de la secuencia a reconocer. En todo el arbol de derivaciones, se pretende profundizar por cada rama hasta Uegar a encontrar una forma ‘que puede 0 no coincidlr con lo que se busca, en cuyo caso se desecha, 0 si coincide con lo buscado se acepta la sentencia. Si por ninguna rama se puede reconocer, se rechaza la sentencia. ‘Problemas : Este método no funciona con gramaticas recursivas a la izquierda, ya que puede ‘ocurtir que entre en un bucle infinite, No existen muchos analizadores sintdcticos con retroceso oe cn eee eee eC Ren cs * Defineibn Un cinorams de Ceny 0s un orto cide donde ls elementos no lerminles aparecen coma rectal, yla= Para demestr quo permte representa ls misma oramdicas que la BNF, se hace por induccin sobre as operaciones bsicas ae BNF oa a a i = . =r A\ANT TE Una gramatica LLG) es aquella en la que su tabla de chequso de sintaxis no poses entradas multiples, © sea, es suficiente con examinar sélo un simbolo a la entrada, para saber qué regla aplicar. Toda gramatica recanocible mediante el método de los diagramas de Conway es LLU) LL El método consiste en seguir un algoritmo partiendo de ~ La cadena a teconocer, junto con un apuntador, que nos indica cual es el token actual, - Una pila de simbolos ( terminales y no terminales) - Una tabla asociada de forma univoca a una aramatica Método de Anilisis LLa Manejo de errores sintdctico Manejo de sintcti Sun complecor ters que provesar LOS errores en Ia sélo programas conectos. su dseto e Programacién pueden ser de los siguientes tipos: ¥ Lexicos, producidos all Elmange de erores de implantacién se simplificarian mucho. ntsis ee ol me Pero los programadores a menuo ” ggeribir mal umf]

You might also like