Aula 4 Nomes, Vinculações, Tipos e Escopos

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
INFORMAÇÕES COMPLEMENTARES
AULA 8 Profa. Sandra de Amo GBC053 – BCC
A busca das mulheres para alcançar seu espaço dentro das organizações
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Capa Disciplina: Ajustamento de Observações
Investor Relations4Q07 | 1. Investor Relations4Q07 | 2 2.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Interação entre objetos
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Ludwig Krippahl, 2008 Programação para as Ciências Experimentais 2007/8 Teórica 3.
Curso de ADMINISTRAÇÃO
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
PERSPECTIVA CONCEITUAL
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Aula 3 Evolução da Principais Linguagens
Aula 2 Aspectos Preliminares
Aula 5 Tipos de Dados Universidade do Vale do Rio dos Sinos
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Linguagens de Programação
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Aula 10 Manipulação de Exceções
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Listas Encadeadas.
Classes e objetos P. O. O. Prof. Grace.
Nossa Velha - Nova Cruz Alta Parte 31.
Provas de Concursos Anteriores
Instituto de Geociências Universidade Federal de Minas Gerais
Renda até 2 SM.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Object Oriented Software Construction (MEYER, Bertrand)
1 CENTRO DE DESENVOLVIMENTO E PLANEJAMENTO REGIONAL – 2006 P Ó S-GRADUA Ç ÃO EM ECONOMIA Microeconomia I Prof.: Edson Domingues Cap í tulo II: Escolha.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
PROCESSOS PRINCIPAIS Alunos - Grau de Satisfação 4971 avaliações * Questões que entraram em vigor em 2011 ** N.A. = Não Aplicável Versão: 07/02/2012 INDICADORES.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 06.
LINHAS MAIS RECLAMADAS Ranking Negativo para Fiscalização Direcionada Conservação - Frota ANO IV – Nº 11.
Lemas (Sudkamp)  .
Trabalho sobre Cor Thiago Marques Toledo.
FISCALIZAÇÃO DIRECIONADA CONDUTA - AUXILIAR ANO III – Nº 05.
Coordenação Geral de Ensino da Faculdade
Múltiplos de um número Sonia Regina de Souza Guedes.
Plataforma Brasil – Submissão de pesquisa
Estudo dos Gases Prof. Fabio Costa.
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
1/40 COMANDO DA 11ª REGIÃO MILITAR PALESTRA AOS MILITARES DA RESERVA, REFORMADOS E PENSIONISTAS - Mar 06 -
Projeto Medindo minha escola.
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
Verificação de Tipos e Escopos
Nomes, Variáveis e Vinculações
Semântica de Linguagens de Programação
Nossa Velha - Nova Cruz Alta Parte 21.
Estruturas de Dados Aula 5: Matrizes
1 2 Observa ilustração. Cria um texto. Observa ilustração.
DIEGO RICARDO DE ARAUJO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE CIÊNCIA EXATAS UNIVERSIDADE FEDERAL DE JUIZ DE FORA Seleção de Características.
Estatística Aula 9 – 28/02/2011.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
AM020C A interface entre Meio Ambiente, Sociedade e Economia Indicadores de produtividade e empregabilidade da agricultura do Brasil. Aluna Andressa Santos.
Transcrição da apresentação:

Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos Aula 4 Nomes, Vinculações, Tipos e Escopos < Página da Disciplina > www.inf.unisinos.br/~barbosa <Endereço do Professor > barbosa@exatas.unisinos.br

SUMÁRIO 1 – Introdução

SUMÁRIO 1 – Introdução 2 – Nomes

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte 7 – Compatibilidade de tipos

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte 7 – Compatibilidade de tipos 8 – Escopo

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte 7 – Compatibilidade de tipos 8 – Escopo 9 –Escopo e tempo de vida

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte 7 – Compatibilidade de tipos 8 – Escopo 9 –Escopo e tempo de vida 10 – Ambientes de referenciamento

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte 7 – Compatibilidade de tipos 8 – Escopo 9 –Escopo e tempo de vida 10 – Ambientes de referenciamento 11 – Constantes nomeadas

SUMÁRIO 1 – Introdução 2 – Nomes 3 – Variáveis 4 – Vinculação 5 – Verificação de tipos 6 – Tipificação forte 7 – Compatibilidade de tipos 8 – Escopo 9 –Escopo e tempo de vida 10 – Ambientes de referenciamento 11 – Constantes nomeadas 12 – Inicialização de variáveis

NOMES 1 – Formas de nomes: Distinção entre maiúsculas e minúsculas

NOMES 1 – Formas de nomes: Distinção entre maiúsculas e minúsculas 2 – Palavras especiais: Palavra Chave x Palavra Reservada

