반응형
0. 개요
🤔 궁금증 or 들어가기 전
스코프가 뭔데!? -> 코드를 보고 여러 가지 스코프의 개념을 잘 이해해 보자.
1. Scope Rules
1-1. What is Scope
- Scope (스코프) : 프로그램 내에서 바인딩이 활성화되어 있는 Code의 Text 영역
= 프로그램에서 변수나 함수가 유효한 범위
스코프는 moule의 body, class, subroutine 또는 구조적인 제어 흐름과 관련이 있으며, 이러한 스코프는 종종 a block이라고도 불린다.
1-2. 스코프의 종류
1. Statically scoped (정적 스코프)
= lexically scoped
: Compile 시점에 스코프가 확정되어 Code를 보고 알 수 있다.
ex. C, Jaca, Python, C# ...
2. Dynamically scoped (동적 스코프)
: Run time에 스코프가 확정되어 실행 흐름에 의존한다. (코드 돌려봐야 알 수 있음)
ex. APL, Snobol, Tcl, early dialects of LIsp ...
1-3. Referencing environment (참조 환경)
스코프에는 당연히 바인딩된 변수나 함수의 집합이 포함된다.
변수나 함수를 참조할 때 프로그램은 스코프 내에서 해당 바인딩을 찾는다.
- 프로그램 실행 중에 그 당시에 사용할 수 있는 모든 binding (함수, 변수 등)
반응형