Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguajes y Automatas II Unidad I Sem 2 2013 1
Lenguajes y Automatas II Unidad I Sem 2 2013 1
MATERIA: LENGUAJES Y
AUTMATAS II
Dra. Miriam Martnez Arroyo
Introduccin
INTRODUCCIN
Anlisis Sintctico
Detecta entradas con rboles mal formados.
Anlisis Semntico
Detecta todos los errores restantes
Introduccin
19/09/2013
10
uso
11
12
variables,
funciones,
tipos,
parmetros y
mtodos de paso de parmetros en funciones,
Etc.
19/09/2013
14
1.1.-ARBOL DE EXPRESIONES
13
15
16
17
rboles de expresin
18
(A* B) + C * D + E
*
C
3.- Las hojas estn representadas por los operandos y los nodos
por la raz de cada rbol.
19/09/2013
19
20
21
22
23
24
*
+
12
Ejemplo:
x=(x+y)*(a-b)
19/09/2013
25
26
27
28
29
30
19/09/2013
31
32
http://www.esdebian.org/wiki/interpretprete-funciones-mediante-arbol-binario-expresiones
33
34
35
36
19/09/2013
37
38
39
las
40
acciones
Continuacin
41
42
19/09/2013
Continuacin
Constantes: comprobar que no se utilicen en la parte
izquierda de una asignacin.
43
45
46
mbito en lenguajes OO
44
mbitos
47
Ms sobre mbito
48
19/09/2013
49
Procesa un nodo n
Procesa los hijos de n
Finaliza procesando el nodo n
50
51
Tipos
Qu es un tipo?
La nocin vara de lenguaje a lenguaje.
Consenso
Un conjunto de valores
Un conjunto de operadores sobre los valores
52
53
Tipos y operaciones
54
19/09/2013
Sistema de tipos
Un sistema de tipos de un lenguaje especifica las operaciones que
son vlidas para cada tipo.
55
56
y generacin de cdigo
.. etc.
Verificacin de tipos
57
58
59
60
10
19/09/2013
61
Expresiones de Tipos
63
Matrices,
Productos,
Registros,
apuntadores y
funciones).
64
62
65
66
11
19/09/2013
67
68
int
69
integer);
(integer
70
integer)
71
72
12
19/09/2013
(* TipoE := TipoT; *)
E1
E2 + T
T
T1
F
T2 * F
else error_tipo; *)
(* TipoF := buscar_Tipo(x); *)
F
F
y
(E
(* TipoF := buscar_Tipo(y); *)
(* TipoF := TipoE; *)
73
74
else error_tipo; *)
(* TipoT := TipoF *)
(* TipoT1 := ifTipoT2 = integer end
TipoF = integer then integer
75
76
13
19/09/2013
Tabla de Smbolos
Tabla de smbolos
Funcionalidades bsicas:
Inserta(smbolo)
Existe(nombre)
Tabla de Smbolos
Exprlog PI exprlog{A=A;} PD |
NOT exprlog {A=A;} |
exprlog {A1=A;} OPLOG exprlog {
A2=A
if(A1==INT && A2==INT)
A=INT;
else
A=ERROR_TIPO;
}
int a;
a = (int) 10.1;
Tabla de Smbolos
Y sub-atributos
public, private, integer, float, static, array, etc
Su localizacin en la pila si es variable local
84
La estructura es una pila
O una lista ligada que opera como pila
Operaciones
add_symbol(x) inserta x y la informacin asociada, tal como el
tipo, en la pila.
find_symbol(x) busca en la pila, comenzando del tope de la
pila.Regresa el primer x encontrado o NULL si no se encontro.
remove_symbol() saca elemento de la pila
14
19/09/2013
Definicin de clase
Una tabla de smbolos ms elaborada
85
Los nombres de clases se pueden usar antes de que sean
definidos.
Usualmente no se puede verificar esto para los nombres
de clases.
enter_scope()
comenzar un nuevo
mbito anidado
find_symbol(x)
encuentra el x actual
(o null)
add_symbol(x)
agrega un smbolo x
a la tabla
check_scope(x)
verdadero si x esta
definido en el mbito
actual (verificar
declaraciones mltiples)
exit_scope()
salir del mbito
Descartar todos los smbolos del mbito reciente
Definicin de clase
Solucin usual
86
87
88
89
90
15
19/09/2013
91
Sistemas de Tipos.
92
93
94
95
96
16
19/09/2013
97
98
99
100
101
102
17
19/09/2013
104
La tabla puede ser consultada para ver si es necesario dar de alta el nuevo
identificador.
103
105
106
107
para
108
18
19/09/2013
109
110
111
int x;
struct x { float y, z; } ;
112
114
113
19
19/09/2013
115
a).-Identificadores no definidos;
b).-Operadores y operandos incompatibles;
1.
116
117
FUENTES DE INFORMACION
FUENTES DE INFORMACION
118
Aho, Sethi, Ullman. Compiladores Principios, tcnicas y herramientas. Ed. Addison Wesley.
11. Teufel, Schmidt, Teufel. Compiladores Conceptos Fundamentales. Ed. Addison-Wesley Iberoamericana.
5. Hopcroft John E., Introduccin a la Teora de Autmatas, Lenguajes y Computacin, ED. Addison Wesley
14. Abel, Peter. Lenguaje ensamblador y programacin para PC IBM y compatibles. Ed. Pearson
Educacin.
8. Fischer, LeBlanc. Crafting a compiler with C. Ed. Cummings Publishing Company, Inc.
15. Mak, Ronald. Writing compilers and interpreters. Wiley Computer. Ed. Publishing.
16. Pittman, Thomas, Peters, James. The art of compiler design Theory and prctice. Prentice Hall.
Dudas????
119
20