Programing Language Chapter 7 연습문제
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

Programing Language Chapter 7 연습문제에 대한 보고서 자료입니다.

목차

1. 다음 프로그램에서 각 인자 전달 방법에 따른 실행 결과를 적으시오

2. 다음은 C++ 프로그램에서 잘못된 부분은? (함수인자에 기본값을 사용하고 있음에 주의)

3. 다음 알고리즘을 C 언어나 파스칼 언어를 사용하여 재귀함수 (순환 함수, recursion function)로 나타내시오.

4. CEP 와 CIP에 대해서 설명하시오. 단순 호출/반환 구조에서 되부름이 허용되지 않는 이유를 설명하시오.

본문내용

그램의 참조 환경(reference environment)을 나타냄
[그림 1] 단순 호출/반환 구조
[그림 2] 되부름(Recursive call, 재귀함수, 순환함수) 구조
단순 서브 프로그램 호출/반환 구조
호출된 서브 프로그램은 다시 다른 서브 프로그램 호출 가능
호출한 프로그램은 실행을 중단하며 호출된 서브 프로그램은 즉시 실행을 시작
서브 프로그램 실행 종료 후에 호출한 프로그램으로 제어를 반환
호출한 프로그램은 서브 프로그램을 호출한 위치의 다음의 문장에서 실행을 재개
단순 호출/반환 구조는 어셈블리, FORTRAN, COBOL과 같은 언어에서 사용
제어 구조의 제한점
순환함수(재귀함수)를 허용하지 않는다.
명시적인 서브 프로그램 호출 문장이 있어야 한다.
호출 시점에서 즉시 제어를 넘겨야 한다.
호출된 서브 프로그램은 수행을 종료한 후에 제어를 반환한다.
서브 프로그램의 되부름 구현
서브 프로그램 A()가 B()를 호출하면, A()의 활성화 레코드의 생존기간이
B()의 생존기간 포함
서브 프로그램 되부름의 허용
서브 프로그램 X는 자기 자신 X를 호출
X가 호출한 서브 프로그램 Y에서도 X를 호출
되부름 호출과 일반 호출의 차이점
서브 프로그램의 첫 번째 활성화 레코드가 존재하는 동안에 두 번째 활성
레코드가 생성
첫 번째와 두 번째 활성화 레코드의 지역 변수의 내용간에는 상호 영향을 미치지
않음
되부름 구현
활성화 레코드를 stack영역에 할당
호출한 서브 프로그램의 생존기간이 호출된 프로그램의 생존 기간을 포함
구조
같은점 : 일반적인 서브 프로그램 호출/반환 구조와 동일
차이점 : 같은 정의에 대해 여러 개의 서브 프로그램 활성화 부분이 동시에 존재
동적 체인(dynamic chain)
되돌아갈 환경을 가리키는 값들은 연결 체인을 형성 프로그램 수행 중 동적으로
할당된 활성 레코드를 순서대로 연결
단순 호출/반환 구조에서 되부름이 허용되지 않는 이유
단순 호출/반환 구조는 [그림 1]에서 표현된 바와 같이 로칼 변수들의 저장공간은
하나뿐이다. 그래서, 자신의 코드를 무한히 복사하는 것은 불가능하다.
순환함수의 경우 [그림 2]에서 와 같이 활성화 레코드를 stack영역에 할당하여
첫 번째 활성화 레코드가 있는 동안 두번째 활성화 레코드 생성이 가능하게 한다.
Programing Language
Chapter 7 연습문제
(짝수번)
김유섭 교수님
정보통신 공학부
19984259
양필희

키워드

  • 가격1,000
  • 페이지수6페이지
  • 등록일2003.10.23
  • 저작시기2003.10
  • 파일형식한글(hwp)
  • 자료번호#227813
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니