O documento discute conceitos de sub-programas (funções e procedimentos) em linguagens de programação, incluindo: 1) Como sub-programas permitem abstração ao parametrizar escopos nomeados; 2) Como argumentos e parâmetros são associados durante uma chamada; 3) Como a memória é gerenciada através de registros de ativação para cada chamada de sub-programa.
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Paradigmas de Linguagens de Programacao - Aula #3
1. Paradigmas de Linguagens de Programação Paradigma Imperativo [Sub-programas] Aula #3 (CopyLeft)2009 - Ismar Frango ismar@mackenzie.br
2.
3.
4. Como funciona a execução de sub-programas? Modelo simples de memória procedure P ( c: integer ) x: integer; procedure Q ( a, b: integer ) i, j: integer; begin x := x+a+j; end; begin Q(x,c); end;
13. Caller: – avalia os parâmetros efetivos e os coloca na pilha – Registradores em uso pelo chamador são salvos em memória – armazena o endereço de retorno e o valor antigo do frame_pointer no registro de ativação da rotina chamada e atualiza o valor do frame_pointer; Calee: – salva valores de registradores e outras informações do estado da máquina; – inicializa variáveis locais e começa sua execução. Sequência da chamada
14. Callee: – armazena o valor de retorno logo após o registro de ativação da rotina chamadora; – restaura o apontador do topo do RA e os registradores da máquina e desvia para o endereço de retorno dentro da rotina chamadora; Caller: – copia o valor retornado no seu próprio registro de ativação Sequência do retorno