[정적 스코프 구현]
- Symbol table
: 정적 스코프에서 name 추적위해 사용하는것.
: 사전역할. name과 정보(object)를 매핑해서 정보를 가지고 있는다(컴파일러가 알고있음)
(중복된 name으로 다른 object 부여 가능)
# Symbol table의 기본 연산
1) Insert new mapping ( =새로운 name-to-object 바인딩 생성)
2) 이미 name에 대한 바인딩 있는지 검색
# Symbol table 예시
int a = 3;
int b = 4;
void f(){
int a = 5;
}
# symbol table 상태 : LIFO 구조 id a 5 // enter_scope연산자, leave_scope연산자 존재 id b 4 id a 3 // 맨 아래 : 이방법이기에 name 검색시, 위에서부터 검색하면, 중복된 name일시 가장 최근바인딩 보인다 |
[동적 스코프 구현]
: 인터프리터가 Symbol table과 유사한 작업을 수행하는 연산자를 실행시점(run-time)에 수행한다.
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 3-6강. Referencing Enviroment에 대한 바인딩 (0) | 2019.10.27 |
---|---|
프로그래밍 언어론 3-5강. 다중 지정(aliases와 overloading) (0) | 2019.10.26 |
프로그래밍 언어론 3-3-6강. 동적 스코프(Dynamic Scoping) (0) | 2019.10.26 |
프로그래밍 언어론 3-3-5강. 모듈 타입과 클래스 (0) | 2019.10.26 |
프로그래밍 언어론 3-3-4강. 모듈(Modules) (0) | 2019.10.26 |