2006년 4월 22일 토요일

[PL]scoping

. scoping
  . 여러 scope에 같은 variable name이 출현할 때, 어디에 binding 할지 정하는 것

. static scoping
  . = lexical scoping
  . a variable always refers to its nearest enclosing binding
  . unrelated to the runtime call stack
  . compile time에 binding을 결정

ex)
int x = 0;
int f () { return x; }
int g () { int x = 1; return f(); }

g()는 0을 retrun 함

. dynamic scoping
  . control flow를 따라 global x stack에 값을 push, pop함.
  . run time에 binding을 결정

ex)
int x = 0;
int f () { return x; }
int g () { int x = 1; return f(); }

g()는 1을 retrun 함

댓글 없음:

댓글 쓰기