Sistema de Tipos
O sistema de tipos de uma linguagem de programação é um sistema lógico formal, com um conjunto de regras semânticas, que por associação de uma propriedade (tipo) a entidades da linguagem (expressões, variáveis, métodos, etc.) permite a detecção de uma classe importante de erros semânticos: erros de tipos.
A verificação de erros de tipo, é aplicável nas seguintes operações:
Atribuição de valor: v = e.
Aplicação de operadores: e1 + e2 (por exemplo).
Invocação de funções: f(a).
Utilização de classes/estruturas: o.m(a) ou data.field.
Outras operações, como por exemplo a utilização arrays, podem também envolver verificações de tipo. No entanto, podemos considerar que as operações sobre arrays são atribuições de valor e aplicação de métodos especiais.
Diz-se que qualquer uma destas operações é válida quando existe conformidade entre as propriedades de tipo das entidades envolvidas.
A conformidade indica se um tipo T1 pode ser usado onde se espera um tipo T2 . É o que acontece quando T1=T2.
Atribuição de valor (v = e).
O tipo de e tem de ser conforme com o tipo de v.
Aplicação de operadores (e1 + e2).
Existe um operador + aplicável aos tipos de e1 e e2.
Invocação de funções (f(a)).
Existe uma função global f que aceita argumentos a conformes com os argumentos formais declarados dessa função.
Utilização de classes/estruturas (o.m(a) ou data.field).
Existe um método m na classe correspondente ao objecto o, que aceita argumentos a con- formes com os argumentos formais declarados desse método; e existe um campo field na estrutura/classe de data.
Last updated