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
2
1 – Semântica das Chamadas e Retornos
SumárioSumário
3
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 77
SumárioSumário
4
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL
SumárioSumário
5
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação
SumárioSumário
6
1 – Semântica das Chamadas e Retornos2 – Implementando Subprogramas FORTRAN 773 – Implementando Subprogramas ALGOL4 – Registros de Ativação 5 – Recursividade
SumárioSumário
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
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
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
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
11
1 – Semântica das Chamadas e Retornos - Ligação de Subprograma (chamada e retorno)
SumárioSumário
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
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
14
Código
DadosEstáticos
Heap
Pilha
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
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
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
18
procedure sub(var total : real; part : integer); var lista : array[1..5] of integer; soma : real; begin ... end;
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
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
21
Local PMain
22
Local T
Local S
Parâmetro R
Vínculo Dinâmico
Vínculo Estático
Retorno
RA de B
Local PMain
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
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
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
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
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
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
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
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
Top Related