Chapter 9 – 부 프로그램 Outline 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

1 Prof. Young Jin Nam, Daegu University 컴퓨터 구조 (Computer Architecture) 명령어 세트 : 특성과 기능 남영진
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
Chapter 7 서브프로그램. Introduction 서브 프로그램의 명시 형식 인자전달 방법 ▫ Call by value ▫ Call by value result ▫ Call by reference ▫ Call by name 구현 방법 2.
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
Programming Languages Type Conversion Classifying Type Conversions According to the notation –Implicit Conversions (coercion) –Explicit Conversions (casting)
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Chapter 7 ARP and RARP.
제 1장 C 언어의 소개.
제 3장 프로그래밍 언어 설계 3.1 설계 기준의 역사적 변천 3.2 효율성 3.3 일반성, 직교성, 획일성
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
기본 컴퓨터 프로그래밍 Lecture #6.
프로그래밍 언어론 제 8 장 함수와 프로시져 함수의 원소 재귀 함수(Recursive Functions) 프로시져
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
Chapter 10 – 추상 자료형 Outline 10.1 소개 10.2 Ada의 추상 자료형 10.3 C++의 추상 자료형
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
Delphi 2009의 언어 개선 박지훈.임프 2018년 11월 16일 금요일
Chapter 11 – 예외 처리 Outline 11.1 설계 쟁점 11.2 Pl/I의 예외 처리 11.3 Ada의 예외 처리
10장 예외 처리 프로그래밍 언어론 10.6 Pascal과 C의 에러 처리 10.1 설계 주제 10.2 PL/I의 예외 처리
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
Internet Control Message Protocol (ICMP)
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
Internet Computing KUT Youn-Hee Han
Discrete Math II Howon Kim
Java RMI (Remote Method Invocation)
바인딩, 메모리 관리 SANGJI University Kwangman Ko
프로그래밍언어론 2nd edition Tucker and Noonan
Part 08 함수 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
Chapter 6 – 변수, 바인딩, 식 및 제어문 Outline 6.1 변수 6.2 바인딩 6.3 선언 6.4 배정문
VHDL Package and Sub program
Ch2-2. VHDL Basic VHDL lexical element VHDL description
장. 문법 구조(Syntax) 컴퓨터공학과 권기태 프로그래밍언어론.
제 1 장 C 언어의 개요 Google 공동 창업자, 래리 페이지와 세르게이 브린.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
5주차: Functions in C.
Chapter 2 – 언어의 변천 Outline 2.1 디지털 컴퓨터 이전의 언어
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
adopted from KNK C Programming : A Modern Approach
제 10장 부 프로그램 10.1 개요 10.2 매개 변수 평가와 전달 기법 10.3 형식 매개 변수 명세
Chapter 10 함수 기본.
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
Introduction to Programming Language
Signature, Strong Typing
프로그래밍언어론 2nd edition Tucker and Noonan
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
제 1 장. 자료구조와 알고리즘.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Chapter 4 변수 및 바인딩.
Discrete Math II Howon Kim
Signature, Strong Typing
Signature, Strong Typing
데이터 구조 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
Chapter 13 – 객체 지향 프로그래밍 Outline 13.1 소프트웨어의 재사용과 독립성
Signature, Strong Typing
Java RMI (Remote Method Invocation)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
이산수학(Discrete Mathematics)
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
Signature, Strong Typing
Stored program 장종원
Signature, Strong Typing
[CPA340] Algorithms and Practice Youn-Hee Han
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
Scalar and composite data
Presentation transcript:

Chapter 9 – 부 프로그램 Outline 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세 9.1 개요 9.2 매개변수 평가와 전달기법 9.3 형식 매개변수 명세 9.4 부작용과 이명 9.5 연산자 중복 정의 9.6 포괄 기능 9.7 코루틴

procedure 프로시저 이름(매개변수리스트) 9.1 개요 부프로그램(subprogram, procedure) 일련의 행위나 계산을 추상화하는 기법으로 제공 실행과 분리해서 선언할 수 있는 블록(호출 요구) 함수(function) : 함수 이름으로 값 반환 서브루틴(subroutine),프로시저(procedure) : 매개변수로 값 반환 부프로그램의 일반적 특성 각 프로시저는 단일 진입점을 갖음 호출프로그램(caller)은 피호출 프로그램(callee)의 실행동안 중단 부프로그램 종료 시 제어는 호출자에게 되돌아감 프로시저의 구성 프로시저 이름 매개변수(parameter) 리스트 환경(environment) 몸체(body) procedure 프로시저 이름(매개변수리스트) 선언부(declarations) 몸체(body) end 프로시저 이름

