Professional Documents
Culture Documents
Introduccin
Tablas de Smbolos
Chequeo Semntico
Chequeo de Tipos
Tipos Polimricos
Oscar !onilla "
#ni$ersidad %alileo
&'nde estamos(
)nali*ador +,-ico .Scanner/
)nali*ador Sintctico .Parser/
To0en Stream
)rbol de Parseo
Programa .character stream/
Oscar !onilla 1
#ni$ersidad %alileo
&'nde estamos(
)nali*ador +,-ico .Scanner/
)nali*ador Sintctico .Parser/
To0en Stream
)rbol de Parseo
Programa .character stream/
)nali*ador Semntico
%enerador de Cdigo Intermedio
Representacin Intermedia 2
Tabla de Smbolos
Oscar !onilla 3
#ni$ersidad %alileo
&4u, es la semntica de un programa(
Sint-is
5
Cmo se $e un programa
5
Representacin te-tual o estructura
5
6s posible dar una deinicin matemtica precisa
Semntica
5
Cul es el signiicado del programa
5
6s ms dicil dar una deinicin matemtica precisa
Oscar !onilla 7
#ni$ersidad %alileo
Por qu, hacer anlisis semntico
Introduccin
Tablas de Smbolos
Chequeo Semntico
Chequeo de Tipos
Tipos Polimricos
Oscar !onilla 9
#ni$ersidad %alileo
Tabla de Smbolos
ma0e@table.parent@table/ sAmbol@table
scope.id/ sAmbol@table
get@tApe.$ariable/ tApe
Introduccin
Tablas de Smbolos
Chequeo Semntico
Chequeo de Tipos
Tipos Polimricos
Oscar !onilla >"
#ni$ersidad %alileo
Chequeo Semntico
Chequeos estticos
5
Chequeos de control de lujo
5
Chequeos de unicidad
5
Chequeos de Tipo
Oscar !onilla >1
#ni$ersidad %alileo
Chequeos de Control de Blujo
6jemplos:
5
'eclaracin de una $ariable debe ser $isible al
usarla .en scope/
5
'eclaracin de una $ariable debe estar ntes de
usarla
5
Cada camino de salida .e-it path/ retorna un $alor
del tipo correcto
&4u, ms(
Oscar !onilla >3
#ni$ersidad %alileo
Chequeos de #nicidad
6jemplos:
5
Cing8n identiicador puede ser usado para dos
deiniciones dierentes en el mismo scope
Oscar !onilla >7
#ni$ersidad %alileo
Chequeos de Tipo
6jemplos:
5
4ue el n8mero de argumentos haga match con el n8mero de
parmetros ormales A que los tipos correspondientes sean
equi$alentes
5
Si se llama como e-presin; debe retornar un tipo
5
Cada acceso a una $ariable debe hacer match con la declaracin
.arreglo; estructura; etc</
5
+os identiicadores en una e-presin deben ser De$aluablesE
5
+FS de una asignacin debe ser DasignableE
5
6n una e-presin los tipos de las $ariables; tipos de retorno de
m,todos A de operadores deben ser DcompatiblesE
Oscar !onilla >G
#ni$ersidad %alileo
Chequeos 'inmicos
Introduccin
Tablas de Smbolos
Chequeo Semntico
Chequeo de Tipos
Tipos Polimricos
Oscar !onilla >=
#ni$ersidad %alileo
Sistemas de Tipos
6jemplos:
5
6nteros
5
!ooleanos
5
loats
5
caracteres
tApe@error
5
Tipo especial que produce un error
$oid
5
Tipo bsico que denota Dla ausencia de un $alorE
Oscar !onilla HH
#ni$ersidad %alileo
6-presiones de Tipo: Combres
6jemplo
int foobar(int a, boolean b, int c)
integer boolean integer integer
Oscar !onilla H7
#ni$ersidad %alileo
6-presiones de Tipo: Otras
Records
5
6structuras A clases
5
6jemplo
class { int i; int j;}
integer integer
+enguajes Buncionales
5
Bunciones que toman unciones A retornan
unciones
5
6jemplo
.integer integer/ integer .integer integer/
Oscar Bonilla 27 Universidad Galileo
#n lenguaje simple con tipos
Programa 6jemplo
var: integer;
var + 1023
Oscar Bonilla 28 Universidad Galileo
#n lenguaje simple con tipos
DJisma ConstruccinE
5
Tipos base equi$alentes
5
Jismo conjunto de constructores de tipo son
aplicados en el mismo orden .e<d< rbol de tipos
equi$alente/
Oscar !onilla "3
#ni$ersidad %alileo
Coercin de Tipos
6jemplo
int ;
float !;
! # ! +
6jemplos:
5
integers a loats
5
shorts a longs
Oscar !onilla "G
#ni$ersidad %alileo
CarroRing con$ersions
6jemplos:
5
integers a chars
5
longs a shorts
Raro en lenguajes
Oscar !onilla "9
#ni$ersidad %alileo
TApe casting
6jemplo
int ;
float !;
# + (int)!
6jemplo
int , !, $;
float %, &, ';
# + !
% # % + &
&Cul es el tipo de 2 (
Oscar Bonilla 41 Universidad Galileo
Resumen
Introduccin
Tablas de Smbolos
Chequeo Semntico
Chequeo de Tipos
Tipos Polimricos
Oscar !onilla 1H
#ni$ersidad %alileo
Clases
Contiene
5
'atos .campos/
5
)cciones .m,todos/
5
Restricciones de acceso
Ferencia Sencilla
5
Cuando cada clase est restringida a tener una sola
superclase inmediata .m-imo/
Ferencia J8ltiple
5
Cuando cada clase puede tener ms de una
superclase inmediata
Oscar !onilla 1G
#ni$ersidad %alileo
Verarqua de Ferencia
+a relacin subclaseTsuperclase
5
'einida por los De-tendsE
5
Puede ser modelada mediante un grao acclico
dirigido .')%/
Oscar Bonilla 48 Universidad Galileo
Verarqua de Ferencia
'oRnWcasting
5
6sto es ms permisi$o
5
Con$ersin e-plcita de una clase ancestro a una clase
descendiente
5
Slo tiene sentido si el objeto ue creado inicialmente
como en la subclase; pero despu,s con$ertido a la
superclase
5
Co puede chequearse en tiempo de compilacin
Oscar !onilla 37
#ni$ersidad %alileo
J,todos 6stticos $s< 'inmicos
Consecuencia de upWcasting
5
Implementacin del m,todo declarado en una superclase
puede ser desconocida al momento de compilar
5
6l m,todo es sobreescrito en una subclase
5
Uariaciones de +enguajes
S#U es un $ehculo
Introduccin
Tablas de Smbolos
Chequeo Semntico
Chequeo de Tipos
Tipos Polimricos
Oscar !onilla 71
#ni$ersidad %alileo
&4u, es un tipo polimrico(
Templates en C22
6jemplo:
te1/late4class 56 class lin7e,.list.ele1 {
5 ele1; lin7e,.list.ele1 8 ne+t;
999
}
line,.list.ele14int6 integer.list;
line,.list.ele14foo6 foo.list;
Oscar Bonilla 66 Universidad Galileo
+ecturas
Tigre
5
7<>; Captulos G A 9
!allena
5
1<>; 1<H; 1<"; 1<1; 1<3
'ragn
5
Captulo 9