1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa...
Transcript of 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa...
![Page 1: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/1.jpg)
1
Aula 4Aula 4Nomes, Vinculações, Nomes, Vinculações,
Tipos e EscoposTipos e Escopos
Universidade do Vale do Rio dos Sinos
< Página da Disciplina >
www.inf.unisinos.br/~barbosawww.inf.unisinos.br/~barbosa
<Endereço do Professor >
[email protected]@exatas.unisinos.br
![Page 2: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/2.jpg)
2
SUMÁRIOSUMÁRIO1 – Introdução
![Page 3: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/3.jpg)
3
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes
![Page 4: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/4.jpg)
4
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis
![Page 5: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/5.jpg)
5
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação
![Page 6: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/6.jpg)
6
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos
![Page 7: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/7.jpg)
7
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte
![Page 8: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/8.jpg)
8
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte7 – Compatibilidade de tipos
![Page 9: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/9.jpg)
9
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte7 – Compatibilidade de tipos8 – Escopo
![Page 10: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/10.jpg)
10
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte7 – Compatibilidade de tipos8 – Escopo9 –Escopo e tempo de vida
![Page 11: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/11.jpg)
11
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte7 – Compatibilidade de tipos8 – Escopo9 –Escopo e tempo de vida10 – Ambientes de referenciamento
![Page 12: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/12.jpg)
12
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte7 – Compatibilidade de tipos8 – Escopo9 –Escopo e tempo de vida10 – Ambientes de referenciamento11 – Constantes nomeadas
![Page 13: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/13.jpg)
13
SUMÁRIOSUMÁRIO1 – Introdução2 – Nomes3 – Variáveis4 – Vinculação5 – Verificação de tipos6 – Tipificação forte7 – Compatibilidade de tipos8 – Escopo9 –Escopo e tempo de vida10 – Ambientes de referenciamento11 – Constantes nomeadas12 – Inicialização de variáveis
![Page 14: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/14.jpg)
14
NOMESNOMES1 – Formas de nomes: Distinção entre maiúsculas e minúsculas
![Page 15: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/15.jpg)
15
NOMESNOMES1 – Formas de nomes: Distinção entre maiúsculas e minúsculas
2 – Palavras especiais: Palavra Chave x Palavra Reservada
![Page 16: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/16.jpg)
16
NOMESNOMES1 – Formas de nomes: Distinção entre maiúsculas e minúsculas
2 – Palavras especiais: Palavra Chave x Palavra Reservada
=> FORTRAN
INTEGER REAL REAL INTEGER
![Page 17: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/17.jpg)
17
NOMESNOMES1 – 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;
![Page 18: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/18.jpg)
18
VARIÁVEISVARIÁVEIS 1 – Atributos: - Nome - Endereço - Valor - Tipo - Tempo de vida - Escopo
![Page 19: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/19.jpg)
19
VARIÁVEISVARIÁVEIS 1 – Atributos: - Nome - Endereço - Valor - Tipo - Tempo de vida - Escopo
2 – Aliases
![Page 20: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/20.jpg)
20
VARIÁVEISVARIÁVEIS 1 – Atributos: - Nome - Endereço - Valor - Tipo - Tempo de vida - Escopo
2 – Aliases
3 – Células de memória: - Físicas - Abstratas
![Page 21: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/21.jpg)
21
VINCULAÇÃOVINCULAÇÃO 1 – Tipos - Estática: Tempo de compilação - Dinâmica: Tempo de execução
![Page 22: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/22.jpg)
22
VINCULAÇÃOVINCULAÇÃ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
![Page 23: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/23.jpg)
23
VINCULAÇÃOVINCULAÇÃ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
![Page 24: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/24.jpg)
24
VINCULAÇÃOVINCULAÇÃ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: Definição (múltiplas) e verificação durante execução
A := B + C; - Inferência de tipos
![Page 25: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/25.jpg)
25
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
MemóriaBaixa
MemóriaAlta
![Page 26: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/26.jpg)
26
CódigoMemória
Baixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 27: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/27.jpg)
27
Código
DadosEstáticos
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 28: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/28.jpg)
28
Código
DadosEstáticos
Pilha
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 29: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/29.jpg)
29
Código
DadosEstáticos
Pilha
Heap
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 30: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/30.jpg)
30
VINCULAÇÃOVINCULAÇÃO 3 – Vinculação de armazenamento - Alocação e desalocação de variáveis (pool de memória)
![Page 31: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/31.jpg)
31
VINCULAÇÃOVINCULAÇÃ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
![Page 32: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/32.jpg)
32
VINCULAÇÃOVINCULAÇÃ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
![Page 33: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/33.jpg)
33
Código
DadosEstáticos
Pilha
Heap
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 34: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/34.jpg)
34
VINCULAÇÃOVINCULAÇÃ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
![Page 35: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/35.jpg)
35
Código
DadosEstáticos
Pilha
Heap
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 36: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/36.jpg)
36
VINCULAÇÃOVINCULAÇÃ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) - Tipos estaticamente vinculados - Elaboração em tempo de execução - Acessadas por ponteiros (C) ou referências (Java)
![Page 37: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/37.jpg)
37
Código
DadosEstáticos
Pilha
Heap
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 38: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/38.jpg)
38
VINCULAÇÃOVINCULAÇÃ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
![Page 39: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/39.jpg)
39
Código
DadosEstáticos
Pilha
Heap
MemóriaBaixa
MemóriaAlta
VINCULAÇÃOVINCULAÇÃO Modelo de memória em tempo de execucão
![Page 40: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/40.jpg)
40
TIPOSTIPOS 1 – Verificação de tipos 2 – Tipificação forte 3 – Compatibilidade de tipos
![Page 41: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/41.jpg)
41
TIPOSTIPOS 1 – Verificação de tipos - 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
![Page 42: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/42.jpg)
42
TIPOSTIPOS 1 – Verificação de tipos - 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
![Page 43: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/43.jpg)
43
TIPOSTIPOS 1 – Verificação de tipos - 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
![Page 44: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/44.jpg)
44
ESCOPOESCOPO 1 – Escopo estático - Hierarquia de escopos: Pascal, C, C++ e Java - Pai estático e Ancestrais estáticos - Declarações ocultas
![Page 45: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/45.jpg)
45
ESCOPOESCOPO 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; var x : integer; begin ..x.. end; begin end;
![Page 46: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/46.jpg)
46
ESCOPOESCOPO 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; var x : integer; begin ..x.. end; begin end;
![Page 47: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/47.jpg)
47
ESCOPOESCOPO 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; var x : integer; begin ..x.. end; begin end;
![Page 48: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/48.jpg)
48
ESCOPOESCOPO 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; var x : integer; begin ..x.. end; begin end;
![Page 49: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/49.jpg)
49
ESCOPOESCOPO 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; var x : integer; begin ..x.. end; begin end;
![Page 50: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/50.jpg)
50
ESCOPOESCOPO 1 – 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
![Page 51: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/51.jpg)
51
ESCOPOESCOPO 1 – 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
if (list[i] < list[j]){ int temp; temp = list[i]; list[i] = list[j]; list[j] = temp;}
![Page 52: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/52.jpg)
52
ESCOPOESCOPO 1 – 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
![Page 53: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/53.jpg)
53
ESCOPOESCOPO 4 – Escopo dinâmico - Baseado na seqüência de chamadas - Escopo determinado em tempo de execução - Pai dinâmico e Ancestrais dinâmicos
![Page 54: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/54.jpg)
54
ESCOPOESCOPO 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; var x : integer; begin ... end; begin end;
![Page 55: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/55.jpg)
55
ESCOPOESCOPO 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; var x : integer; begin ... end; begin end;
sub1sub2
![Page 56: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/56.jpg)
56
ESCOPOESCOPO 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; var x : integer; begin ... end; begin end;
sub1big
![Page 57: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/57.jpg)
57
ESCOPOESCOPO 4 – 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
![Page 58: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/58.jpg)
58
COMPLEMENTOCOMPLEMENTO 1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas
![Page 59: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/59.jpg)
59
COMPLEMENTOCOMPLEMENTO
void printheader(){ .........}void compute(){ int sum; printheader();}
1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas
![Page 60: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/60.jpg)
60
COMPLEMENTOCOMPLEMENTO
void printheader(){ .........}void compute(){ int sum; printheader();}
1 – Escopo x Tempo de vida - Escopo estático => Espacial Tempo de vida => Temporal - C, C++ e Java => Especificador STATIC - Chamadas a subprogramas
![Page 61: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/61.jpg)
61
COMPLEMENTOCOMPLEMENTO 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
![Page 62: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/62.jpg)
62
COMPLEMENTOCOMPLEMENTO 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
![Page 63: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/63.jpg)
63
COMPLEMENTOCOMPLEMENTO 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
![Page 64: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/64.jpg)
64
EXERCÍCIOSEXERCÍ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?
![Page 65: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/65.jpg)
65
EXERCÍCIOSEXERCÍ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.
![Page 66: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/66.jpg)
66
EXERCÍCIOSEXERCÍ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.
![Page 67: 1 Aula 4 Nomes, Vinculações, Tipos e Escopos Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocument.pub/reader035/viewer/2022070311/552fc111497959413d8c6281/html5/thumbnails/67.jpg)
67
EXERCÍCIOSEXERCÍCIOS 8 – Escopo estático x Escopo dinâmico. 9 – Escopo estático x Escopo dinâmico. 10 – Escopo estático x Escopo dinâmico. 11 – Escopo estático 12 – Blocos 13 – Escopo dinâmico 14 – Escopo dinâmico