Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 3
Parte I Anlisis Sintctico
ndice General
Introduccin rboles de anlisis sintctico Especificacin de un analizador sintctico Tipos de analizadores sintcticos
Introduccin
Funcin
Comprobar el orden en que llegan los tokens Construir una representacin del programa fuente Si es sintacticamente incorrecto generar error
fuente
SiguienteToken() Token
ndice General
Introduccin rboles de anlisis sintctico
rbol Sintctico rbol de Anlisis sintctico Derivaciones
Derivacin por la izquierda Derivacin por la derecha
rbol sintctico
rbol sintctico
Representacin abstracta Operadores en nodos no terminales Operandos en nodos terminales
rbol sintctico := A := B + C A B + C
2+3*5
Derivaciones
Derivaciones
Las producciones gramaticales son reglas de reescritura Una derivacin es un proceso de reescritura
Tipos
Derivacin ms a la izquierda
E => - E => - (E + E) => - (id + E) => - (id + id) E E E E E := := := := := E+E E*E (E) -E id
Derivacin ms a la derecha
E => - E => - (E + E) => - (E + id) => - (id + id)
- (id + id)
Forma de frase
Una forma de frase de una gramtica G es una coleccin de smbolos terminales y no terminales obtenidos de la aplicacin de una derivacin mltiple sobre las reglas de G
- (id + E)
ndice General
Introduccin rboles de anlisis sintctico Especificacin de un analizador sintctico
Especificacin formal Gramticas Independientes del contexto
Recursividad Ambigedad Asociatividad Precedencia Parentizacin
Estructura
Escritura de casos base
L := id
2+3*5
E
E * E 3 E 5
Problemas
E E E E
:= := := :=
Reglas de ambigedad
Gramticas con ciclos {S := A, S := a, A := S} Reglas de la forma {E := EE} Caminos alternativos {S := A, S := B, A := B} Recursivas con en casos base {S:=HRS, S:=s,H:=h|, R:=r|} No terminales que derivan en {S:= HR, H:= h|, H:= h|}
Tipos
Asociatividad a izquierdas Asociatividad a derechas
Expresin gramatical
Recursin a izquierdas -> Asociatividad a izquierdas Recursin a derechas -> Asociatividad a derechas
Expresin gramatical
Utilizar un no terminal por cada operador de precedencia Ubicar las reglas de produccin referentes a los operadores de menor precedencia ms cercanos al axioma de la gramtica
Expresin gramatical
Utilizar un no terminal para expresiones entre parntesis Aadir los operandos Ubicarla a la mxima distancia del axioma
E := T := F := E+T|ET F*T |F/T ( E ) | id |T |F |n
ndice General
Introduccin rboles de anlisis sintctico Especificacin de un analizador sintctico Tipos de analizadores sintcticos
Analizadores generales Analizadores sintcticos descendentes Analizadores sintcticos ascendentes
O (n) Gramtica LL
O (n) Gramtica LR
Bibliografa
[AJO] AHO, SETHI, ULLMAN: Compiladores: Principios, tcnicas y herramientas,: Addison-Wesley Iberoamericana, 1990
[GARRIDO]
Bibliografa
[Alfonseca] M. Alfonseca, J. Sancho, M. Martnez. Coleccin Textos de Ctedra.