9.1 개요 매개변수 (parameter) 매개변수 결합 (parameter association) 위치 매개변수 결합(positional parameter association) 리스트에 나타난 위치로 바인딩 짧은 매개변수 리스트에 적합 이름 매개변수 결합(named parameter association) 이름으로 바인딩 매개변수 리스트가 길 때 적합 일부 매개변수 값을 디폴트로 줄 때 적합

9.1 개요 함수(Function) 함수 반환 값으로 허용되는 자료형 함수 이름으로 값을 반환 함수의 투명성 제공(환경 변화 없이) 함수 값 반환 방법 함수이름에 값 배정 RETURN 문으로 결과 값 반환 함수 반환 값으로 허용되는 자료형 FORTRAN, ALGOL 60 : 스칼라형(실수, 정수, 논리형 등) Pascal : 스칼라형, 포인터 PL/I : 스칼라형, 포인터, 문자열 Ada : 모든 자료형(배열, 레코드 등 포함): 반환문의 직교성 C, C++ : 스칼라형, 포인터(반환문의 직교성을 갖도록 제공)

9.1 개요 프로시저에서 사용 식별자 프로시저에 관해서 고려할 사항 형식 매개 변수 지역 변수 비지역 변수 비지역 변수 값을 바인딩하는 환경은? 실 매개 변수의 평가방법은? 형식 매개 변수와 실 매개 변수의 바인딩 방법은?

9.2 매개변수 평가와 전달기법 형식 매개 변수와 실매개 변수 실 매개 변수 형식 매개 변수 9.2 매개변수 평가와 전달기법 형식 매개 변수와 실매개 변수 실 매개 변수 호출 프로그램으로 전달하기 위하여 사용된 식 또는 이름 형식 매개 변수 부프로그램이 실행될 때, 실 매개 변수를 대신하여 사용되는 이름 일반적으로 지역 변수(또는 상수) 역할 매개 변수 명세 제공 최근 경향 형식매개변수 이름, 자료형, 바인딩 방법 등등

9.2 매개변수 평가와 전달기법 형식 매개 변수와 실 매개 변수의 사용 예 형식 매개 변수 - 피호출자 (callee) 9.2 매개변수 평가와 전달기법 형식 매개 변수와 실 매개 변수의 사용 예 형식 매개 변수 - 피호출자 (callee) 실 매개 변수 - 호출자 (caller) SUBROUTINE P(A , B) [Fortran] procedure P(A , B) [Algol] P:PROCEDURE(A , B); [PL/I] ▽ A P B [APL] CALL P(X , Y * Z) P(X , Y * Z) CALL P(X , Y * Z); X P Y × Z

9.2 매개변수 평가와 전달기법 형식 매개 변수와 실 매개 변수의 대응 방법 위치 대응 이름 대응 9.2 매개변수 평가와 전달기법 형식 매개 변수와 실 매개 변수의 대응 방법 위치 대응 형식 매개 변수와 실 매개 변수가 순서대로 대응 예) procedure TEST(A, B : in REAL; C : in INTEGER); call TEST(0.1, 100.0, 50); 이름 대응 실 매개 변수에서 대응되는 형식 매개 변수 이름 사용 Ada 언어 예 : 위치 대응, 이름 대응 병행 사용 (위 procedure 선언문에서 다음 경우 모두 동일) TEST (A => 0.1, C => 50, B => 100.0); TEST (0.1, C => 50, B => 100.0); TEST (0.1, 100.0, 50);

9.2 매개변수 평가와 전달기법 참조 호출 (Call by reference, - by address, - by location) 실 매개 변수 주소를 대응되는 형식 매개 변수에 보내는 방법 procedure p (x, y) call p (a, b) 기법 적용 caller는 실 매개 변수의 주소를 계산하여 callee에게 전달 a b x y

