Comprobación Tipos

8

Click here to load reader

Transcript of Comprobación Tipos

Page 1: Comprobación Tipos

Comprobación de Tipos

Capítulo 6Leonel Morales Dí[email protected]

Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple.Derechos reservados Disponible en: http://www.ingenieriasimple.com/compiladores

Page 2: Comprobación Tipos

Comprobación estática

Diferente de la dinámica (en runtime)Ejemplos Comprobación de tipos

Incompatibilidad de operadores Flujo de control

Exit Do, break, halt, while, next Unicidad

Variables únicas en su ámbito

Page 3: Comprobación Tipos

Comprobación estática

Más ejemplos Nombres

Begin transaction NNN --- Commit transaction NNN

Comprobación dinámica es necesaria tabla: array[0..255] of char; i: integer ¿Verificar i <= 255 estáticamente?

Page 4: Comprobación Tipos

Sistemas de tipos

Basado en La noción de tipo

Tipos básicos o primitivos Tipos construidos o referenciales

Las reglas para asignar tipos ¿Suma de dos reales es un? ¿Concatenación de dos char es un?

Page 5: Comprobación Tipos

Expresiones de tipos

Un tipo básico Boolean, char, integer, long, float, etc. error_tipo

El nombre de un tipopublic class Telefono {

int número; int internacional;}

Constructores de tipos

Page 6: Comprobación Tipos

Constructores de tipos

Matrices Array(I,T) String[20] nombres;

Productos cartesianos T1 x T2

Registros Record((NNN x integer) x (MMM x String))

Page 7: Comprobación Tipos

Constructores de tipos

Apuntadores Pointer(T)

Funciones int x int => int int calcula(int par1; int par2) { return

par1*par2; }

Page 8: Comprobación Tipos

Comprobador de tipos

Gramática de los tiposReglas semánticasAtributo (sintetizado o heredado) tipo