Tipos de dados Israel Madruga Motivação • O estudo de algoritmos visa o aperfeiçoamento de nossas habilidades de criar programas, instruções para resolver um problema. E os dados são as ferramentas que utilizamos nessas soluções, se entendermos como a linguagem que estamos utilizando trata os dados podemos construir algoritmos mais eficientes. Israel Madruga Como resolver os problemas? • • • • • • • • C Java Ruby Perl Scheme PHP SQL Haskell Variável X Constante Na programação, uma variável é um objeto (uma posição, frequentemente localizada na memória) capaz de reter e representar um valor ou expressão. Enquanto as variáveis só "existem" em tempo de execução, elas são associadas a "nomes", chamados identificadores, durante o tempo de desenvolvimento. Variável X Constante Uma constante é um identificador associado a um valor que normalmente não é modificado durante a execução de um algoritmo. Quanto à linguagem As linguagens de programação podem ser classificadas de acordo com o tipo de sistema que elas usam, ele define como são os métodos e as variáveis da linguagem. Em uma linguagem de tipo estático, o compilador deve conhecer o tipo de uma variável ou método antes da execução do programa (por isso, o tipo de uma variável normalmente á explicitamente declarado). Em uma linguagem de tipo dinâmico, tipo de uma variável ou método é desconhecido até a execução do programa. Linguagens de tipo Estático ou compiladas, usualmente fortemente tipificadas, geram um código binário, especifico para cada máquina, aumentando a eficiência e auxiliando a remover erros de programação. Ex.: C, C++. Linguagens de Tipo Dinâmico ou interpretadas, normalmente são fracamente tipificadas, fazem a verificação de tipo durante a execução do algoritmo, aumentando a portabilidade e a usabilidade Ex.: Ruby, Perl. Linguagens Híbridas Tem características únicas, como o Java, por exemplo, que é compilado, mas roda em uma maquina virtual C, ou seja, o código binário pode ser interpretado por qualquer dispositivo que tenha a maquina virtual. Ex.: Java, C#. Declaração As linguagens têm modos específicos para tratar suas variáveis, por exemplo em C (linguagem estática): int i; unsigned int a, b, c; unsigned short int dia, mes, ano; double salario; O Que são tipos? Tipos são definições dadas pela linguagem para interpretar um determinado dado. Ex.: A = “hello”; A = 2.351; A = 34; Tipos nas linguagens Cada linguagem define seus tipos nativos, isso depende principalmente da aplicação. É possível criar novos tipos, ou agregar múltiplos tipos em estruturas complexas (Structs em C ou Objetos em JAVA) C x SQL char int float double void bigint bigserial bit bit varying boolean box bytea character varying character cidr circle date double precision inet integer interval line lseg macaddr money numeric path point polygon real Valor X Referência As variáveis são declaradas por valor ou por referência. Tipos por valor Os tipos por valor são armazenados diretamente na pilha . Quando a alocação que contém uma instância de um tipo por valor é destruído a instância do tipo por valor também é destruída. Os tipos por valor são sempre acessados diretamente Tipos por referência A variável armazena apenas a referência ao dado , o dado sem si fica alocado na memória. Sempre contém um valor do tipo ou uma referência vazia. Devem ser iniciados. Quanto ao escopo • • • • Variáveis de Instância Locais De Classe Globais Inferência Inferência é a possibilidade de alterar o tipo de uma variável no meio da execução do código. Dependendo da linguagem, ela pode ser automática, ou necessitar de comandos. Inferência Exemplos int a = 1; \\ “a” é uma variável inteira. a = 1 + 3.5; \\ agora “a” é uma variável em ponto flutuante var objeto; \\ variável sem definição de tipo Tipos em Haskell Tipos em PHP Bibliografia • Slides de 2011 • Wikipedia.org • Google