검색
색인
서브루틴, subroutine
동의어 : 아랫경로
완전한 프로그램과 상호 관계를 가질 수 있는 한 프로그램의 독립적인 부분들. 하나의 서브루틴은 주 프로그램의 임의 지점으로부터 주 프로그램으로 들어갈 수 있고, 일반적으로 서브루틴이 다 끝났을 때 되돌아가는 지점은 자동적으로 서브루틴으로 들어온 분기점 바로 다음 명령이 된다. 이 서브루틴에 의해 수행되는 일들은 매개 변수들을 사용함으로써 수정될 수 있다. 매개 변수들은 주 프로그램 내에서 어떤 미리 저장된 장소에 값을 정하거나 프로그램 영역에서 형식 명령어를 줌으로써 명시화된다. 또한 서브루틴은 그것에 따른 분기점 바로 다음의 명령어가 아닌 다른 명령어로 가도록 수정될 수도 있다. 서브루틴을 사용하는 2가지 중요한 이유는 다음과 같다. ㉠어떤 루틴들은 여러 프로그램의 일반적인 특성을 띠며 공통적인 면도 가진다. 예를 들면, 제곱근과 같은 수학적인 함수의 계산과 입출력 장치의 제어와 연관된 루틴들이 바로 이것이다. 일반적으로 이러한 형태의 서브루틴들은 컴퓨터와 함께 주어진 소프트웨어의 한 부분으로서 제조 회사에서 제공한다. ㉡어떤 특정한 프로그램은 주 프로그램의 여러 곳에서 요구된다. 이러한 부분들이 서브루틴으로 만들어져 그들이 요구될 때마다 여러 번 반복하지 않고 한 번만 저장함으로써 기억 장소를 절약할 수 있다. 이러한 서브루틴들은 주 프로그램과 동시에 프로그램 작성자에 의해 작성될 수 있다. 그러므로 서브루틴을 사용하는 목적은 다음과 같다. ㉮미리 프로그램되고 점검된 서브루틴들을 사용함으로써 프로그램 작성을 더 쉽게, 그리고 더 빨리 하기 위해서 사용된다. ㉯프로그램 또는 그 프로그램의 일부를 한 번만 적재하여 주 프로그램에서 필요로 할 때에만 이 서브루틴으로 분기시킴으로써 기억 장소를 절약할 수 있다. 어떤 프로그램 작성 언어에 의해 프로그램이 작성되었을 때 컴파일러들의 일반적인 형태는 서브루틴을 원시 언어에 의해 목적 프로그램 형태로 합병시킨다. 일반적인 방법은 자기 테이프와 같은 보조 기억 장치에 제작사에 의해 주어지든지 사용자에 의해 개발되든지 간에 모든 서브루틴을 통합시키는 것이다. 그러면 컴파일러는 원시 프로그램에 의해 요구될 때, 이런 형태의 장치로부터 요구된 서브루틴을 선정해 낸다. 이런 형태의 서브루틴의 모임을 라이브러리라고 하며, 서브루틴을 가지고 있는 자기 테이프를 라이브러리 테이프라 부른다.