Teste
Conceituação
Propriedades
Utilização
Exemplos
Evolução do modelo imperativo
Modelo imperativo: baseado em representação de dados e seqüência de ações sobre os dados
modelo procedural modelo de objetos
tipos de dados
TADS
classes
classes são tipos de dados em Linguagens
Orientadas a Objetos
Mecanismos de LP
modelo procedural: encapsulamento, proteção e polimorfismo estático
modelo de objetos: herança e polimorfismo dinâmico
Descrição de tipos
relembrando...
Nome: designação do tipo. Ex. Boolean
Valores : domínio de valores. Ex. Valores lógicos: verdadeiro/falso Operações: repertório de operações permitidas
Negação, conjunção, disjunção.
Ex.
Testes : relações de igualdade, ordem e outros predicados. Ex. relação de igualdade
Constantes: forma de representação de constantes.
Ex. True , False
Tipos primitivos: exemplo de abstração
// float: abstração de um número em ponto flutuante float a, b, c, s;
// tipo de dados é associado a um domínio de valores b = 1.0; c = 2.0;
// tipo de dados é associado a conjunto de operações a = b + c; a+=; c++;
// tipo de dados associado a uma representação interna
8 bits, 16 bits, 32 bits ...
Abstração de representação
Abstração de operações
Tipos ‘padrão’ e Tipos Abstratos
Tipos ‘padrão”: repertório de tipos de dados oferecidos pela LP
primitivos
estruturados
Predefinem
representação
operações
Podem ser definidos pelo usuário no próprio programa Tipos abstratos: novos tipos criados pelo usuário
Estendem o conjunto padrão de tipos
Devem oferecer
representação
operações
Sempre são definidos
pelo usuário
bibiotecas padrão
bibliotecas de fornecedores diversos
Tipos definidos pelo usuário
Mnemônicos associados a tipos existentes
Sinonímia: não criam novos tipos de dados; apenas usam identificadores simbólicos.
Composição: podem ser combinados com outros tipos de