1. 비지역 변수 참조 방법
- 블록 기반 언어
- 동적 내포관계 : 단위 프로그램의 호출 관계를 의미
- 정적 내포관계 : 정적 영역에 따른 비지역 변수의 영역 관계를 의미
1) 정적 체인 사용 기법
- 모든 활성화 레코드에 정적 링크를 할당
- 비지역 변수에 대한 참조 시 정적 체인을 따라 검색해서 먼저 발견된 변수를 참조
- 검색 시간이 많이 필요하기때문에 실제로 사용하지는 않음
- 정적 링크 : 작성된 프로그램의 정적 내포관계에 있는 활성화 레코드를 가리키는 포인터
- 정적 체인 : 현재 활성화 레코드로부터 연결된 정적 링크의 순서
2) 디스플레이 사용 기법
- 비지역 변수들의 자료값에 대한 참조 시간을 줄이기 위한 구현 기법
- 정적 링크 대신에 실행 시간 어느 시점에서나 정적 체인 관계를 디스플레이라고 부르는 1차원 가변 배열을 사용하여 유지
- 단위 프로그램의 호출과 반환 횟수에 비하여 비지역 변수들의 사용이 상대적으로 증가할 경우 매력적인 방법
- 어떠한 비지역 변수에 대한 참조 시간도 동일
- 그러나, 활성화 레코드가 할당되거나 회수될 때마다 디스플레이 내용을 변경시키는 일을 수행해야 함
- 활성화 레코드에 변화된 일부 디스플레이 값을 저장하기 위한 기억장소를 요구함
2. 부프로그램의 개요
- 부프로그램 : 프로그램을 모듈화, 함수 / 서브루틴
- 특성
- 각 프로시저는 단일 진입점을 가짐
- 호출된 프로그램이 실행되는 동안 이를 호출한 프로그램의 실행은 중단됨
- 부프로그램의 실행이 끝나면 제어는 호출한 프로그램에게 돌아감
- 프로시저
- 명령형 프로그래밍 언어에 국한된 용어
- 함수와 서브루틴을 구별하지 않는 부프로그램을 읨
- 구성요소 : 프로시저 이름, 매개변수 리스트, 몸체, 실행환경
- procedure : 예약어
- 매개변수 : 각 모듈 간에 자료객체나 자료값을 넘겨주기 위한 언어 구성자, 형식 매개변수과 실 매개변수로 나누어짐
- 함수
- 하나의 결과값만을 반환하는 프로시저
- 식에서 변수처럼 하나의 원소로 사용
- 대부분의 프로그래밍 언어에서 함수는 매개변수 값을 변경하거나 해당환경에 있는 변수값을 변경할 수 있음
- 서브루틴
- 결과값을 하나 이상의 매개변수에 할당하거나 자신의 환경으 ㄹ변환, 호긍ㄴ 둘 다 수행함으로써 주어진 목적을 완성하는 프로시저
- 함수값을 결정하는 방법
- 지역 변수로 간주되는 함수 이름에 결과값을 배정
- return 문으로 결과값을 반환
- 매개변수의 구분
- 형식 매개변수
: 부프로그램이 실행되는 동안에 호출자가 보내준 식 또는 다른 이름을 대신하여 그 프로그램에서 사용되는 이름
: 프로시저의 정의에서 선언되어 일반적으로 지역 변수 역할을 함
- 실 매개변수
: 원래의 식 또는 이름
: 상수나 식의 사용 여부는 프로그래밍 언어에 따라 다름
3. 매개변수 전달 기법
- 참조호출(call by reference)
- 실 매개변수의 주소를 대응되는 형식 매개변수에게 보내는 방법
-
'프로그래밍 > TIL(Today I Learned)' 카테고리의 다른 글
15강 추상자료형 (0) | 2018.10.16 |
---|---|
14강 매개변수의 전달기법(2) (0) | 2018.10.16 |
12강 동적 기억장소 할당 (0) | 2018.10.16 |
11강 기억장소 할당 (0) | 2018.10.16 |
10강 영역과 수명(2) (0) | 2018.10.14 |