SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4
Procesadores de
Procesadores de
Lenguajes
Lenguajes
Tema 4
Tema 4
An
Aná
álisis sint
lisis sintá
áctico
ctico
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4
Tema 4
Tema 4 –
– An
Aná
álisis
lisis
Sint
Sintá
áctico
ctico
Sesi
Sesió
ón 1: Conceptos b
n 1: Conceptos bá
ásicos del
sicos del
an
aná
álisis sint
lisis sintá
áctico
ctico
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 3
3
Sesi
Sesió
ón 1: Conceptos b
n 1: Conceptos bá
ásicos
sicos
del an
del aná
álisis sint
lisis sintá
áctico
ctico
„
„ Generalidades:
Generalidades:
–
– El an
El aná
álisis sint
lisis sintá
áctico en contexto
ctico en contexto
–
– ¿
¿Por qu
Por qué
é separar an
separar aná
álisis l
lisis lé
éxico y sint
xico y sintá
áctico?
ctico?
–
– En qu
En qué
é consiste el an
consiste el aná
álisis sint
lisis sintá
áctico
ctico
–
– Tipos de analizadores sint
Tipos de analizadores sintá
ácticos
cticos
„
„ An
Aná
álisis sint
lisis sintá
áctico descendente
ctico descendente
„
„ An
Aná
álisis sint
lisis sintá
áctico ascendente
ctico ascendente
–
– Á
Árboles de derivaci
rboles de derivació
ón y
n y parses
parses (con ejemplo)
(con ejemplo)
–
– El analizador sint
El analizador sintá
áctico como traductor
ctico como traductor
„
„ Dise
Diseñ
ño de alto nivel:
o de alto nivel:
–
– Estrategias para el an
Estrategias para el aná
álisis sint
lisis sintá
áctico
ctico
„
„ Eficiencia de analizadores sint
Eficiencia de analizadores sintá
ácticos
cticos
–
– Tipos de gram
Tipos de gramá
áticas para el an
ticas para el aná
álisis sint
lisis sintá
áctico
ctico
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 4
4
Fase de an
Fase de aná
álisis
lisis
El an
El aná
álisis sint
lisis sintá
áctico en
ctico en
contexto (I)
contexto (I)
An
Aná
álisis
lisis
l
lé
éxico
xico
An
Aná
álisis
lisis
sint
sintá
áctico
ctico
An
Aná
álisis
lisis
sem
semá
ántico
ntico
Programa
Programa
fuente
fuente
Programa
Programa
objeto
objeto
Fase de s
Fase de sí
íntesis
ntesis
Generaci
Generació
ón de
n de
c
có
ódigo
digo
intermedio
intermedio
Optimizaci
Optimizació
ón
n
de c
de có
ódigo
digo
intermedio
intermedio
Generaci
Generació
ón de
n de
c
có
ódigo
digo
m
má
áquina
quina
Optimizaci
Optimizació
ón
n
de c
de có
ódigo
digo
m
má
áquina
quina
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 5
5
El an
El aná
álisis sint
lisis sintá
áctico en
ctico en
contexto (II)
contexto (II)
Analizador
léxico
Analizador
sintáctico
Tabla de símbolos
token
Dame el
siguiente token
Mensajes
de error
Analizador
semántico
Árbol sintáctico o
secuencia de elementos
sintácticos
OK / error
Error semántico
Error léxico
Error sintáctico
Inserta(entrada, atributo, valor)
Consulta(entrada, atributo, valor)
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 6
6
¿
¿Por qu
Por qué
é separar an
separar aná
álisis
lisis
l
lé
éxico y sint
xico y sintá
áctico?
ctico?
„
„ Se simplifica el dise
Se simplifica el diseñ
ño del analizador sint
o del analizador sintá
áctico:
ctico:
–
– No ha de preocuparse de leer el fichero de entrada, ni procesar
No ha de preocuparse de leer el fichero de entrada, ni procesar
blancos, ni comentarios, ni de recibir caracteres inesperados.
blancos, ni comentarios, ni de recibir caracteres inesperados.
„
„ El dise
El diseñ
ño general del compilador se hace m
o general del compilador se hace má
ás claro y
s claro y
comprensible.
comprensible.
„
„ Se mejora la eficiencia del compilador en su conjunto:
Se mejora la eficiencia del compilador en su conjunto:
–
– La lectura del programa fuente suele requerir gran parte del
La lectura del programa fuente suele requerir gran parte del
tiempo de compilaci
tiempo de compilació
ón, que se ve reducido si el analizador
n, que se ve reducido si el analizador
lexicogr
lexicográ
áfico incorpora t
fico incorpora té
écnicas especiales de lectura, o est
cnicas especiales de lectura, o está
á
realizado en ensamblador.
realizado en ensamblador.
„
„ Aumenta la portabilidad del compilador:
Aumenta la portabilidad del compilador:
–
– Abstrae al resto del compilador de todas las diferencias que se
Abstrae al resto del compilador de todas las diferencias que se
produzcan en el alfabeto de entrada, o en el dispositivo de
produzcan en el alfabeto de entrada, o en el dispositivo de
almacenamiento (por ejemplo: migrar de programas fuente en
almacenamiento (por ejemplo: migrar de programas fuente en
ASCII al est
ASCII al está
ándar EBCDIC).
ndar EBCDIC).
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 7
7
En qu
En qué
é consiste el an
consiste el aná
álisis
lisis
sint
sintá
áctico
ctico
„
„ Analizar
Analizar sint
sintá
ácticamente
cticamente una cadena de
una cadena de tokens
tokens no
no
es m
es má
ás que encontrar para ella el
s que encontrar para ella el á
árbol sint
rbol sintá
áctico o
ctico o
la cadena de derivaci
la cadena de derivació
ón que tiene:
n que tiene:
–
– como ra
como raí
íz, el axioma de la gram
z, el axioma de la gramá
ática,
tica,
–
– como nodos terminales, la sucesi
como nodos terminales, la sucesió
ón ordenada de s
n ordenada de sí
ímbolos
mbolos
que componen la cadena analizada.
que componen la cadena analizada.
„
„ En caso de no existir este
En caso de no existir este á
árbol sint
rbol sintá
áctico (o la
ctico (o la
cadena de derivaciones), la cadena de
cadena de derivaciones), la cadena de tokens
tokens no
no
pertenecer
pertenecerá
á al lenguaje, y el analizador sint
al lenguaje, y el analizador sintá
áctico
ctico
ha de emitir el correspondiente mensaje de error.
ha de emitir el correspondiente mensaje de error.
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 8
8
Tipos de analizadores
Tipos de analizadores
sint
sintá
ácticos
cticos
„
„ Analizadores descendentes:
Analizadores descendentes:
–
– Partiendo de la ra
Partiendo de la raí
íz del
z del á
árbol (el axioma inicial de la
rbol (el axioma inicial de la
gram
gramá
ática), construyen el
tica), construyen el á
árbol sint
rbol sintá
áctico de an
ctico de aná
álisis
lisis
(descendiendo) hacia sus nodos terminales; para
(descendiendo) hacia sus nodos terminales; para
ello, se utilizan derivaciones por la izquierda, hasta
ello, se utilizan derivaciones por la izquierda, hasta
llegar a reconocer (salvo error) la cadena analizada.
llegar a reconocer (salvo error) la cadena analizada.
„
„ Analizadores ascendentes:
Analizadores ascendentes:
–
– Partiendo de sus nodos terminales (la cadena de
Partiendo de sus nodos terminales (la cadena de
tokens
tokens), construyen el
), construyen el á
árbol sint
rbol sintá
áctico de an
ctico de aná
álisis
lisis
(ascendiendo) hacia su ra
(ascendiendo) hacia su raí
íz (el axioma inicial de la
z (el axioma inicial de la
gram
gramá
ática); para ello, se utilizan derivaciones por la
tica); para ello, se utilizan derivaciones por la
derecha hasta llegar a reconocer (salvo error) la
derecha hasta llegar a reconocer (salvo error) la
cadena analizada.
cadena analizada.
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 9
9
Á
Árboles de derivaci
rboles de derivació
ón y
n y
parses
parses
„
„ Para representar el
Para representar el á
árbol sint
rbol sintá
áctico que conduce hasta una
ctico que conduce hasta una
cadena, se asigna a cada regla de la gram
cadena, se asigna a cada regla de la gramá
ática un n
tica un nú
úmero.
mero.
„
„ Parse
Parse:
:
–
– Secuencia ordenada de los n
Secuencia ordenada de los nú
úmeros de las reglas aplicadas para
meros de las reglas aplicadas para
construir el
construir el á
árbol de derivaci
rbol de derivació
ón de la cadena de
n de la cadena de tokens
tokens de
de
entrada.
entrada.
–
– Parse
Parse izquierdo
izquierdo:
:
„
„ Son los n
Son los nú
úmeros de las reglas de derivaci
meros de las reglas de derivació
ón izquierda utilizadas para
n izquierda utilizadas para
generar la cadena a partir del axioma
generar la cadena a partir del axioma –
– recorrido del
recorrido del á
árbol en
rbol en
preorden
preorden (usado en
(usado en an
aná
álisis descendente
lisis descendente).
).
–
– Parse
Parse derecho
derecho:
:
„
„ Son los n
Son los nú
úmeros de las reglas de derivaci
meros de las reglas de derivació
ón derecha utilizadas para
n derecha utilizadas para
generar la cadena a partir del axioma (recorrido del
generar la cadena a partir del axioma (recorrido del á
árbol en
rbol en
postorden
postorden) en orden inverso. El tomar el orden inverso viene
) en orden inverso. El tomar el orden inverso viene
condicionado por ser el
condicionado por ser el an
aná
álisis ascendente
lisis ascendente el que normalmente
el que normalmente
utiliza las reglas de derivaci
utiliza las reglas de derivació
ón derecha, con lo que el orden en el que
n derecha, con lo que el orden en el que
aparecen al realizar el an
aparecen al realizar el aná
álisis es
lisis es invertido
invertido.
.
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 10
10
Á
Árboles de derivaci
rboles de derivació
ón y
n y
parses
parses : ejemplo
: ejemplo
„
„ Dada la gram
Dada la gramá
ática:
tica:
1.
1. E
E o
o T
T
2.
2. E
E o
o T+E
T+E
3.
3. T
T o
o F
F
4.
4. T
T o
o F*T
F*T
5.
5. F
F o
o a
a
6.
6. F
F o
o b
b
7.
7. F
F o
o (E)
(E)
„
„ y la sentencia:
y la sentencia:
–
– a*(a+b)
a*(a+b)
„
„ El
El parse
parse izquierdo es:
izquierdo es:
–
– 1
1-
-4
4-
-5
5-
-3
3-
-7
7-
-2
2-
-3
3-
-5
5-
-1
1-
-3
3-
-6
6
„
„ y el derecho:
y el derecho:
–
– 5
5-
-5
5-
-3
3-
-6
6-
-3
3-
-1
1-
-2
2-
-7
7-
-3
3-
-4
4-
-1
1
E
E
T
T
T
T
*
*
F
F
a
a F
F
)
)
E
E
(
(
E
E
+
+
T
T
T
T
F
F
a
a
b
b
1
1
3
3
4
4
5
5
7
7
2
2
3
3
5
5
1
1
3
3
6
6
F
F
E
E
T
T
T
T
*
*
F
F
a
a F
F
)
)
E
E
(
(
E
E
+
+
T
T
T
T
F
F
a
a
b
b
1
1
3
3
4
4
5
5
7
7
2
2
3
3
5
5
1
1
3
3
6
6
F
F
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 11
11
El analizador sint
El analizador sintá
áctico
ctico
como traductor (I)
como traductor (I)
„
„ Traduce la cadena de
Traduce la cadena de tokens
tokens del fichero de entrada
del fichero de entrada
(programa fuente) a una estructura que la
(programa fuente) a una estructura que la
represente desde un punto de vista sint
represente desde un punto de vista sintá
áctico:
ctico:
–
– Á
Árbol sint
rbol sintá
áctico (did
ctico (didá
ácticamente, muy
cticamente, muy ú
útil; en la pr
til; en la prá
áctica,
ctica,
poco eficiente).
poco eficiente).
–
– Secuencia de reglas usadas para reconocer (analizar)
Secuencia de reglas usadas para reconocer (analizar)
sint
sintá
ácticamente
cticamente la cadena de entrada (
la cadena de entrada (parse
parse).
).
–
– Vertebrando,
Vertebrando, mediante su propio c
mediante su propio có
ódigo
digo, el resto de
, el resto de
tareas del compilador, excepto la de generaci
tareas del compilador, excepto la de generació
ón de c
n de có
ódigo
digo
final (m
final (má
áquina)
quina) –
– traducci
traducció
ón dirigida por la sintaxis (TDS).
n dirigida por la sintaxis (TDS).
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 12
12
Traductor dirigido por la sintaxis
(TDS)
El analizador sint
El analizador sintá
áctico
ctico
como traductor (II)
como traductor (II)
Analizador
léxico
Tabla de símbolos
Mensajes de
error
Analizador sintáctico
Generador de
código
intermedio
Analizador
semántico
Generador de
código
máquina
token
Dame el
siguiente token
Inserta (entrada,
atributo, valor)
Consulta (entrada,
atributo, valor)
Código
intermedio
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 13
13
Estrategias de an
Estrategias de aná
álisis
lisis
sint
sintá
áctico (I)
ctico (I)
„
„ Propiedades deseables en un analizador
Propiedades deseables en un analizador
sint
sintá
áctico:
ctico:
–
– Eficiencia
Eficiencia Ÿ
Ÿ minimizar:
minimizar:
„
„ Su coste:
Su coste:
–
– Temporal
Temporal
–
– De memoria, aunque este criterio sea secundario.
De memoria, aunque este criterio sea secundario.
„
„ La dimensi
La dimensió
ón (
n (k
k) de la ventana de
) de la ventana de tokens
tokens que se
que se
considera en cada momento (
considera en cada momento (prean
preaná
álisis
lisis)
)
–
– Ausencia de retrocesos (
Ausencia de retrocesos (backtracking
backtracking)
)
„
„ Las acciones sem
Las acciones semá
ánticas son dif
nticas son difí
íciles de deshacer
ciles de deshacer
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 14
14
Estrategias de an
Estrategias de aná
álisis
lisis
sint
sintá
áctico (II)
ctico (II)
„
„ Eficiencia de analizadores sint
Eficiencia de analizadores sintá
ácticos:
cticos:
–
– Si
Si n
n es el n
es el nú
úmero de
mero de tokens
tokens del programa
del programa
fuente:
fuente:
„
„ Para cualquier gram
Para cualquier gramá
ática de contexto libre:
tica de contexto libre:
–
– Se puede construir un analizador sint
Se puede construir un analizador sintá
áctico de
ctico de
complejidad
complejidad O(n
O(n3
3)
) Ÿ
Ÿ muy costoso
muy costoso
„
„ Los lenguajes inform
Los lenguajes informá
áticos, en general, se dise
ticos, en general, se diseñ
ñan con
an con
reglas de contexto libre que permitan su an
reglas de contexto libre que permitan su aná
álisis
lisis
sint
sintá
áctico mediante un algoritmo lineal (
ctico mediante un algoritmo lineal (O(n
O(n)
) ):
):
–
– Mediante el an
Mediante el aná
álisis de izquierda a derecha de la entrada
lisis de izquierda a derecha de la entrada
–
– Considerando un
Considerando un ú
único
nico token
token en cada momento
en cada momento
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 15
15
Estrategias de an
Estrategias de aná
álisis
lisis
sint
sintá
áctico (III)
ctico (III)
k
k
k
k
Dimensi
Dimensió
ón de la ventana
n de la ventana
de
de tokens
tokens de
de prean
preaná
álisis
lisis
(
(look
look-
-ahead
ahead)
)
Ascendente
Ascendente
Descendente
Descendente
Tipo de analizador
Tipo de analizador
Rightmost
Rightmost derivation
derivation (R)
(R)
(por la derecha)
(por la derecha)
Leftmost
Leftmost derivation
derivation (L)
(L)
(por la izquierda)
(por la izquierda)
Tipo de derivaci
Tipo de derivació
ón
n
realizada
realizada
Left
Left-
-to
to-
-right
right (L)
(L)
(de izquierda a derecha)
(de izquierda a derecha)
Left
Left-
-to
to-
-right
right (L)
(L)
(de izquierda a derecha)
(de izquierda a derecha)
Direcci
Direcció
ón de lectura de
n de lectura de
los
los tokens
tokens
LR(K
LR(K)
)
LL(K
LL(K)
)
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 16
16
Tipos de lenguajes formales
Tipos de lenguajes formales
para el an
para el aná
álisis sint
lisis sintá
áctico
ctico
Lenguajes de contexto libre
Lenguajes de contexto libre
deterministas
deterministas
Lenguajes
Lenguajes LR(k
LR(k)
)
Lenguajes de Precedencia
Lenguajes de Precedencia
Simple
Simple
Lenguajes
Lenguajes LR(1)
LR(1)
Lenguajes
Lenguajes LL(k
LL(k)
)
Lenguajes de Precedencia de
Lenguajes de Precedencia de
Operador
Operador
Lenguajes
Lenguajes LL(1)
LL(1)
Lenguajes
Lenguajes SLR(1)
SLR(1)
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 17
17
Tipos de analizadores
Tipos de analizadores
sint
sintá
ácticos
cticos
„
„ Analizador descendente:
Analizador descendente:
–
– Analizador descendente recursivo:
Analizador descendente recursivo:
„
„ Con retroceso
Con retroceso
„
„ Sin retroceso (predictivo)
Sin retroceso (predictivo)
–
– Analizador descendente no recursivo predictivo (
Analizador descendente no recursivo predictivo ({
{ tabular):
tabular):
„
„ Analizador
Analizador LL(K
LL(K)
)
–
– Analizador
Analizador LL(1)
LL(1)
„
„ Analizador ascendente:
Analizador ascendente:
–
– Analizador ascendente con retroceso
Analizador ascendente con retroceso
–
– Analizador de gram
Analizador de gramá
áticas de precedencia simple
ticas de precedencia simple
–
– Analizador de gram
Analizador de gramá
áticas de precedencia de operador
ticas de precedencia de operador
–
– Analizador
Analizador LR(K
LR(K)
)
„
„ Analizadores
Analizadores LR(1)
LR(1)
–
– Analizadores
Analizadores SLR(1)
SLR(1)
Curso 2007/2008
Curso 2007/2008 Antonio Pareja Lora
Antonio Pareja Lora PP.LL
PP.LL.
. –
– Tema 4
Tema 4 –
– 18
18
Bibliograf
Bibliografí
ía
a
„
„ Aho
Aho, A. V.;
, A. V.; Sethi
Sethi, R.;
, R.; Ullman
Ullman, J. D.:
, J. D.: Compilers:
Compilers:
Principles, Techniques and Tools
Principles, Techniques and Tools.
. Massachusetts:
Massachusetts:
Addison
Addison-
-Wesley Publishing Company, 1986.
Wesley Publishing Company, 1986.
„
„ Alfonseca
Alfonseca Cubero, E.;
Cubero, E.; Alfonseca
Alfonseca Moreno, M.;
Moreno, M.;
Moriy
Moriyó
ón
n Salom
Salomó
ón, R. Teor
n, R. Teorí
ía de aut
a de autó
ómatas y
matas y
lenguajes formales. Madrid:
lenguajes formales. Madrid: Mc
Mc-
-Graw
Graw-
-
Hill/Interamericana de Espa
Hill/Interamericana de Españ
ña,
a, S.A.U
S.A.U., 2007.
., 2007.
„
„ Grogono
Grogono, P. Programaci
, P. Programació
ón en Pascal. Wilmington,
n en Pascal. Wilmington,
Delaware (EE.UU.):Addison
Delaware (EE.UU.):Addison-
-Wesley
Wesley
Iberoamericana, 1996.
Iberoamericana, 1996.
„
„ Sanch
Sanchí
ís
s Llorca
Llorca, F. J. y Gal
, F. J. y Galá
án Pascual, C.
n Pascual, C.
Compiladores: Teor
Compiladores: Teorí
ía y construcci
a y construcció
ón. Madrid:
n. Madrid:
Editorial Paraninfo, 1986.
Editorial Paraninfo, 1986.

Más contenido relacionado

Similar a 1_1Analisis_Sintactico_-_Introduccion.pdf

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexicoJhampier_Piedra
 
Cap6
Cap6Cap6
Cap6CJAO
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores SintácticosBryant Arellano
 

Similar a 1_1Analisis_Sintactico_-_Introduccion.pdf (7)

Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Cap6
Cap6Cap6
Cap6
 
4.asll1
4.asll14.asll1
4.asll1
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Analizadores Sintácticos
Analizadores SintácticosAnalizadores Sintácticos
Analizadores Sintácticos
 

Último

Ciclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxCiclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxUniversidad de Guayaquil
 
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRAPROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRAJaime Cruz Diaz
 
FORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIA
FORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIAFORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIA
FORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIACesarCastilloHernand
 
Presentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdfPresentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdflisCuenca
 
Morfología interna de insectos, respiración, circulación, nutrición, reproduc...
Morfología interna de insectos, respiración, circulación, nutrición, reproduc...Morfología interna de insectos, respiración, circulación, nutrición, reproduc...
Morfología interna de insectos, respiración, circulación, nutrición, reproduc...jacksyordoez
 
TERRENO DE FUNDACION - CURSO DE PAVIMENTOS
TERRENO DE FUNDACION - CURSO DE PAVIMENTOSTERRENO DE FUNDACION - CURSO DE PAVIMENTOS
TERRENO DE FUNDACION - CURSO DE PAVIMENTOSELIAS RAMIREZ JUAREZ
 
368165951-Procedimiento-de-Gruas-e-Izaje.doc
368165951-Procedimiento-de-Gruas-e-Izaje.doc368165951-Procedimiento-de-Gruas-e-Izaje.doc
368165951-Procedimiento-de-Gruas-e-Izaje.docangelmt2
 
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptxREGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptxJhonLeon59
 
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptxMETRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptxEdwardRodriguezPalom1
 
Tema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfseTema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfseyohepirell
 
UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxElybe Hernandez
 
bombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos Petrólerosbombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos PetrólerosEstefannyMedrano1
 
Escenario económico - Desarrollo sustentable
Escenario económico - Desarrollo sustentableEscenario económico - Desarrollo sustentable
Escenario económico - Desarrollo sustentableJosPealoza7
 
Diseno de Estructuras de Acero - 5ta Ed - McCormac.pdf
Diseno de Estructuras de Acero - 5ta Ed - McCormac.pdfDiseno de Estructuras de Acero - 5ta Ed - McCormac.pdf
Diseno de Estructuras de Acero - 5ta Ed - McCormac.pdfEdwinHurtado31
 
CICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptx
CICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptxCICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptx
CICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptxsalvadormejia14
 
Responsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptxResponsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptxROSARIODELPILARMERIN
 
TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para Peligros...
TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para  Peligros...TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para  Peligros...
TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para Peligros...ORLNDO1
 
Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793Camposol S. A.
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...FRANCISCOJUSTOSIERRA
 

Último (20)

Litio en México y su uso en baterías
Litio en México y su uso en bateríasLitio en México y su uso en baterías
Litio en México y su uso en baterías
 
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxCiclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
 
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRAPROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
 
FORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIA
FORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIAFORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIA
FORMATO PARA CONTROL DE CALIDAD DE PRODUCTOS VARIOS EN INGENIERIA ALIMENTARIA
 
Presentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdfPresentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdf
 
Morfología interna de insectos, respiración, circulación, nutrición, reproduc...
Morfología interna de insectos, respiración, circulación, nutrición, reproduc...Morfología interna de insectos, respiración, circulación, nutrición, reproduc...
Morfología interna de insectos, respiración, circulación, nutrición, reproduc...
 
TERRENO DE FUNDACION - CURSO DE PAVIMENTOS
TERRENO DE FUNDACION - CURSO DE PAVIMENTOSTERRENO DE FUNDACION - CURSO DE PAVIMENTOS
TERRENO DE FUNDACION - CURSO DE PAVIMENTOS
 
368165951-Procedimiento-de-Gruas-e-Izaje.doc
368165951-Procedimiento-de-Gruas-e-Izaje.doc368165951-Procedimiento-de-Gruas-e-Izaje.doc
368165951-Procedimiento-de-Gruas-e-Izaje.doc
 
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptxREGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
 
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptxMETRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
 
Tema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfseTema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfse
 
UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptx
 
bombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos Petrólerosbombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos Petróleros
 
Escenario económico - Desarrollo sustentable
Escenario económico - Desarrollo sustentableEscenario económico - Desarrollo sustentable
Escenario económico - Desarrollo sustentable
 
Diseno de Estructuras de Acero - 5ta Ed - McCormac.pdf
Diseno de Estructuras de Acero - 5ta Ed - McCormac.pdfDiseno de Estructuras de Acero - 5ta Ed - McCormac.pdf
Diseno de Estructuras de Acero - 5ta Ed - McCormac.pdf
 
CICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptx
CICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptxCICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptx
CICLO OTTO PARA MOTORES DE DOS Y CUATRO TIEMPOS CON EJEMPLOS.pptx
 
Responsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptxResponsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptx
 
TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para Peligros...
TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para  Peligros...TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para  Peligros...
TRABAJO SEGURO - Comportamientos que Salvan Vidas y Protocolos para Peligros...
 
Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 20.5 PREFERIDO.wbk.wbk SEG...
 

1_1Analisis_Sintactico_-_Introduccion.pdf

  • 1. Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 Procesadores de Procesadores de Lenguajes Lenguajes Tema 4 Tema 4 An Aná álisis sint lisis sintá áctico ctico Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 Tema 4 Tema 4 – – An Aná álisis lisis Sint Sintá áctico ctico Sesi Sesió ón 1: Conceptos b n 1: Conceptos bá ásicos del sicos del an aná álisis sint lisis sintá áctico ctico Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 3 3 Sesi Sesió ón 1: Conceptos b n 1: Conceptos bá ásicos sicos del an del aná álisis sint lisis sintá áctico ctico „ „ Generalidades: Generalidades: – – El an El aná álisis sint lisis sintá áctico en contexto ctico en contexto – – ¿ ¿Por qu Por qué é separar an separar aná álisis l lisis lé éxico y sint xico y sintá áctico? ctico? – – En qu En qué é consiste el an consiste el aná álisis sint lisis sintá áctico ctico – – Tipos de analizadores sint Tipos de analizadores sintá ácticos cticos „ „ An Aná álisis sint lisis sintá áctico descendente ctico descendente „ „ An Aná álisis sint lisis sintá áctico ascendente ctico ascendente – – Á Árboles de derivaci rboles de derivació ón y n y parses parses (con ejemplo) (con ejemplo) – – El analizador sint El analizador sintá áctico como traductor ctico como traductor „ „ Dise Diseñ ño de alto nivel: o de alto nivel: – – Estrategias para el an Estrategias para el aná álisis sint lisis sintá áctico ctico „ „ Eficiencia de analizadores sint Eficiencia de analizadores sintá ácticos cticos – – Tipos de gram Tipos de gramá áticas para el an ticas para el aná álisis sint lisis sintá áctico ctico Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 4 4 Fase de an Fase de aná álisis lisis El an El aná álisis sint lisis sintá áctico en ctico en contexto (I) contexto (I) An Aná álisis lisis l lé éxico xico An Aná álisis lisis sint sintá áctico ctico An Aná álisis lisis sem semá ántico ntico Programa Programa fuente fuente Programa Programa objeto objeto Fase de s Fase de sí íntesis ntesis Generaci Generació ón de n de c có ódigo digo intermedio intermedio Optimizaci Optimizació ón n de c de có ódigo digo intermedio intermedio Generaci Generació ón de n de c có ódigo digo m má áquina quina Optimizaci Optimizació ón n de c de có ódigo digo m má áquina quina
  • 2. Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 5 5 El an El aná álisis sint lisis sintá áctico en ctico en contexto (II) contexto (II) Analizador léxico Analizador sintáctico Tabla de símbolos token Dame el siguiente token Mensajes de error Analizador semántico Árbol sintáctico o secuencia de elementos sintácticos OK / error Error semántico Error léxico Error sintáctico Inserta(entrada, atributo, valor) Consulta(entrada, atributo, valor) Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 6 6 ¿ ¿Por qu Por qué é separar an separar aná álisis lisis l lé éxico y sint xico y sintá áctico? ctico? „ „ Se simplifica el dise Se simplifica el diseñ ño del analizador sint o del analizador sintá áctico: ctico: – – No ha de preocuparse de leer el fichero de entrada, ni procesar No ha de preocuparse de leer el fichero de entrada, ni procesar blancos, ni comentarios, ni de recibir caracteres inesperados. blancos, ni comentarios, ni de recibir caracteres inesperados. „ „ El dise El diseñ ño general del compilador se hace m o general del compilador se hace má ás claro y s claro y comprensible. comprensible. „ „ Se mejora la eficiencia del compilador en su conjunto: Se mejora la eficiencia del compilador en su conjunto: – – La lectura del programa fuente suele requerir gran parte del La lectura del programa fuente suele requerir gran parte del tiempo de compilaci tiempo de compilació ón, que se ve reducido si el analizador n, que se ve reducido si el analizador lexicogr lexicográ áfico incorpora t fico incorpora té écnicas especiales de lectura, o est cnicas especiales de lectura, o está á realizado en ensamblador. realizado en ensamblador. „ „ Aumenta la portabilidad del compilador: Aumenta la portabilidad del compilador: – – Abstrae al resto del compilador de todas las diferencias que se Abstrae al resto del compilador de todas las diferencias que se produzcan en el alfabeto de entrada, o en el dispositivo de produzcan en el alfabeto de entrada, o en el dispositivo de almacenamiento (por ejemplo: migrar de programas fuente en almacenamiento (por ejemplo: migrar de programas fuente en ASCII al est ASCII al está ándar EBCDIC). ndar EBCDIC). Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 7 7 En qu En qué é consiste el an consiste el aná álisis lisis sint sintá áctico ctico „ „ Analizar Analizar sint sintá ácticamente cticamente una cadena de una cadena de tokens tokens no no es m es má ás que encontrar para ella el s que encontrar para ella el á árbol sint rbol sintá áctico o ctico o la cadena de derivaci la cadena de derivació ón que tiene: n que tiene: – – como ra como raí íz, el axioma de la gram z, el axioma de la gramá ática, tica, – – como nodos terminales, la sucesi como nodos terminales, la sucesió ón ordenada de s n ordenada de sí ímbolos mbolos que componen la cadena analizada. que componen la cadena analizada. „ „ En caso de no existir este En caso de no existir este á árbol sint rbol sintá áctico (o la ctico (o la cadena de derivaciones), la cadena de cadena de derivaciones), la cadena de tokens tokens no no pertenecer pertenecerá á al lenguaje, y el analizador sint al lenguaje, y el analizador sintá áctico ctico ha de emitir el correspondiente mensaje de error. ha de emitir el correspondiente mensaje de error. Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 8 8 Tipos de analizadores Tipos de analizadores sint sintá ácticos cticos „ „ Analizadores descendentes: Analizadores descendentes: – – Partiendo de la ra Partiendo de la raí íz del z del á árbol (el axioma inicial de la rbol (el axioma inicial de la gram gramá ática), construyen el tica), construyen el á árbol sint rbol sintá áctico de an ctico de aná álisis lisis (descendiendo) hacia sus nodos terminales; para (descendiendo) hacia sus nodos terminales; para ello, se utilizan derivaciones por la izquierda, hasta ello, se utilizan derivaciones por la izquierda, hasta llegar a reconocer (salvo error) la cadena analizada. llegar a reconocer (salvo error) la cadena analizada. „ „ Analizadores ascendentes: Analizadores ascendentes: – – Partiendo de sus nodos terminales (la cadena de Partiendo de sus nodos terminales (la cadena de tokens tokens), construyen el ), construyen el á árbol sint rbol sintá áctico de an ctico de aná álisis lisis (ascendiendo) hacia su ra (ascendiendo) hacia su raí íz (el axioma inicial de la z (el axioma inicial de la gram gramá ática); para ello, se utilizan derivaciones por la tica); para ello, se utilizan derivaciones por la derecha hasta llegar a reconocer (salvo error) la derecha hasta llegar a reconocer (salvo error) la cadena analizada. cadena analizada.
  • 3. Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 9 9 Á Árboles de derivaci rboles de derivació ón y n y parses parses „ „ Para representar el Para representar el á árbol sint rbol sintá áctico que conduce hasta una ctico que conduce hasta una cadena, se asigna a cada regla de la gram cadena, se asigna a cada regla de la gramá ática un n tica un nú úmero. mero. „ „ Parse Parse: : – – Secuencia ordenada de los n Secuencia ordenada de los nú úmeros de las reglas aplicadas para meros de las reglas aplicadas para construir el construir el á árbol de derivaci rbol de derivació ón de la cadena de n de la cadena de tokens tokens de de entrada. entrada. – – Parse Parse izquierdo izquierdo: : „ „ Son los n Son los nú úmeros de las reglas de derivaci meros de las reglas de derivació ón izquierda utilizadas para n izquierda utilizadas para generar la cadena a partir del axioma generar la cadena a partir del axioma – – recorrido del recorrido del á árbol en rbol en preorden preorden (usado en (usado en an aná álisis descendente lisis descendente). ). – – Parse Parse derecho derecho: : „ „ Son los n Son los nú úmeros de las reglas de derivaci meros de las reglas de derivació ón derecha utilizadas para n derecha utilizadas para generar la cadena a partir del axioma (recorrido del generar la cadena a partir del axioma (recorrido del á árbol en rbol en postorden postorden) en orden inverso. El tomar el orden inverso viene ) en orden inverso. El tomar el orden inverso viene condicionado por ser el condicionado por ser el an aná álisis ascendente lisis ascendente el que normalmente el que normalmente utiliza las reglas de derivaci utiliza las reglas de derivació ón derecha, con lo que el orden en el que n derecha, con lo que el orden en el que aparecen al realizar el an aparecen al realizar el aná álisis es lisis es invertido invertido. . Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 10 10 Á Árboles de derivaci rboles de derivació ón y n y parses parses : ejemplo : ejemplo „ „ Dada la gram Dada la gramá ática: tica: 1. 1. E E o o T T 2. 2. E E o o T+E T+E 3. 3. T T o o F F 4. 4. T T o o F*T F*T 5. 5. F F o o a a 6. 6. F F o o b b 7. 7. F F o o (E) (E) „ „ y la sentencia: y la sentencia: – – a*(a+b) a*(a+b) „ „ El El parse parse izquierdo es: izquierdo es: – – 1 1- -4 4- -5 5- -3 3- -7 7- -2 2- -3 3- -5 5- -1 1- -3 3- -6 6 „ „ y el derecho: y el derecho: – – 5 5- -5 5- -3 3- -6 6- -3 3- -1 1- -2 2- -7 7- -3 3- -4 4- -1 1 E E T T T T * * F F a a F F ) ) E E ( ( E E + + T T T T F F a a b b 1 1 3 3 4 4 5 5 7 7 2 2 3 3 5 5 1 1 3 3 6 6 F F E E T T T T * * F F a a F F ) ) E E ( ( E E + + T T T T F F a a b b 1 1 3 3 4 4 5 5 7 7 2 2 3 3 5 5 1 1 3 3 6 6 F F Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 11 11 El analizador sint El analizador sintá áctico ctico como traductor (I) como traductor (I) „ „ Traduce la cadena de Traduce la cadena de tokens tokens del fichero de entrada del fichero de entrada (programa fuente) a una estructura que la (programa fuente) a una estructura que la represente desde un punto de vista sint represente desde un punto de vista sintá áctico: ctico: – – Á Árbol sint rbol sintá áctico (did ctico (didá ácticamente, muy cticamente, muy ú útil; en la pr til; en la prá áctica, ctica, poco eficiente). poco eficiente). – – Secuencia de reglas usadas para reconocer (analizar) Secuencia de reglas usadas para reconocer (analizar) sint sintá ácticamente cticamente la cadena de entrada ( la cadena de entrada (parse parse). ). – – Vertebrando, Vertebrando, mediante su propio c mediante su propio có ódigo digo, el resto de , el resto de tareas del compilador, excepto la de generaci tareas del compilador, excepto la de generació ón de c n de có ódigo digo final (m final (má áquina) quina) – – traducci traducció ón dirigida por la sintaxis (TDS). n dirigida por la sintaxis (TDS). Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 12 12 Traductor dirigido por la sintaxis (TDS) El analizador sint El analizador sintá áctico ctico como traductor (II) como traductor (II) Analizador léxico Tabla de símbolos Mensajes de error Analizador sintáctico Generador de código intermedio Analizador semántico Generador de código máquina token Dame el siguiente token Inserta (entrada, atributo, valor) Consulta (entrada, atributo, valor) Código intermedio
  • 4. Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 13 13 Estrategias de an Estrategias de aná álisis lisis sint sintá áctico (I) ctico (I) „ „ Propiedades deseables en un analizador Propiedades deseables en un analizador sint sintá áctico: ctico: – – Eficiencia Eficiencia Ÿ Ÿ minimizar: minimizar: „ „ Su coste: Su coste: – – Temporal Temporal – – De memoria, aunque este criterio sea secundario. De memoria, aunque este criterio sea secundario. „ „ La dimensi La dimensió ón ( n (k k) de la ventana de ) de la ventana de tokens tokens que se que se considera en cada momento ( considera en cada momento (prean preaná álisis lisis) ) – – Ausencia de retrocesos ( Ausencia de retrocesos (backtracking backtracking) ) „ „ Las acciones sem Las acciones semá ánticas son dif nticas son difí íciles de deshacer ciles de deshacer Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 14 14 Estrategias de an Estrategias de aná álisis lisis sint sintá áctico (II) ctico (II) „ „ Eficiencia de analizadores sint Eficiencia de analizadores sintá ácticos: cticos: – – Si Si n n es el n es el nú úmero de mero de tokens tokens del programa del programa fuente: fuente: „ „ Para cualquier gram Para cualquier gramá ática de contexto libre: tica de contexto libre: – – Se puede construir un analizador sint Se puede construir un analizador sintá áctico de ctico de complejidad complejidad O(n O(n3 3) ) Ÿ Ÿ muy costoso muy costoso „ „ Los lenguajes inform Los lenguajes informá áticos, en general, se dise ticos, en general, se diseñ ñan con an con reglas de contexto libre que permitan su an reglas de contexto libre que permitan su aná álisis lisis sint sintá áctico mediante un algoritmo lineal ( ctico mediante un algoritmo lineal (O(n O(n) ) ): ): – – Mediante el an Mediante el aná álisis de izquierda a derecha de la entrada lisis de izquierda a derecha de la entrada – – Considerando un Considerando un ú único nico token token en cada momento en cada momento Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 15 15 Estrategias de an Estrategias de aná álisis lisis sint sintá áctico (III) ctico (III) k k k k Dimensi Dimensió ón de la ventana n de la ventana de de tokens tokens de de prean preaná álisis lisis ( (look look- -ahead ahead) ) Ascendente Ascendente Descendente Descendente Tipo de analizador Tipo de analizador Rightmost Rightmost derivation derivation (R) (R) (por la derecha) (por la derecha) Leftmost Leftmost derivation derivation (L) (L) (por la izquierda) (por la izquierda) Tipo de derivaci Tipo de derivació ón n realizada realizada Left Left- -to to- -right right (L) (L) (de izquierda a derecha) (de izquierda a derecha) Left Left- -to to- -right right (L) (L) (de izquierda a derecha) (de izquierda a derecha) Direcci Direcció ón de lectura de n de lectura de los los tokens tokens LR(K LR(K) ) LL(K LL(K) ) Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 16 16 Tipos de lenguajes formales Tipos de lenguajes formales para el an para el aná álisis sint lisis sintá áctico ctico Lenguajes de contexto libre Lenguajes de contexto libre deterministas deterministas Lenguajes Lenguajes LR(k LR(k) ) Lenguajes de Precedencia Lenguajes de Precedencia Simple Simple Lenguajes Lenguajes LR(1) LR(1) Lenguajes Lenguajes LL(k LL(k) ) Lenguajes de Precedencia de Lenguajes de Precedencia de Operador Operador Lenguajes Lenguajes LL(1) LL(1) Lenguajes Lenguajes SLR(1) SLR(1)
  • 5. Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 17 17 Tipos de analizadores Tipos de analizadores sint sintá ácticos cticos „ „ Analizador descendente: Analizador descendente: – – Analizador descendente recursivo: Analizador descendente recursivo: „ „ Con retroceso Con retroceso „ „ Sin retroceso (predictivo) Sin retroceso (predictivo) – – Analizador descendente no recursivo predictivo ( Analizador descendente no recursivo predictivo ({ { tabular): tabular): „ „ Analizador Analizador LL(K LL(K) ) – – Analizador Analizador LL(1) LL(1) „ „ Analizador ascendente: Analizador ascendente: – – Analizador ascendente con retroceso Analizador ascendente con retroceso – – Analizador de gram Analizador de gramá áticas de precedencia simple ticas de precedencia simple – – Analizador de gram Analizador de gramá áticas de precedencia de operador ticas de precedencia de operador – – Analizador Analizador LR(K LR(K) ) „ „ Analizadores Analizadores LR(1) LR(1) – – Analizadores Analizadores SLR(1) SLR(1) Curso 2007/2008 Curso 2007/2008 Antonio Pareja Lora Antonio Pareja Lora PP.LL PP.LL. . – – Tema 4 Tema 4 – – 18 18 Bibliograf Bibliografí ía a „ „ Aho Aho, A. V.; , A. V.; Sethi Sethi, R.; , R.; Ullman Ullman, J. D.: , J. D.: Compilers: Compilers: Principles, Techniques and Tools Principles, Techniques and Tools. . Massachusetts: Massachusetts: Addison Addison- -Wesley Publishing Company, 1986. Wesley Publishing Company, 1986. „ „ Alfonseca Alfonseca Cubero, E.; Cubero, E.; Alfonseca Alfonseca Moreno, M.; Moreno, M.; Moriy Moriyó ón n Salom Salomó ón, R. Teor n, R. Teorí ía de aut a de autó ómatas y matas y lenguajes formales. Madrid: lenguajes formales. Madrid: Mc Mc- -Graw Graw- - Hill/Interamericana de Espa Hill/Interamericana de Españ ña, a, S.A.U S.A.U., 2007. ., 2007. „ „ Grogono Grogono, P. Programaci , P. Programació ón en Pascal. Wilmington, n en Pascal. Wilmington, Delaware (EE.UU.):Addison Delaware (EE.UU.):Addison- -Wesley Wesley Iberoamericana, 1996. Iberoamericana, 1996. „ „ Sanch Sanchí ís s Llorca Llorca, F. J. y Gal , F. J. y Galá án Pascual, C. n Pascual, C. Compiladores: Teor Compiladores: Teorí ía y construcci a y construcció ón. Madrid: n. Madrid: Editorial Paraninfo, 1986. Editorial Paraninfo, 1986.