프로그래밍 언어론 3-3-6강. 동적 스코프(Dynamic Scoping)

[프로그래밍 언어론]

2019. 10. 26. 14:35

 

[동적 스코프 규칙]

: 실행도중 가장 최근에 만나고 아직 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에 저장.

 

매우 중요하니까 숙지 필수!