프로그래밍 언어론 - 포괄 부프로그램
다양한 타입의 매개변수를 허용하는 부프로그램을 의미한다.
- Ada 예를 통한 이해 : 두 예가 거의 유사 → 이때 포괄 부프로그램을 사용
Ada
- generic이라는 예약어를 이용해서 포괄 부프로그램을 생성
generic
type Element is private;
procedure exchange(x, y: in out Element);
procedure exchange (x, y: in out Element) is
temp: Element;
begin
temp := x;
x := y;
y := temp;
end exchange;
- integer, float, character 타입의 데이터를 교환하는 swap이라 불리는 3개의 부프로그램이 정의
procedure swap is new exchange (integer);
procedure swap is new exchange (float);
procedure swap is new exchange (character);
- 호출
swap(a, b);
예제 : 포괄 부 프로그램을 사용하는 Ada
with TEXT_IO;
use TEXT_IO;
procedure gene is
package INT_IO is new TEXT_IO.INTEGER_IO (integer);
use INT_IO;
a, b: integer;
c, d: character;
-- 제네릭 프로시저로 두 요소를 교환하는 프로시저 정의
generic
type Element is private;
procedure exchange(x, y: in out Element);
procedure exchange(x, y: in out Element) is
temp: Element;
begin
temp := x;
x := y;
y := temp;
end exchange;
-- 제네릭 프로시저를 이용하여 swap 프로시저 정의
procedure swap is new exchange (integer);
procedure swap is new exchange (float);
procedure swap is new exchange (character);
begin
a := 10;
b := 20;
swap(a, b); -- 정수형 데이터 교환 수행
put(a);
put(" ");
put(b);
NEW_LINE;
c := 'i';
d := 'j';
swap(c, d); -- 문자형 데이터 교환 수행
put(c);
put(" ");
put(d);
end gene;
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글
정규 문법 (0) | 2023.06.12 |
---|---|
IEEE 802.11 프로토콜 (0) | 2023.06.03 |
프로그래밍언어론 - 중복 부프로그램 (0) | 2023.05.30 |
프로그래밍언어론 - 매개변수 전달 방식 (0) | 2023.05.30 |
프로그래밍언어론 - 부프로그램 (0) | 2023.05.30 |