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

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

Nomes, Variáveis e Vinculações Paradigmas de Programação Prof. Gláucya Carreiro Boechat

Apresentações semelhantes


Apresentação em tema: "Nomes, Variáveis e Vinculações Paradigmas de Programação Prof. Gláucya Carreiro Boechat"— Transcrição da apresentação:

1 Nomes, Variáveis e Vinculações Paradigmas de Programação Prof. Gláucya Carreiro Boechat

2 Paradigmas de Programação - prof Gláucya Carreiro Boechat 2 Nomes Toda linguagem de programação possui “nomes” com significados pré-definido  O nome identifica ações que deve ser executada. As linguagens usam os nomes assim como os humanos:  Identificar variáveis, rotinas,ou construções de programa Linguagem Imperativa são abstrações da arquitetura do computador de Von Neumann  Processador e Memória

3 Paradigmas de Programação - prof Gláucya Carreiro Boechat 3 Von Neumann

4 Paradigmas de Programação - prof Gláucya Carreiro Boechat 4 Nomes Considerações acerca de um nome: Qual o comprimento máximo de um nome ? As palavras especiais são palavras reservadas ou palavras-chave? Existe distinção entre maiúsculas e minúsculas ? Podem ser utilização de Caracteres de Conexões ? ($ ? ~ ; : / \ |...)

5 Paradigmas de Programação - prof Gláucya Carreiro Boechat 5 Nome - Tamanho As primeiras Linguagens utilizavam nomes com apenas 1 caracter, pois eram basicamente matemáticas. Exemplos de linguagens:  FORTRAN I: máximo de 6  FORTRAN 90 e C: máximo de 31  COBOL : máximo de 30  Ada e Java: sem limite  C++: sem limite, mas implementadores geralmente impõem limites

6 Paradigmas de Programação - prof Gláucya Carreiro Boechat 6 Nome – Caracteres de Conexão Caracteres de conexão  Exemplo ( _ )  Pascal, Modula-2 e FORTRAN 77 não permitem  Linguagens mais recentes permitem Java,.NET

7 Paradigmas de Programação - prof Gláucya Carreiro Boechat 7 Nome - Distinção entre maiúsculas e Minúsculas Desvantagem:  Problema de Legibilidade nomes semelhantes são diferentes  rest, Rest,ResT, REST, Nomes em C, C++, Modula-2 e em Java fazem distinção entre maiúscula e minúscula Em Java  Converter string em inteiro parseInt ParseInt e parseint (não são reconhecidas) FORTAN anteriores ao 90  Somente letras maiúsculas podiam ser usadas em nomes

8 Paradigmas de Programação - prof Gláucya Carreiro Boechat 8 Palavras Especiais São utilizadas para tornar programas mais legíveis ao denominar ações.  Classificadas como : Reservadas, e em algumas, são somente Palavras-Chave.

9 Paradigmas de Programação - prof Gláucya Carreiro Boechat 9 Palavras Especiais Palavra Reservada:  é independente do contexto e não pode ser utilizada como um nome.  Exemplo: na linguagem Pascal  integer  char.

10 Paradigmas de Programação - prof Gláucya Carreiro Boechat 10 Palavras Especiais Uma Palavra-Chave é uma palavra que é especial em certos contextos,  por exemplo em FORTRAN Real a (palavra-chave – seguida de um nome) Real = 3.4 (variável – seguida de operador de instrução)  Problemas de legibilidade FORTRAN  INTEGER REAL  REAL INTEGER

11 Paradigmas de Programação - prof Gláucya Carreiro Boechat 11 Variáveis Variáveis são abstrações de uma célula de memória de um computador. Caracterizada pelos atributos:  Nome  Endereço  Valor  Tipo  Tempo de Vida  Escopo

12 Paradigmas de Programação - prof Gláucya Carreiro Boechat 12 Variáveis - Nome Nome  Identifica uma entidade (Identificadores). Int var1;  Nem todas as variáveis têm nome. Exemplo  variáveis temporárias show( x+y )

13 Paradigmas de Programação - prof Gláucya Carreiro Boechat 13 Variáveis - Endereço Endereço  Endereço de memória à qual ela está associada. Uma variável pode ter mais de uma célula de memória  O endereço de uma variável é o endereço de sua primeira célula de memória. Uma variável pode ter diferentes endereços em diferentes lugares no programa  Programa com dois subprogramas  Sub1  Sub2  Definem uma variável com mesmo nome soma, Independentes uma da outra. Células Memória