NOMES 1 – Formas de nomes: Distinção entre maiúsculas e minúsculas 2 – Palavras especiais: Palavra Chave x Palavra Reservada => FORTRAN INTEGER REAL REAL INTEGER

NOMES 1 – Formas de nomes: Distinção entre maiúsculas e minúsculas 2 – Palavras especiais: Palavra Chave x Palavra Reservada => FORTRAN INTEGER REAL REAL INTEGER => PL/1 if then then then = else; else else = then;

VARIÁVEIS 1 – Atributos: - Nome - Endereço - Valor - Tipo - Tempo de vida - Escopo

VARIÁVEIS 1 – Atributos: 2 – Aliases - Nome - Endereço - Valor - Tipo - Tempo de vida - Escopo 2 – Aliases

VARIÁVEIS 1 – Atributos: 2 – Aliases 3 – Células de memória: - Físicas - Nome - Endereço - Valor - Tipo - Tempo de vida - Escopo 2 – Aliases 3 – Células de memória: - Físicas - Abstratas

VINCULAÇÃO 1 – Tipos - Estática: Tempo de compilação - Dinâmica: Tempo de execução

VINCULAÇÃO 1 – Tipos - Estática: Tempo de compilação - Dinâmica: Tempo de execução 2 – Vinculação de tipos - Estática: Declaração explícita ou implícita - Dinâmica: - Inferência de tipos

VINCULAÇÃO 1 – Tipos - Estática: Tempo de compilação - Dinâmica: Tempo de execução 2 – Vinculação de tipos - Estática: Declaração explícita ou implícita Declaração explícita: Instrução do programa Declaração implícita: Baseada em uma convenção Primeira ocorrência estabelece o tipo - Dinâmica: - Inferência de tipos

VINCULAÇÃO A := B + C; 1 – Tipos - Estática: Tempo de compilação - Dinâmica: Tempo de execução 2 – Vinculação de tipos - Estática: Declaração explícita ou implícita Declaração explícita: Instrução do programa Declaração implícita: Baseada em uma convenção Primeira ocorrência estabelece o tipo - Dinâmica: Definição (múltiplas) e verificação durante execução A := B + C; - Inferência de tipos

VINCULAÇÃO Modelo de memória em tempo de execucão Memória Baixa Alta

VINCULAÇÃO Código Modelo de memória em tempo de execucão Memória Baixa Alta

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Memória Alta

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Pilha Memória Alta

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Pilha Memória Alta Heap

VINCULAÇÃO 3 – Vinculação de armazenamento - Alocação e desalocação de variáveis (pool de memória)

VINCULAÇÃO 3 – Vinculação de armazenamento - Alocação e desalocação de variáveis (pool de memória) - Tempo de vida de uma variável

VINCULAÇÃO 3 – Vinculação de armazenamento - Alocação e desalocação de variáveis (pool de memória) - Tempo de vida de uma variável - Categorias de armazenamento de variáveis escalares - Variáveis Estáticas: Globais e STATICs

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Pilha Memória Alta Heap

VINCULAÇÃO 3 – Vinculação de armazenamento - Alocação e desalocação de variáveis (pool de memória) - Tempo de vida de uma variável - Categorias de armazenamento de variáveis escalares - Variáveis Estáticas: Globais e STATICs - Variáveis Stack-Dinâmicas (RAs): - Tipos estaticamente vinculados - Elaboração em tempo de execução

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Pilha Memória Alta Heap

VINCULAÇÃO 3 – Vinculação de armazenamento - Alocação e desalocação de variáveis (pool de memória) - Tempo de vida de uma variável - Categorias de armazenamento de variáveis escalares - Variáveis Estáticas: Globais e STATICs - Variáveis Stack-Dinâmicas (RAs): - Tipos estaticamente vinculados - Elaboração em tempo de execução - Variáveis Heap-Dinâmicas Explícitas - Instruções explícitas (alocação / desalocação) - Garbage Collection (Java) - Acessadas por ponteiros (C) ou referências (Java)

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Pilha Memória Alta Heap

VINCULAÇÃO 3 – Vinculação de armazenamento - Variáveis Estáticas: Globais e STATICs - Variáveis Stack-Dinâmicas (RAs) - Variáveis Heap-Dinâmicas Explícitas - Variáveis Heap-Dinâmicas Implícitas - Vinculadas ao armazenamento na atribuição - Todos os atributos são vinculados na atribuição

VINCULAÇÃO Código Modelo de memória em tempo de execucão Dados Baixa Código Dados Estáticos Pilha Memória Alta Heap

TIPOS 1 – Verificação de tipos 2 – Tipificação forte 3 – Compatibilidade de tipos

