Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Sebesta, 2000) Considere o seguinte programa Pascal esquemático:

program main;
var x : integer;

procedure sub1;
var x : integer;

procedure sub2;
begin { sub2 }
...
end; { sub2 }

begin { sub1 }
...
end; { sub1 }

procedure sub3;
begin { sub3 }
...
end; { sub3 }

begin { main }
...
end. { main }

Suponhamos que a execução desse programa seja na seguinte ordem unitária:

main chama sub1

sub1 chama sub2

sub2 chama sub3

  1. Supondo que esteja presente o escopo estático, qual declaração de x é a correta para a referência a x em:
    1. sub1
    2. sub2
    3. sub3
  2. Supondo que esteja presente o escopo dinâmico, qual declaração de x é a correta para a referência a x em:
    1. sub1
    2. sub2
    3. sub3

 

  1. Supondo que esteja presente o escopo estático, qual declaração de x é a correta para a referência a x em:
    1. sub1 - x declarado por sub1.
    2. sub2 - x declarado por sub1.
    3. sub3 - x declarado por main.
  2. Supondo que esteja presente o escopo dinâmico, qual declaração de x é a correta para a referência a x em:
    1. sub1 - x declarado por sub1.
    2. sub2 - x declarado por sub1.
    3. sub3 - x declarado por sub1.

Sebesta, Robert W. (2000). Conceitos de Linguagens de Programação. 4ª edição. Porto Alegre: Bookman. 624 páginas.