Escopo (computação): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 81:
Uma das técnicas mais comuns de implementação do escopo estático é a cadeia estática.<ref name="pratt2">{{Citar livro|autor=PRATT, Terrence W.; ZELKOWITZ, Marvin V|título=Programming Languages|subtítulo=Design and Implementation|idioma=inglês|edição=4ª|local=Upper Saddle River, New Jersey|editora=Prentice hall|ano=2001|páginas=339-340|volumes=|volume=|id=ISBN 0-13-027678-2}}</ref> Esta cadeia mantém ponteiros em cada procedimento apontados para o pai estático. Quando uma referência a uma variável é encontrada em um procedimento, primeiro se procura no registro de ativação deste procedimento. Caso não se encontre a variável, se busca no próximo pai estático e assim por diante. No exemplo da figura ao lado (relativo ao código de exemplo em Pascal acima), após a chamada dos procedimentos A, B, D e C respectivamente, caso haja uma referência no procedimento C sobre a variável K, a variável usada é a que está declarada no procedimento B (K real).
 
Implementações corretas do escopo estático em linguagens com funções aninhadas de primeira classe (ou seja, funções que podem ser passadas como argumentos) podem ser sutis, pois se exige que cada valor da função leve com ele um registro dos valores das variáveis das quais ele depende (o par da função e deste ambiente é chamado de [[fechamento (informática)Closure|fechamentoclosure]]).
 
<!--