9.2 매개변수 평가와 전달기법 예제) 참조 호출 기법의 사용 예 9.2 매개변수 평가와 전달기법 예제) 참조 호출 기법의 사용 예 p(x[i], y) 호출시 목적 코드 procedure p(a, b) {call by reference} begin a b * 4 end x[i] 주소 ADDR1 y 주소 ADDR2 LDIND ADDR2 MULT @4 STIND ADDR1

9.2 매개변수 평가와 전달기법 값 호출(call by value) 기법 적용 형식 매개 변수의 지역 변수화 9.2 매개변수 평가와 전달기법 값 호출(call by value) 형식 매개 변수의 지역 변수화 실 매개 변수 값을 대응 지역 변수로 복사 특징 - 실 매개 변수 값 불변 call p (a, b) procedure p (x, y) 기법 적용 caller는 실 매개 변수 주소(또는 값) 전달 callee는 r-value를 형식 매개 변수의 기억 장소에 복사 이후 다른 지역 변수와 동일하게 취급 a b x y

9.2 매개변수 평가와 전달기법 값 호출 기법의 예제 procedure p(a, b) {call by value} 9.2 매개변수 평가와 전달기법 값 호출 기법의 예제 목적 코드 procedure p(a, b) {call by value} begin a b * 4 end 실매개 변수값을 지역 변수인 형식 매개 변수에 복사 몸체부에 대한 코드 LDIND ADDR1 STORE a LDIND ADDR2 STORE b LOAF b MULT @4

9.2 매개변수 평가와 전달기법 결과 호출 기법 (call by result) 9.2 매개변수 평가와 전달기법 결과 호출 기법 (call by result) 피호출자가 반환 직전에 형식 매개 변수의 값을 대응되는 실 매개 변수에 복사 후 반환 형식 매개 변수 - 지역 변수 취급 형식 매개 변수의 초기 값 미정의(callee에서 정의) 값-결과 호출 기법 (call by value-result) 값 호출 기법과 결과 호출 기법을 함께 사용한 방법 기법 적용 callee 실행 시작 - 값 호출 기법 적용 callee 실행 끝 - 결과 호출 기법 적용

9.2 매개변수 평가와 전달기법 표 9.1 매개 변수 전달 기법에 따른 프로그램 예 procedure PRINT 9.2 매개변수 평가와 전달기법 표 9.1 매개 변수 전달 기법에 따른 프로그램 예 procedure PRINT integer y procedure INCR(x) integer x begin y 1 x x + 2 end y 0 INCR(y) write y 프로그램 실행 후 인쇄 값 (y) call by reference 적용 : 3 call by value-result 적용 : 2

9.2 매개변수 평가와 전달기법 이름 호출 기법 (Call by name) 9.2 매개변수 평가와 전달기법 이름 호출 기법 (Call by name) 형식 매개 변수의 이름이 사용될 때마다 그에 대응되는 실 매개 변수 자체가 사용된 것으로 간주 (필요한 r-value 또는 l-value를 매번 계산) 기법 적용 caller - 실 매개 변수의 r-value와 l-value 계산 routine (THUNK ) 작성 callee – 필요시 THUNK를 이용하여 필요한 값( r-value, l-value) 계산 단점 구현 난해 프로그램 판독성 난해

9.2 매개변수 평가와 전달기법 이름 전달 기법 예제 call EXCHG(J, N(J)) 의 해석 9.2 매개변수 평가와 전달기법 이름 전달 기법 예제 call EXCHG(J, N(J)) 의 해석 procedure EXCHG(X, Y) integer TEMP begin TEMP X X Y Y TEMP end Integer TEMP begin TEMP J J N(J) N(J) TEMP end 호출 시 J의 값 J0로 가정 참조 호출 : J0 N(J0 ) 이름 호출 : J N(J0) N(N(J0 )) J0

9.2 매개변수 평가와 전달기법 예제 9.2 매개변수의 전달에 아래 기법이 각각 사용되었다고 가정할 때, 출력되는 값을 9.2 매개변수 평가와 전달기법 예제 9.2 매개변수의 전달에 아래 기법이 각각 사용되었다고 가정할 때, 출력되는 값을 구하여라. Call by value Call by name Call by reference P : PROCEDURE ; DECLARE A(3), I ; /* A는 세 개의 원소를 갖는 배열 */ I = 1 ; /* =은 배정 연산자 */ A(1) = 2 ; A(2) = 4 ; /* A(I)가 실 매개 변수 */ CALL Q( A(I) ) ; END P ; Q : PROCEDURE( B );/* 형식 매개 변수 B는 */ /* 실매개변수 A(I)에 대응됨 A(I) = 3 ; /* 식별자 A와 I는 /* I = 2 ; /* 프로시져 P에서 상속 */ PUT LIST(B) ; /* B의 값을 인쇄 */ END Q ;

