[정적 스코프(Static scope)]
: 실행 시간에서의 조작 흐름과 관계 없이 컴파일 시간에 스코프 결정
[C언어에서의 정적 스코프]
: C언어에서 subroutine 입장시 지역변수 생성(Create), 전역변수 비활성화(deactivate, hidden) - 중복 변수명일시
퇴상시 지역변수 제거(Destroy), 전역변수 활성화(activate)
[정적 스코프의 언어별 발전]
1. Basic 초기
: 지역, 전역의 구분 없이, 전역 하나만 존재 => 스코프 개념 없음(오직 한개의 스코프)
: 변수 명시적 선언 X
2. Fortran90 초기
: 지역, 전역 구분 시작하지만, 변수 명시적 선언은 선택사항(선언 안하면 현재 함수의 지역변수라 가정)
: 지역 변수의 수명은 서브루틴의 단일 실행까지 ( = 재귀 사용 불가)
3. C, Algol
: 지역변수 수명범위로 인해 재귀 사용불가를 save-ed 변수를 이용해 해결
: C에서 static, Algol에서 own
: 해당 save-ed를 변수에 붙이면 해당 변수는 프로그램 전체실행에서 살아 있다.
# C언어에서 변수 선언시 값 초기화 안하면 자동으로 0으로 초기화한다.
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 3-3-3강. 선언 순서(Declaration Order) (0) | 2019.10.26 |
---|---|
프로그래밍 언어론 3-3-2강. 중첩 서브루틴(Nested Subroutines) (0) | 2019.10.26 |
프로그래밍 언어론 3-3강. 스코프 규칙(Scope rule) (0) | 2019.10.26 |
프로그래밍 언어론 3-2-4강. 쓰레기 수집(Garbage Collection) (0) | 2019.10.26 |
프로그래밍 언어론 3-2-3강. 메모리할당- 힙기반 할당(Heap-Based Allocation) (0) | 2019.10.26 |