Compiladores - Atividade 15

Leia com atenção as instruções abaixo.

Formato da Entrega:

Valor: 2,5 pontos na 4ª Nota.

Data da Entrega:20/10/2020

Questão 01 - 1,0 Ponto - exercício 7.4, página 393

Apresente a pilha de registros de ativação para o programa em Pascal a seguir; mostre as vinculações de controle e de acesso, após a segunda ativação do procedimento c. Descreva como a variável x é acessada dentro de c.

program env;
procedure a;
    var x: integer;
    procedure b;
        procedure c;
            begin
                x := 2;
                b;
            end;
        begin (* b *)
            c;
        end;
    begin (* a *)
        b;
    end;
begin (* main *)
    a;
end.
                    

Questão 02 - 1,5 Pontos - exercício 7.5, página 393

Apresente a pilha de registros de ativação para o programa em Pascal a seguir:

program closureEx(output);
var x: integer;

procedure one;
begin
    writeln(x);
end;

procedure p(procedure a);
begin
    a;
end;

procedure q;
    var x: integer;
    procedure two;
        begin
            writeln(x);
        end;
    begin
        x := 2;
        p(one);
        p(two);
    end; (* q *)

begin (* main *)
    x := 1;
    q;
end.