9.2 매개변수 평가와 전달기법 예제 9.3 매개변수의 전달이 아래 기법이 각각 사용되었다고 가정할 때, 출력되는 값을 9.2 매개변수 평가와 전달기법 예제 9.3 매개변수의 전달이 아래 기법이 각각 사용되었다고 가정할 때, 출력되는 값을 구하여라. Call by reference Call by value Call by name P : PROCEDURE ; DECLARE A ; A = 1 ; CALL Q(A) ; END P ; Q : PROCEDURE(B) ; DECLARE A,B ; A = 2 ; PUT LIST(B) ; END Q ;

9.2 매개변수 평가와 전달기법 예제 9.4 begin integer k integer array v 9.2 매개변수 평가와 전달기법 예제 9.4 다음 Algol 형태의 프로그램에서 매개 변수 전달 방법이 아래 (a), (b), (c), (d) 및 (e) 기법으로 사용되었을 경우,프로그램이 실행된 후의 v[3]과 v[4]의 최종값을 구하여라. (단, 미확정될 수도 있음) call by value call by reference (c) call by result (d) call by value result (e) call by name begin integer k integer array v procedure P(a) integer a a a + 1 v[k] 5 k 3 end v[3] 6 v[4] 8 k 4 call P( v[k] )

9.3 형식 매개 변수 명세 실 매개 변수와 형식 매개 변수의 정적 형 검사 형식 매개 변수 명세표 요구 형식 매개 변수 명세 실 매개 변수와 형식 매개 변수의 정적 형 검사 형식 매개 변수 명세표 요구 형식 매개 변수 명세 - 자료형, 전달 기법, 초기값, 대응 관계 등 각종 언어의 형식매개 변수 명세 Pascal : 자료형, 전달 기법 ( 값 전달 기본, var 선언 - 참조 전달, 값-결과 전달) Algol 60 : 전달 기법(이름전달 기본, value 선언 - 값 전달) Ada : 전달 기법 - 예약어 in(값 전달), out(결과 전달), in out (값-결과 전달) in - 지역 상수 취급 (지역 변수 취급 안함) 형식 매개 변수 자료형 선언 형식 매개 변수의 디폴트(초기) 값 선언 가능 (지역 상수인 in mode도 가능) Ada 함수는 투명성을 위해 in 모드만 가능

9.4 부작용과 이명 프로그래밍 언어의 유해한 특징 GOTO 문 포인터 사용 : 이명 발생 유도 부수효과 (side effect) 이명(aliasing)

9.4 부작용과 이명 부수 효과(side effect) 단위 프로그램간의 의사 소통 방법 참조 전달기법, 이름 전달기법 단점 비지역 변수 접근 부수효과 이용 참조 전달기법, 이름 전달기법 실 매개 변수 값 변화(부수효과) 예기치 못한 결과 발생(심각한 오류 발생) 단점 프로그램 판독성 저하 심각한 오류 발생 함수의 투명성 상실

9.4 부작용과 이명 이 명(aliasing) call p(a,a) procedure p(x,y) ; x := x + 1 ; 동일한 기억 장소를 함께 사용하고 있는 다른 이름 한 변수 값 변화 동일장소 사용하는 다른 변수의 값 변화 이명의 효과(aliasing effect) 초기 언어 : 효율적 기억 장소 사용을 위해 이명 허용 예) Fortran의 EQUIVALENCE, Cobol의 REDEFINES, C의 union 등 * x, y가 서로 이명 관계 call p(a,a) procedure p(x,y) ; x := x + 1 ; y := x + y ; end p 프로시저 호출에서 발생되는 이명 예(참조호출)