14 Paradigmas de Programação - prof Gláucya Carreiro Boechat 14 Variáveis - Endereço Apelidos (Aliases)  Os Apelidos existem quando duas ou mais variáveis apontam para o mesmo endereço de memória. (C, C++)  Problema para a legibilidade Permite que uma variável tenha seu valor modifique por uma atribuição a uma variável dirente Células Memória

15 Paradigmas de Programação - prof Gláucya Carreiro Boechat 15 Variáveis - Tipo Tipo  Determina a faixa de valores das variáveis e  o conjunto de operações definidas para os valores do tipo  FORTRAN INTEGER  Faixa de Valores  a  Operações  Adição, subtração, multiplicação, divisão, etc.

16 Paradigmas de Programação - prof Gláucya Carreiro Boechat 16 Variáveis - Valor O valor de uma variável  Conteúdo da(s) célula(s) de memória associado a uma variável. O valor de uma variável às vezes é conhecido como r-value (valor à direita) porque é o atributo necessário para avaliar a expressão que se encontra do lado direito de uma atribuição. Para acessar o r-value, é necessário antes determinar o l-value (endereço da variável). contador := contador + 1; (l-value) (r-value)

17 Paradigmas de Programação - prof Gláucya Carreiro Boechat 17 Variáveis – Tempo de Vida O tempo de vida de uma variável é o intervalo de tempo durante o qual um conjunto de células de memória está vinculado à uma variável. ALOCAÇÃODESALOCAÇÃO tempo de vida Variável vinculado à células de memória tempo Células Memória Conjunto de células alocadas para o armazenamento dos dados de uma variável Células novamente livres, após a Desalocação Células Memória

18 Paradigmas de Programação - prof Gláucya Carreiro Boechat 18 O Conceito de Vinculação Uma vinculação (binding) é uma associação, como:  Entre um atributo e uma entidade de execução  Entre uma operação e um símbolo O momento em que uma vinculação se desenvolve é chamado de tempo de vinculação

19 Paradigmas de Programação - prof Gláucya Carreiro Boechat 19 Possíveis tempos de Vinculação Tempo de projeto da linguagem  Vinculação de símbolos de operação à operação,  ex. * (multiplicação) Tempo de implementação da linguagem  Vinculação de um tipo (float) a um conjunto de valores possíveis

20 Paradigmas de Programação - prof Gláucya Carreiro Boechat 20 Possíveis tempos de Vinculação Tempo de Compilação  Vinculação de uma variável a um tipo de dado em particular Tempo de Carregamento  Vinculação de uma variável à célula de memória Tempo de Execução  Vinculação de uma variável local não-estática a uma célula de memória

21 Paradigmas de Programação - prof Gláucya Carreiro Boechat 21 Vinculação Estática e Dinâmica Vinculação Estática  Ocorrer antes do tempo de execução e  Permanecer inalterada ao longo da execução de um programa Vinculação Dinâmica  Ocorrer durante a execução ou  puder ser modificada no decorrer da execução de um programa

22 Paradigmas de Programação - prof Gláucya Carreiro Boechat 22 Declaração de Variáveis - Explícita e Implícita - Declaração Explícita  Quando uma instrução em um programa que lista nomes de variáveis e  especifica que elas são de um tipo particular

23 Paradigmas de Programação - prof Gláucya Carreiro Boechat 23 Declaração de Variáveis - Explícita e Implícita - Declaração Implícita  Quando o meio de associar variáveis a tipos por convenções em vez de instruções  Linguagens FORTRAN, PL/I, BASIC e Perl Vantagem:  capacidade de escrita Desvantagem:  legibilidade

24 Paradigmas de Programação - prof Gláucya Carreiro Boechat 24 Vinculação Dinâmica de Tipos Vinculação dinâmica de tipos  (JavaScript e PHP) A variável é vinculada ao tipo quando lhe é atribuído algum valor,  por exemplo JavaScript list = [2, 4.33, 6, 8]; list = 17.3;  Vantagem: Flexibilidade  Desvantagens: Alto custo Difícil detecção de erros

25 Paradigmas de Programação - prof Gláucya Carreiro Boechat 25 Inferência de Tipos Inferência de tipos (ML, Miranda e Haskell)  Ao invés de uma instrução de atribuição, tipos são determinados pelo contexto Em ML,  fun circumf(r) = * r * r;  fun vezes10(x) = 10*x;  ML rejeita a função fun quadrado(x) = x * x;  Opções fun quadrado(x:int) = x * x; fun quadrado(x) = (x:int) * x; fun quadrado(x) = x * (x:int);

