Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

(Sebesta, 2000) Suponha que o seguinte programa tenha compilado e executado usando regras de escopo estático. Qual valor de x é impresso no procedimento sub1? De acordo com as regras de escopo dinâmico, qual valor de x é impresso no procedimento sub1?

program main;
var x : integer;

procedure sub1;
begin { sub1 }
writeln('x = ', x);
end; { sub1 }

procedure sub2;
var x : integer;
begin { sub2 }
x := 10;
sub1;
end; { sub2 }

begin { main }
x := 5;
sub2;
end. { main }

 

Supondo que o programa tenha sido compilado e executado usando as regras de escopo estático, o valor de x impresso no procedimento sub1 é 5.

Supondo que o programa tenha sido compilado e executado usando as regras de escopo dinâmico, o valor de x impresso no procedimento sub1 é 10.

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