A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro

Apresentações semelhantes


Apresentação em tema: "Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro"— Transcrição da apresentação:

1 Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro isabel@dcc.ic.uff.br

2 Linguagens de Programação Valores & tipos de dados Valor (dado)‏ É qualquer entidade que existe durante uma computação. Pode ser avaliado, armazenado, incorporado em estrutura de dados, passado como argumento, retornado em função.

3 Linguagens de Programação Valores & tipos de dados Que tipos de valores suporta a linguagem Pascal? Números inteiros e reais, caracteres, seqüências de caracteres, valores lógicos, registros, arrays, ponteiros,....

4 Linguagens de Programação Valores & tipos de dados Que tipos de valores suporta a linguagem C? Números inteiros e reais, caracteres, seqüências de caracteres, valores lógicos, registros, arrays, ponteiros,....... mas são simulados através de outros tipos de valores....

5 Linguagens de Programação Valores & tipos de dados O que vem a ser um tipo ? É um conjunto de Valores. {..., -2, -1, 0, 1, 2,... } {..., -2.0,..., -1.3,..., 0.0,...,1.7,..., 2.99,... } { 'a',..., 'z', '1', '2',... } { 0.0,...,1.5,..., 'a',..., 'z', 1, 2,... } Inteiros ! Reais ! Caracteres ! ???

6 Linguagens de Programação Valores & tipos de dados O que vem a ser um tipo ? É uma coleção de valores que têm alguma propriedade em comum. Coleção de valores que exibe comportamento uniforme nas operações associadas ao tipo. tipo = valores + operações

7 Linguagens de Programação Valores & tipos de dados O que vem a ser um tipo ? tipo = valores + operações T 1 = e T 2 = ? Se C 1 = C 2 e O 1  O 2 então T 1  T 2 ? Se C 1  C 2 e O 1 = O 2 então T 1  T 2 ?... Vetores no plano real (conceito algébrico) e Números Complexos: representação por pares de reais...... Diversas implementações de inteiros em C: mesmas operações....

8 Linguagens de Programação Valores & tipos de dados Porquê tipos? Em Matemática: tipos para evitar paradoxos Teoria dos conjuntos: Paradoxo de Russel R = { x | x  x } R  R ?

9 Linguagens de Programação Valores & tipos de dados Porquê tipos? Em Computação: Abstração: tipos ajudam a estruturar a solução do problema. Tipos ajudam a compreender expressões indicando o conjunto de valores que podem ser denotados por ela Tipos ajudam a detectar erros: operações aplicadas a valores impróprios Tipos ajudam a gerar códigos eficientes: representação adequada de valores

10 Linguagens de Programação Valores & tipos de dados Em Computação: Linguagens “sem tipos” (com um único tipo) LISP PERL SELF A informação a respeito do tipo está amarrada ao valor, e não ao identificador. (define a 1) (define b 'casa') (+ a b) Erro de execução! Em tempo de execução verifica-se que o valor que a e b guardam não são compatíveis com a operação de soma

11 Linguagens de Programação Valores & tipos de dados Verificação Estática de Tipos Tempo de compilação erros detectados “cedo” programa não executa se tiver erros de tipo var i: integer; a: char begin readln(i); readln(a); writeln(i+a); end. erro de compilação! Em tempo de compilação sabe- se que as variáveis i e a não podem ser operadas com + A informação a respeito do tipo está amarrada ao identificador, usualmente, pela declaração de variáveis.

12 Linguagens de Programação Valores & tipos de dados Verificação Dinâmica de Tipos Tempo de execução Erros eventualmente detectados na execução. Todos os caminhos da execução devem ser testados para garantir a ausência de erros (if (= 1 1) 2 a) (if (= 1 1) a 2) Suponha a não definido: Roda sem erro ! Dá erro de execução !

13 Linguagens de Programação Valores & tipos de dados Verificação Dinâmica de Tipos (define segundo(lambda(l) (car (cdr l)))) (segundo ́(1 2 3)) Lista de números (segundo ́(“manga” “abacaxi” 5 6)) (segundo ́( ́(1 2 3) (4 5 6))) Lista de listas Lista de strings e números

14 Linguagens de Programação Valores & tipos de dados Verificação de Tipos estática: eficiência segurança flexibilidade dinâmica: eficiência segurança flexibilidade

15 Linguagens de Programação Valores & tipos de dados Valor do tipo: o valor pertence ao conjunto de valores definido pelo tipo Expressão do tipo: o resultado da expressão pertence ao conjunto de valores definido pelo tipo Cardinalidade do tipo: cardinalidade do conjunto de valores do tipo.

16 Linguagens de Programação Valores & tipos de dados Hierarquia de tipos: Tipos AtômicosCompostos Booleanos Inteiros Caracteres Decimais Ponto Flutuantes Enumerados Intervalos Uniões StringsRecursivos Mapeamentos Conjuntos Potência Produtos Cartesianos Ponteiros LivresDisjuntas FinitosFunções

17 Linguagens de Programação Valores & tipos de dados Tipos Primitivos (Atômicos): seus valores não podem ser decompostos em valores mais simples. O conjunto de tipos primitivos costuma revelar o propósito da LP. Tipos atômicos de FORTRAN: inteiros reais complexos... Linguagem de aplicações numéricas !!!

18 Linguagens de Programação Valores & tipos de dados Tipos Primitivos (Atômicos): seus valores não podem ser decompostos em valores mais simples. Sofrem limitações diretas do hardware. Sofrem diferenças entre implementações da mesma linguagem Inteiros em Pascal: [-32768.. 32767] Inteiros em C++: [-65536.. 65536]... em alguns compiladores !!!

19 Linguagens de Programação Valores & tipos de dados Tipos Primitivos (Atômicos): seus valores não podem ser decompostos em valores mais simples. Built in (embutidos) Definidos Discretos Pré definidos na linguagem Definidos pelo programador Em correspondência direta com os inteiros

20 Linguagens de Programação Valores & tipos de dados Built In em Pascal: Atômicos Booleanos Inteiros Caracteres Reais Enumerados Intervalos

21 Linguagens de Programação Valores & tipos de dados Definidos em Pascal: Atômicos Booleanos Inteiros Caracteres Reais Enumerados Intervalos

22 Linguagens de Programação Valores & tipos de dados Discretos em Pascal: Atômicos Booleanos Inteiros Caracteres Reais Enumerados Intervalos Ótimos para indexar arrays e loops definidos!!!


Carregar ppt "Linguagens de Programação Conceitos e Técnicas Valores e Tipos de Dados Prof. Isabel Cafezeiro"

Apresentações semelhantes


Anúncios Google