9.5 연산자 중복 정의 중복 정의(overloading) 한 개체(식별자, 함수 이름, 연산자)가 두 가지 이상의 개념 갖음 참조) 영역 구멍(hole in scope) 개념과 대조 사용 이유 자연스러운 원래의 일반적인 표기 사용을 지원 동일한 이름이나 연산자를 중복 사용하여 하나의 프로그램으로 합쳐도 혼동되지 않음 (문맥에 의한 구별) 중복정의 사용시 구별법 의미 확정을 문맥에서 알 수 있으면 컴파일러가 수행 문맥으로 구별이 될 수 없는 경우 사용자가 제약 사항을 명시(자격 부여) 사용자 중복 정의 제공(최근 언어)

9.5 연산자 중복 정의 Ada사용 예) “*” 연산자를 행렬 곱셈에 중복 정의 (사용자 정의) 이항 연산자(binary operator)“*”를 행렬 곱셈 연산자로 정의 자료형 MATRIX는 별도 선언 MATRIX 형 검사 - Ada 시스템에서 수행 A := B * C ; B, C가 MATRIX 형 - 위 함수 정의대로 수행 B, C가 integer 형 - 정수 곱셈 문맥으로 검사 B, C가 real 형 - 실수 곱셈 function "*"(X, Y : MATRIX) return MATRIX ;

9.5 연산자 중복 정의 중복 정의 연산자를 결정하기 위한 방법 COMPLEX C INTEGER I REAL R . 자료형 정보를 파스 트리의 각 노드에 붙인 것을 가정 (동적 또는 정적으로 결정) 트리의 단 노드들의 자료형 확정 간 노드의 자료형 결정 (complex) = + (real) * (integer) C 2 (integer) I R (real) COMPLEX C INTEGER I REAL R . C = 2 * I + R

9.5 연산자 중복 정의 표 9.2 Ada에서의 중복 표현 해결 예 procedure MAIN is ... package P is function F(X : REAL) return RANGE ; -- P.F function G(X : DOMAIN) return REAL ; -- P.G function K(X : DOMAIN) return BOOLEAN ; -- P.K end P; function F(X : BOOLEAN) return RANGE ; -- MAIN.F function G(X : DOMAIN) return BOOLEAN ; -- MAIN.G function K(X : DOMAIN) return REAL ; -- MAIN.K S : DOMAIN ; T : RANGE ; U : BOOLEAN ; V : REAL ; use P; begin T := F(V) ; -- P.F(V)를 의미 T := F(U) ; -- MAIN.F(U)를 의미 T := F(K(S)) ; -- MAIN.F(P.K(S))인지 P.F(MAIN.K(S))인지 모호함 T := F(G(S)) ; -- MAIN.F(MAIN.G(S))인지 P.F(P.G(S))인지 모호함 end

9.6 포괄 기능 (Generic Functions) 포괄 프로시저 (generic procedure) 하나 이상의 요소를 매개변수로 받아들여 실 프로시저를 생성할 수 있는 프로시저 틀(procedure templates) 컴파일 시간에 실 매개 변수가 대체되어 실 프로시저를 발생 코딩의 오류 감소 프로그램의 길이 축소 추상화 개념 제공 ELI, Simula, CLU (자료형에 따른 프로시저들 생성)

9.6 포괄 기능 (Generic Functions) Ada의 부프로그램이나 패키지에서 사용되는 포괄 설비 매크로(macro)의 확장된 개념 프로그램 생성 틀 (자체가 호출될 수 없음) 실 프로시저 : 번역시 정적 생성 (instantiation)

9.6 포괄 기능 (Generic Functions) 표 9.3 Ada에서의 포괄 프로시저 예 포괄 프로시저를 사용하여 실 프로시저를 생성시키는 방법 프로시저의 사용 generic type ITEM is private; procedure SWAP(X, Y : in out ITEM) is TEMP : ITEM ; begin TEMP := Y ; Y := X ; X := TEMP ; end ; procedure SWAPINTEGER is new SWAP(INTEGER) ; procedure SWAPREAL is new SWAP(FLOAT) ; SWAPINTEGER(A, B) ; SWAPREAL(P, Q) ;

9.6 포괄 기능 (Generic Functions) 포괄 프로시저 SWAP에 중복 표현을 함께 사용 EXCHG (A, B) 의 해석 A, B의 자료형에 따라 정수형, 문자형, 실수형, 부울형 SWAP 프로시저 결정 포괄 기능 제공 설계 고려 사항 포괄기능 사용 가능 연산은 ? Ada - procedure, function, package procedure EXCHG is new SWAP(INTERGER) ; procedure EXCHG is new SWAP(FLOAT) ; procedure EXCHG is new SWAP(BOOLEAN) ; procedure EXCHG is new SWAP(CHARACTER) ;

