프로그래밍/TIL(Today I Learned)

13강 비지역 변수 참조 방법과 매개변수 전달 기법(1)

가라멜 2018. 10. 16. 18:51
반응형

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