Computer Science/프로그래밍언어론

[프로그래밍 언어론] 3-1. 스코프 (Scope)

dog-pawwer 2023. 10. 15. 03:03
반응형

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 (함수, 변수 등)

반응형