Está en la página 1de 11

UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA Escuela Tcnica Superior de Ingeniera Informtica Procesadores de Lenguajes

Tema 3
Parte I Anlisis Sintctico

Javier Vlez Reyes jvelez@lsi.uned.es

Javier Vlez Reyes jvelez@lsi.uned.es

Objetivos del Tema


Intruducir el funcionamiento de un A. sintctico Introducir trminos utilizados Presentar la especificacin en forma de gramticas Identificar los tipos de analizadores sintcticos

Javier Vlez Reyes jvelez@lsi.uned.es

ndice General
Introduccin rboles de anlisis sintctico Especificacin de un analizador sintctico Tipos de analizadores sintcticos

Javier Vlez Reyes jvelez@lsi.uned.es

Introduccin
Funcin
Comprobar el orden en que llegan los tokens Construir una representacin del programa fuente Si es sintacticamente incorrecto generar error

fuente

Analizador Analizador Lxico Lxico

SiguienteToken() Token

Analizador Analizador Sintctico Sintctico

Tabla de Tabla de Smbolos Smbolos

Javier Vlez Reyes jvelez@lsi.uned.es

ndice General
Introduccin rboles de anlisis sintctico
rbol Sintctico rbol de Anlisis sintctico Derivaciones
Derivacin por la izquierda Derivacin por la derecha

Frases y formas de frase

Especificacin de un analizador sintctico Tipos de analizadores sintcticos

Javier Vlez Reyes jvelez@lsi.uned.es

rbol sintctico
rbol sintctico
Representacin abstracta Operadores en nodos no terminales Operandos en nodos terminales
rbol sintctico := A := B + C A B + C

Javier Vlez Reyes jvelez@lsi.uned.es

rbol de anlisis sintctico


rbol de anlisis sintctico
Representacin gramatical de una frase No terminales en nodos no terminales Axioma en nodo raz Terminales en nodos terminales
E E E E := := := := E+E E*E n (E) E E + E 2 3 E * E 5

2+3*5

Javier Vlez Reyes jvelez@lsi.uned.es

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)

Javier Vlez Reyes jvelez@lsi.uned.es

Frases y formas de frase


Frase
Una frase de una gramtica G es una coleccin de smbolos terminales obtenidos de la aplicacin de una derivacin mltiple sobre las reglas de G
- (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)

Javier Vlez Reyes jvelez@lsi.uned.es

ndice General
Introduccin rboles de anlisis sintctico Especificacin de un analizador sintctico
Especificacin formal Gramticas Independientes del contexto
Recursividad Ambigedad Asociatividad Precedencia Parentizacin

Tipos de analizadores sintcticos

Javier Vlez Reyes jvelez@lsi.uned.es

Especificacin de analizador sintctico


Especificacin formal
Gramticas Independientes del contexto Lenguajes Independientes del contexto Autmatas a pila
Gramticas Gramticas Independientes Independientes del contexto del contexto ISOMORFO ISOMORFO Autmatas Autmatas A Pila A Pila

Lenguajes Lenguajes Independientes Independientes del contexto del contexto

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto I


Gramtica Independiente del contexto
Un conjunto de smbolos no terminales {A, B, C, S} Un conjunto de smbolos terminales {a, b, c, } Un smbolo no terminal, llamado axioma S Un conjunto de reglas de produccin de la forma A :=
G = { N, T, S, P} N = { S, L} T = { id, , } P = { S := L, L := L , id L := id }

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto II


Recursividad
Permite definir estructuras sintcticas complejas utilizando un nmero pequeo de reglas de produccin

Estructura
Escritura de casos base
L := id

Escritura de casos recursivos


S := L := L L , id

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto III


Ambigedad
G es ambigua si el lenguaje que define contiene alguna frase para la que exista ms de un rbol de anlisis sintctico para G
E E 2 + E 3 E E 5 E 2

2+3*5
E

E * E 3 E 5

Problemas

E E E E

:= := := :=

E+E E*E n (E)

La frase puede significar cosas diferentes No es eficiente construir analizadores ambiguos

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto IV


No Ambigedad
Slo un rbol de anlisis sintctico por cada frase Es difcil reconocer la no ambigedad

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|}

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto V


Asociatividad
La asociatividad de un operador binario define cmo se operan tres o ms operandos con dicho operador

Tipos
Asociatividad a izquierdas Asociatividad a derechas

A#B#C#D = ((A#B)#C)#D A#B#C#D = A#(B#(C#D))

Expresin gramatical
Recursin a izquierdas -> Asociatividad a izquierdas Recursin a derechas -> Asociatividad a derechas

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto VI


Precedencia
Especifica el orden relativo de cada operador con respecto a los dems operadores. El operador de ms precedencia se evala antes que el de menor precedencia
(A#B)&C A#B&C A#(B&C) SI & < # SI # < &

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

Javier Vlez Reyes jvelez@lsi.uned.es

G. independientes del contexto VII


Parentizacin
Siempre tienen la mxima precedencia Alteran la precedencia de operadores Alteran la asociatividad de operadores

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

Javier Vlez Reyes jvelez@lsi.uned.es

ndice General
Introduccin rboles de anlisis sintctico Especificacin de un analizador sintctico Tipos de analizadores sintcticos
Analizadores generales Analizadores sintcticos descendentes Analizadores sintcticos ascendentes

Javier Vlez Reyes jvelez@lsi.uned.es

Tipos de analizadores sintcticos


Analizadores Generales
O (n3) Cualquier gramtica

Analizadores Sintcticos Analizadores Deterministas

Analizadores Sintcticos Descendentes Analizadores Sintcticos Ascendentes

O (n) Gramtica LL

O (n) Gramtica LR

Javier Vlez Reyes jvelez@lsi.uned.es

Bibliografa
[AJO] AHO, SETHI, ULLMAN: Compiladores: Principios, tcnicas y herramientas,: Addison-Wesley Iberoamericana, 1990

[GARRIDO]

A. Garrido, J. Iesta, F. Moreno y J. Prez. 2002. Diseo de compiladores. Universidad de Alicante.

Javier Vlez Reyes jvelez@lsi.uned.es

Bibliografa
[Alfonseca] M. Alfonseca, J. Sancho, M. Martnez. Coleccin Textos de Ctedra.

Teora de Lenguajes, Gramticas y Autmatas. Publicaciones R.A.E.C.

También podría gustarte