9.7 코루틴 (Coroutines) 코루틴 A B 호출된 프로그램의 수행이 완전히 끝나기 전에 타 프로시저 Resume A B Resume B A 코루틴 호출된 프로그램의 수행이 완전히 끝나기 전에 타 프로시저 (호출 프로시저 포함)로 제어를 넘겼다가 재개(resume)할 수 있는 프로시저

9.7 코루틴 (Coroutines) (1) A의 resume 문장 다음 위치를 A의 제어 장소에 기억 특징 코루틴은 제어를 넘겨 받으면 프로시저의 일부만 실행 제어의 반환은 실행 일시 정지 후에 제어를 받으면 정지된 위치에서 실행 재개(resume) 프로시저들간의 관계가 주종 관계가 아님 coroutine A에서 resume B 문장 실행 시 수행 작업 (1) A의 resume 문장 다음 위치를 A의 제어 장소에 기억 (2) coroutine B의 실행 위치를 알기 위하여 B의 제어 장소의 값 참조 (3) B의 제어 장소의 참조된 값으로 제어 분기 코루틴은 이산 체계 시뮬레이션 언어의 범주에서 취급 경우에 따라 자연스러운 알고리즘 제공 기존 언어에서 시뮬레이션으로 간단히 해결

슬라이드 쇼가 끝났습니다.

용 어 정리

부프로그램 (subprogram) 용어 국제 표준 규격 15.06.03 subprogram 부프로그램 A module that has an identifier and that is invoked into the control flow from another program or by another module by means of a specific language construct and from which the control flow returns to the invoking program or module 식별자를 가지고 있고 특정 언어 구성자를 이용하여 다른 모듈에 의해서 호출되거나, 다른 프로그램에서의 제어 흐름(control flow)속으로 호출되는 모듈로서 그 모듈에서부터 제어 흐름은 호출한 프로그램이나 모듈로 변환된다.

parameter (in programming language) 매개 변수 (프로그래밍 언어에서) 용어 국제 표준 규격 15.03.13 parameter (in programming language) 매개 변수 (프로그래밍 언어에서) A language construct for passing data objects or data values between modules. 모듈 간에 자료 객체나 자료값을 넘겨주기 위한 언어 구성자

매개 변수 결합 (parameter association) 용어 국제 표준 규격 15.03.16 parameter association 매개 변수 결합 The association between formal parameters and their corresponding actual parameters in a call or generic instantiation. 호출 또는 포괄 인스턴스화 (generic instantiation) 할 때 형식 매개 변수와 그에 대응되는 실매개 변수 간의 결합

위치 매개 변수 결합 (positional parameter association) 용어 국제 표준 규격 15.06.19 positional parameter association 위치 매개 변수 결합 In a subprogram call, the correspondence of an actual parameter with a formal parameter in the same position in the declaration of the subprogram. <Note> Contrast with named parameter association. 부프로그램 호출에서, 부프로그램의 선언에서 주어진 위치에 따라 형식 매개 변수와 실매개 변수를 대응시키는 방법 <주> 이름 매개 변수 결합과 대조를 이룸

이름 매개 변수 결합 (named parameter association) 용어 국제 표준 규격 15.06.18 named parameter association assignment by name 이름 매개 변수 결합 In a subprogram call, the explicit naming of the formal parameters corresponding to actual parameters to establish parameter association. <Note> 1. In named parameter association, actual parameters can be given in any order. 2. Contrast with positional parameter association. 부프로그램 호출에서, 매개 변수 결합을 이루기 위해 실매개 변수에 대응하는 형식 매개 변수의 명시적인 이름을 부여하는 방법 <주> 1. 이름 매개 변수 결합에서 실매개 변수는 어떤 순서로나 주어질 수 있다. 2. 위치 매개 변수와 대조를 이룸