TIPOS 1 – Verificação de tipos 2 – Tipificação forte - Estática ou dinâmica - Coerção - Relação entre verificação e vinculação - Quantos antes, melhor 2 – Tipificação forte 3 – Compatibilidade de tipos

TIPOS 1 – Verificação de tipos 2 – Tipificação forte - Estática ou dinâmica - Coerção - Relação entre verificação e vinculação - Quantos antes, melhor 2 – Tipificação forte - Erros de tipo sempre são detectados - Enfraquecida pela coerção 3 – Compatibilidade de tipos

TIPOS 1 – Verificação de tipos 2 – Tipificação forte - Estática ou dinâmica - Coerção - Relação entre verificação e vinculação - Quantos antes, melhor 2 – Tipificação forte - Erros de tipo sempre são detectados - Enfraquecida pela coerção 3 – Compatibilidade de tipos - Compatibilidade de nome e de estrutura - Discussão sobre Pascal, C, C++ e Java

ESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas

ESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2;

ESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2;

ESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2;

ESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2;

ESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2;

ESCOPO 1 – Escopo estático 2 – Blocos - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas 2 – Blocos - Variáveis stack-dinâmicas - Blocos não baseado em procedimentos: Pascal, C e Java

ESCOPO 1 – Escopo estático 2 – Blocos - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas 2 – Blocos - Variáveis stack-dinâmicas - Blocos não baseado em procedimentos: Pascal, C e Java if (list[i] < list[j]) { int temp; temp = list[i]; list[i] = list[j]; list[j] = temp; }

ESCOPO 1 – Escopo estático 2 – Blocos 3 – Avaliação do escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas 2 – Blocos - Variáveis stack-dinâmicas - Blocos não baseado em procedimentos: Pascal, C e Java 3 – Avaliação do escopo estático - Demasiada visibilidade (variáveis e procedimentos) - Variáveis globais

ESCOPO 4 – Escopo dinâmico - Baseado na seqüência de chamadas - Escopo determinado em tempo de execução - Pai dinâmico e Ancestrais dinâmicos

ESCOPO 4 – Escopo dinâmico - Baseado na seqüência de chamadas - Escopo determinado em tempo de execução - Pai dinâmico e Ancestrais dinâmicos procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2; ...

ESCOPO 4 – Escopo dinâmico - Baseado na seqüência de chamadas - Escopo determinado em tempo de execução - Pai dinâmico e Ancestrais dinâmicos procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2; ... sub2 sub1

ESCOPO 4 – Escopo dinâmico - Baseado na seqüência de chamadas - Escopo determinado em tempo de execução - Pai dinâmico e Ancestrais dinâmicos procedure big; var x : integer; procedure sub1; begin ..x.. end; procedure sub2; ... big sub1

ESCOPO 4 – Escopo dinâmico 5 – Avaliação do escopo dinâmico - Baseado na seqüência de chamadas - Escopo determinado em tempo de execução - Pai dinâmico e Ancestrais dinâmicos 5 – Avaliação do escopo dinâmico - Incapacidade de realizar análise estática de tipos - Confusão no significado das referências (documentação) - Eficiência no acesso é menor do que escopo estático

COMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas

COMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas void printheader() { ......... } void compute() int sum; printheader();

COMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas void printheader() { ......... } void compute() int sum; printheader();

COMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas 2 – Ambientes de referenciamento - Subprograma ativo - Escopo dinâmico: Locais + Subprogramas ativos

COMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas 2 – Ambientes de referenciamento - Subprograma ativo - Escopo dinâmico: Locais + Subprogramas ativos 3 – Constantes nomeadas

COMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas 2 – Ambientes de referenciamento - Subprograma ativo - Escopo dinâmico: Locais + Subprogramas ativos 3 – Constantes nomeadas 4 – Inicializacão de variáveis

EXERCÍCIOS 2 – Algumas linguagens de programação são sem tipos. Quais são as vantagens e desvantagens evidentes de não se ter tipos em uma linguagem?

EXERCÍCIOS 2 – Algumas linguagens de programação são sem tipos. Quais são as vantagens e desvantagens evidentes de não se ter tipos em uma linguagem? 5 – A vinculação dinâmica de tipos está estreitamente relacionada com as variáveis heap-dinâmicas. Explique essa relação.

EXERCÍCIOS 2 – Algumas linguagens de programação são sem tipos. Quais são as vantagens e desvantagens evidentes de não se ter tipos em uma linguagem? 5 – A vinculação dinâmica de tipos está estreitamente relacionada com as variáveis heap-dinâmicas. Explique essa relação. 6 – Descreve uma situação onde uma variável sensível à história em um subprograma é útil.

EXERCÍCIOS 8 – Escopo estático x Escopo dinâmico. 12 – Blocos 13 – Escopo dinâmico 14 – Escopo dinâmico