1 Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos barbosa [email protected].
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa...
Transcript of 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa...
![Page 1: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/1.jpg)
1
Aula 7Aula 7ImplementandoImplementandoSubprogramasSubprogramas
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 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/2.jpg)
2
1 – Semântica das Chamadas e Retornos
SumárioSumário
![Page 3: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/3.jpg)
3
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 77
SumárioSumário
![Page 4: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/4.jpg)
4
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL
SumárioSumário
![Page 5: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/5.jpg)
5
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação
SumárioSumário
![Page 6: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/6.jpg)
6
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade
SumárioSumário
![Page 7: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/7.jpg)
7
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais
SumárioSumário
![Page 8: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/8.jpg)
8
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais7 – Blocos
SumárioSumário
![Page 9: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/9.jpg)
9
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais7 – Blocos8 – Implementando o Escopo Dinâmico
SumárioSumário
![Page 10: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/10.jpg)
10
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais7 – Blocos8 – Implementando o Escopo Dinâmico9 – Implementando Suprogramas como Parâmetros
SumárioSumário
![Page 11: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/11.jpg)
11
1 – Semântica das Chamadas e Retornos - Ligação de Subprograma (chamada e retorno)
SumárioSumário
![Page 12: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/12.jpg)
12
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 77 - Subprogramas não podem ser recursivos - Registro de ativação - Instância de registro de ativação - FORTRAN 90: aninhados e recursivos
SumárioSumário
![Page 13: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/13.jpg)
13
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL - Tamanho dos RAs: fixo ou variável ? - Suprogramas aninhados - Recursividade
SumárioSumário
![Page 14: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/14.jpg)
14
Código
DadosEstáticos
Heap
Pilha
![Page 15: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/15.jpg)
15
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação - Estrutura - Exemplo sem recursividade e não locais
SumárioSumário
![Page 16: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/16.jpg)
16
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação - Estrutura - Exemplo sem recursividade e não locais
SumárioSumário
![Page 17: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/17.jpg)
17
Variáveis Locais
Parâmetros
Vínculo Dinâmico
Vínculo Estático
Endereço de retorno
Estrutura de um RAEstrutura de um RA
![Page 18: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/18.jpg)
18
procedure sub(var total : real; part : integer); var lista : array[1..5] of integer; soma : real; begin ... end;
![Page 19: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/19.jpg)
19
procedure sub(var total : real; part : integer); var lista : array[1..5] of integer; soma : real; begin ... end;
soma
lista[5]
lista[4]
lista[3]
lista[2]
lista[1]
part
total
Vínculo Dinâmico
Vínculo Estático
Endereço de retorno
![Page 20: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/20.jpg)
20
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação - Estrutura - Exemplo sem recursividade e não locais
SumárioSumário
![Page 21: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/21.jpg)
21
Local PMain
![Page 22: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/22.jpg)
22
Local T
Local S
Parâmetro R
Vínculo Dinâmico
Vínculo Estático
Retorno
RA de B
Local PMain
![Page 23: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/23.jpg)
23
Local T
Local S
Parâmetro R
Vínculo Dinâmico
Vínculo Estático
Retorno
Local Y
Parâmetro X
Vínculo Dinâmico
Vínculo Estático
Retorno
RA de B
RA de A
Local PMain
![Page 24: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/24.jpg)
24
Local T
Local S
Parâmetro R
Vínculo Dinâmico
Vínculo Estático
Retorno
Retorno
Local Y
Parâmetro X
Vínculo Dinâmico
Vínculo Estático
Retorno
Parâmetro Q
Vínculo Dinâmico
Vínculo Estático
RA de B
RA de A
RA de C
Local PMain
![Page 25: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/25.jpg)
25
Local T
Local S
Parâmetro R
Vínculo Dinâmico
Vínculo Estático
Retorno
Retorno
Local Y
Parâmetro X
Vínculo Dinâmico
Vínculo Estático
Retorno
Parâmetro Q
Vínculo Dinâmico
Vínculo Estático
RA de B
RA de A
RA de C
Local PMain
Local Offset
![Page 26: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/26.jpg)
26
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade - Exemplo do programa fatorial
SumárioSumário
![Page 27: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/27.jpg)
27
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais - Encadeamentos Estáticos - Displays
SumárioSumário
![Page 28: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/28.jpg)
28
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais7 – Blocos - Implementando como extensão dos RAs
SumárioSumário
![Page 29: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/29.jpg)
29
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais7 – Blocos8 – Implementando o Escopo Dinâmico - Acesso profundo - Acesso raso
SumárioSumário
![Page 30: 1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos barbosa barbosa@exatas.unisinos.br.](https://reader035.fdocumentos.com/reader035/viewer/2022062404/552fc111497959413d8c628c/html5/thumbnails/30.jpg)
30
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade6 – Referências Não Locais7 – Blocos8 – Implementando o Escopo Dinâmico9 – Implementando Suprogramas como Parâmetros - Encadeamento Estático - Displays
SumárioSumário