26 Paradigmas de Programação - prof Gláucya Carreiro Boechat 26 Vinculação de Armazenamento Alocação  Marcar\tomar uma célula de memória de um conjunto de memória disponível Desalocação  Devolver a célula ao conjunto de memória disponível

27 Paradigmas de Programação - prof Gláucya Carreiro Boechat 27 Tempo de Vida de uma Variável inicia  quando ela é vinculada a uma célula específica encerra  quando ela é desvinculada

28 Paradigmas de Programação - prof Gláucya Carreiro Boechat 28 Variáveis – Tempo de Vida Classificação de acordo com o tempo de vida Variáveis Dinâmicas em Heap Implícitas. Variáveis Dinâmicas em Heap Explícitas. Variáveis Dinâmicas em Pilha (stack). Variáveis Estáticas.

29 Paradigmas de Programação - prof Gláucya Carreiro Boechat 29 Variáveis Estáticas As variáveis estáticas  são Vinculadas a células de memória antes que se inicie a execução do programa  e permanecem vinculadas até que a execução termine.  Exemplo FORTRAN I, II e VI, variáveis static do C, C++ e JAVA Vantagem  Eficiência (endereçamento direto). Desvantagem  Pouca flexibilidade (não permitem recursão)

30 Paradigmas de Programação - prof Gláucya Carreiro Boechat 30 Variáveis Dinâmicas em Pilha (stack) São aquelas cuja a vinculações criam-se a partir da elaboração de suas instruções de declaração, mas seus tipos são vinculados estaticamente. A elaboração ocorre em tempo de execução Exemplo  Variáveis locais em subprogramas C e métodos em Java

31 Paradigmas de Programação - prof Gláucya Carreiro Boechat 31 Variáveis Dinâmicas em Pilha (stack) Vantagem:  permite recursão;  compartilhamento de espaço de memória Desvantagens:  Sobrecarga de alocação e de desalocação em tempo de execução

32 Paradigmas de Programação - prof Gláucya Carreiro Boechat 32 Variáveis Dinâmicas em Pilha Exemplo:  Procedimento A chama Procedimento B.  A variável Y do procedimento B é vinculada na Pilha. Procedimento A Procedimento B int X int Y

33 Paradigmas de Programação - prof Gláucya Carreiro Boechat 33 Variáveis Dinâmicas em Pilha Exemplo:  Procedimento B encerra a sua execução liberando a memória destinada ao procedimento B com a variável Y. Procedimento A int X

34 Paradigmas de Programação - prof Gláucya Carreiro Boechat 34 Variáveis Dinâmicas no Heap Explícitas Variáveis Dinâmicas em Heap Explícitas  células de memória sem nome alocadas (abstratas) e desalocadas por instruções explícitas em tempo de execução, especificadas pelo programador.  Essas variáveis alocadas no Heap e desalocadas para o Heap só podem ser referenciadas por meio de variáveis de ponteiro ou de referência heap  conjunto de células de armazenamento desorganização, devido ao fato de seu uso ser imprevisível.

35 Paradigmas de Programação - prof Gláucya Carreiro Boechat 35 Variáveis Dinâmicas no Heap Explícitas Exemplo:  Objetos dinâmicos em C++ (new e delete)  Todos os objetos em Java Vantagem:  Convenientes para estruturas dinâmicas: listas encadeadas árvores Desvantagens:  Dificuldade em usar ponteiros e referência  Custo das referências para as alocações e desalocações

36 Paradigmas de Programação - prof Gláucya Carreiro Boechat 36 Variáveis Dinâmicas em Heap Explícitas As variáveis dinâmicas em heap implícitas são vinculadas ao armazenamento do heap somente quando lhe são atribuídos valores. Alocação e desalocação causadas por instruções de atribuição  Todas as variáveis em APL  Todas as strings e vetores em Perl e em JavaScript Vantagem  Flexibilidade Desvantagens  Ineficiente, pois todos os atributos são dinâmicos  Perda de grande parte da capacidade de detectar erros

37 Paradigmas de Programação - prof Gláucya Carreiro Boechat 37 Variáveis Dinâmicas em Heap Implícitas flex [1:0] int lista... Lista := (4, 2, 3, 7) Neste momento a memória foi alocada Exemplo  pode ser encontrado nos array flex da linguagem ALGOL- 68.  arrays dinâmicos permitem que não sejam especificados limites de subscrito em sua declaração. Por exemplo, no array lista definido abaixo, o espaço do heap só será alocado após a atribuição:


Carregar ppt "Nomes, Variáveis e Vinculações Paradigmas de Programação Prof. Gláucya Carreiro Boechat"

Apresentações semelhantes


Anúncios Google