[동적 스코프 규칙]
: 실행도중 가장 최근에 만나고 아직 return에 의해 제거되지 않은 현재 바인딩을 기준으로 삼는다.
(APL, Snobol, Tcl등)
: 실행시점까지 referencing enviorment와 관련된 오류 발견 불가능.
[정적 스코프와 동적스코프 차이]
: 정적스코프는 코드상에서 가장 가까운 스코프 기준 (호출개념X, 이동개념)
# static scope일때
: first()를 호출하던, second()를 호출하던 결과는 무조건 1
# dynamic scope일때
- main()에서 first()호출시, 전역변수 n (line 1)은 1
second() , 전역변수 n (line 1)은 2 - second()에서 호출한 first()의 1은 second 지역 n에 저장.
매우 중요하니까 숙지 필수!
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 3-5강. 다중 지정(aliases와 overloading) (0) | 2019.10.26 |
---|---|
프로그래밍 언어론 3-4강. 스코프 구현(Implementing Scope) (0) | 2019.10.26 |
프로그래밍 언어론 3-3-5강. 모듈 타입과 클래스 (0) | 2019.10.26 |
프로그래밍 언어론 3-3-4강. 모듈(Modules) (0) | 2019.10.26 |
프로그래밍 언어론 3-3-3강. 선언 순서(Declaration Order) (0) | 2019.10.26 |