Subprogram   부 프로그램, 서브 프로그램

(2018-11-14)

Procedure, 프로시져, 프로시저, Subroutine, 서브 루틴, 부프로그램 서브루틴 함수 프로시저 비교

1. 부 프로그램 (Sub Program)

  ㅇ 하나의 프로그램을 구성하는 여러 작은 단위프로그램
     - 프로그램 명령문들의 작은 단위 묶음 (특정 기능을 수행하는 코드의 묶음)

  ㅇ 일련의 명령문들을 모아두고, 이를 외부에서 호출할 수 있게한 구조
     - 프로세스 추상화의 일종

  ㅇ 복잡한 연산을 간추려서, 이름을 붙이고, 쓰기 쉽도록 하는 방법 
     - 일단 정의되면 여러번 호출되며 실행될 수 있는 프로그램 블록


2. 부 프로그램,서브루틴,함수,프로시저 비교

  ※ 모두 `어떤 행동을 수행하기 위한 일련의 작업순서`라는 뜻을 갖으나, 
     - 다음과 같이 미묘한 차이 있음

  ㅇ 부 프로그램 (Sub Program)
     - 하나의 프로그램을 구성하는 여러 작은 단위프로그램을 뜻함

  ㅇ 서브루틴 (Subroutine) : 리턴 값을 반환하지 않을 수 있음
     - 호출되면 일련의 명령문 만을 수행하고, 결과 값을 반환 않을 수도 있음

  ㅇ 함수 (Function)       : 리턴 값을 반환함
     - 여러 매개변수를 전달하면, 함수는 그 연산 결과에 대한 하나의 값을 반환함
        . 수식/표현식(Expression)의 일부로도 쓰여질 수 있음
     - 구조적으로는 서브루틴과 유사하지만, 의미적으로는 수학함수에 가까움

     * [참고] ☞ C 함수,자바스크립트 함수 등 참조

  ㅇ 프로시저 (Procedure)  : 통상, 함수,서브루틴,부프로그램 모두를 포함하는 용어로써,
     - `계산 수행 절차에 대한 정확한 기술/묘사`를 강조한 용어
        . 할 일(계산)들을 어떻게(어떠한 규칙으로) 수행하는가를 구체적으로 밝혀 놓은 것


3. 부 프로그램의 사용 장점

  ㅇ 프로그램 재사용으로 인한 절약
     - 메모리 공간, 코딩 시간의 절약, 프로그램 크기를 줄임 

  ㅇ 가독성 증가 
     - 1개 호출문에 의해 실행
        . 세부사항을 숨기면서 프로그램의 논리 구조를 강조함
           .. 사용자는 호출이름,매개변수,기능 정도 만을 알면 됨

  ㅇ 유지보수확장성 용이, 문제 해결성 및 분할성 제고, 사용 용이 등


4. 부프로그램 동작상의 특징

  ㅇ 각 부프로그램은 단일 진입점을 갖음

  ㅇ 호출 부프로그램은 피호출 부프로그램의 실행 중에 중단됨

  ㅇ 부프로그램 실행이 종료되면 제어는 항상 호출 부프로그램에게 돌아감


5. [참고용어]

  ㅇ 코루틴 (Coroutine)
     - 부프로그램의 특별한 경우로써, 코루틴 자체에 의해 제어되는 다중 진입점을 갖음
        . 호출 및 피호출 부프로그램이 주종속이 아니라 대등함

  ㅇ 콜백 함수 (Callback Function) 
     - 함수(또는,객체)를 매개로 전달하고서, 그것으로하여금 역 호출하게 하는 기법

  ㅇ 클로저 (Closure)
     - 부프로그램과 부프로그램의 참조환경
        . 지역 변수(local variable)의 참조(by reference)를 가진 함수 블록


[부프로그램/함수/프로시저] 1. 부 프로그램 2. 함수 3. 매개 변수 4. 콜백 함수 5. 블록 구조 6. 클로저
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
          1. 프로그램,프로그래밍
      1.   프로그래밍 언어론
      2.   구조적 프로그래밍
      3.   객체지향 프로그래밍
      4.   자료구조
      5.   알고리즘
      6.   자료표현(알파벳/코드)
      7.   시스템 소프트웨어
      8.   프로그래밍언어 종류
      9.   프로그래밍 기타일반
        1.   1. 프로그래밍 기타 용어
            2. 래퍼 함수
            3. 핸들
            4. 플러그인
            5. 연산자
            6. 코드 리펙토링
    4.   데이터베이스
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