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

(2018-08-16)

Procedure, 프로시져, 프로시저, Subroutine, 서브 루틴, Function , 함수 , 함수

1. 부 프로그램 (Sub Program)

  ㅇ 하나의 프로그램을 구성하는 여러 작은 단위프로그램
     - 프로그램 명령문들의 작은 단위 묶음

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

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


2. [유사 용어] 

  ※ 부 프로그램은 때로는 `서브루틴`,`함수`,`프로시저` 라고도 함
     - 모두 `어떤 행동을 수행하기 위한 일련의 작업순서`라는 뜻을 갖으나, 
     - 다음과 같이 미묘한 차이있음

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

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

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

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


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

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

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

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


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

  ㅇ 각 부프로그램은 단일 진입점을 갖음
  ㅇ 호출 부프로그램은 피호출 부프로그램의 실행 중에 중단됨
  ㅇ 부프로그램 실행이 종료되면 제어는 항상 호출 부프로그램에게 돌아감


5. 부 프로그램(함수 등)의 선언/정의, 구성 요소, 호출 문법

  ㅇ 구성 요소
     - 이름 (Name)
     - 매개변수 (Parameter)  
     - 몸체 (Body) : 변수 선언 및 실행부
     - 참조 환경 (Reference Environment)

  ㅇ 선언/정의 
     - 수행 동작을 기술

  ㅇ 호출
     - 함수 호출시 함수명과 피호출 함수로 전달할 실매개변수를 명시해야 함

  ㅇ 선언/정의 및 호출 문법 例)
     
// 함수 선언/정의
function 함수명 (실 매개변수1, 실 매개변수2, ...) {
   함수 본문
}

// 함수 호출
함수명 (형식 매개변수1, 형식 매개변수2, ...);
6. 매개변수 전달 방법 종류 ㅇ 값 전달 (Call by Value) - 가장 일반적인 데이터 전달 방법 - 함수 간의 독립성 유지에 적합한 방식 ㅇ 참조 전달 (Call by Reference) - 실 매개변수주소(l-value)를 형식 매개변수에 넘겨주는 방법 ㅇ 이름 전달 (Call by Name) 7. [기타관련용어] ㅇ 코루틴 (Coroutine) - 부프로그램의 특별한 경우로써, 코루틴 자체에 의해 제어되는 다중 진입점을 갖음 . 호출 및 피호출 부프로그램이 주종속이 아니라 대등함 ㅇ 콜백 함수 (Callback Function) - 함수(또는,객체)를 매개로 전달하고서, 그것으로하여금 역 호출하게 하는 기법 ㅇ 클로저 (Closure) - 부프로그램과 부프로그램의 참조환경 . 지역 변수(local variable)의 참조(by reference)를 가진 함수 블록


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

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