(in programming language) 함수 (function) 용어 국제 표준 규격 15.06.12 function (in programming language) 함수 (프로그래밍 언어에서) A subprogram, usually with formal parameter, that produces a data value which it returns to the place of the invocation. <Note> A function may also produce other changes through the use of parameters. 불려진 곳으로 반환되어지는 자료값을 생성하는 부프로그램, 통상 형식매개변수를 가진다. <주> 함수는 또한 매개변수의 사용을 통해 다른 변화를 생성할 수도 있다.

실매개 변수 (actual parameter) 용어 국제 표준 규격 15.03.14 actual parameter actual argument 실매개 변수 A parameter, such as an expression, * identifier, or other language construct, used in a call or generic instantiation for association of a data object with a corresponding declaration. <Note> The corresponding declaration is called formal parameter. 식, 식별자 또는 이외의 언어 구성자들로서 된 매개 변수인데 호출 또는 포괄 인스턴스화 될 때, 이들 자료 객체와 대응된 선언과의 결합을 위하여 사용된다. <주> 대응된 선언을 형식 매개 변수라 부른다.

형식 매개 변수 (formal parameter) 용어 국제 표준 규격 15.03.15 formal parameter dummy argument 형식 매개 변수 A parameter, define in the declaration of certain modules, that is associated with an actual parameter in a call or generic instantiation. 어떤 모듈에서 선언하여 정의된 매개 변수인데, 호출 또는 포괄 인스턴스화 될 때 실매개 변수와 결합된다.

참조 호출 기법(call by reference, address, location) 용어 국제 표준 규격 15.06.08 call by reference call by address call by location 참조호출 주소호출 위치호출 A call in which the calling * module provides to the called module the addresses of the parameters to be passed. <Note> In a call by reference, the called module has the ability to change the values of the parameters stored by the calling module. 호출 모듈이 넘겨질 매개 변수의 주소를 호출된 모듈에 제공하는 호출 <주> 참조 호출에서는, 호출된 모듈이 호출 모듈이 저장한 매개 변수의 값을 바꿀 수 있는 능력을 가지고 있다.

값 호출 (call by value) 용어 국제 표준 규격 15.06.09 call by value 값 호출 A call in which calling * module provides to the called module the actual values of the parameters to be passed. <Note> In a call by value, the called module cannot change the values of the parameters stored by or for the calling module. 호출 모듈이 넘겨질 매개 변수의 실제값을 호출된 모듈에 제공하는 호출 <주> 값 호출에서는, 호출 모듈이 저장하거나 호출 모듈이 사용하도록 저장된 실매개 변수의 값을 호출된 모듈이 바꿀 수 없다.

부작용 (side effect) 용어 국제 표준 규격 15.08.03 side effect 부수효과, 부작용 Any indirect consequence caused by the execution of an expression, statement, or subprogram. <Note> Side effect may be intended, for example, to change the data value of a parameter passed by a function. 식, 문장, 부프로그램의 실행에 의해 야기되는 어떤 간접적인 결과 <주> 예를 들어 함수에 의해 전달된 매개 변수와 자료값을 바꾸는 것과 같이 의도적으로 부작용을 사용할 수 있다.

이 명 (aliasing) 용어 국제 표준 규격 15.03.19 alias 이명 An alternate identifier for a language construct. 언어 구성자에 대한 대체 식별자

중복 정의 (overloading) 용어 국제 표준 규격 15.01.08 중복 정의하다 to overload 과적하다. To assign more than one meaning to a lexical token. <Example> The lexical token “+” can mean integer addition, real addition, set union, concatenation, etc. 하나의 어휘 토큰에 두 개 이상의 의미를 할당하다. <예> 어휘 토큰 “+”에 정수의 덧셈, 실수의 덧셈, 결합, 집합, 문자열 연결 등을 의미할 수 있다.

포괄적인 (generic) 용어 국제 표준 규격 15.06.28 generic 포괄적인 Pertaining to a language construct that serves as a template for creating an actual language construct for applicable data types in compliance with the rules of strong typing. 언어 구성자의 속성으로 강자료형의 규칙에 따라서 적용 가능한 자료형을 위한 실언어 구성자를 생성하기 위한 틀로 제공한다.

코루틴 (coroutines) 용어 국제 표준 규격 15.06.04 coroutine 포괄적인 A subprogram that, when called again after an execution, resumes at the location to which its previous execution returned. 어떤 실행 후에 다시 호출되었을 때, 이전의 실행이 반환된 위치에서 실행을 제거하는 부프로그램