컴퓨터 프로그램

컴퓨터 프로그램

다른 표기 언어 computer program

요약 컴퓨터로 문제를 풀기 위한 자세한 계획이나 절차.

좀더 자세히 말하면 답을 구하기 위해 명확하고 순서화된 계산 명령들의 배열을 말한다. 컴퓨터 프로그램과 장치의 차이는 주로 전자는 소프트웨어로, 후자는 하드웨어로 부른다는 것이다. 컴퓨터 기억장치에 저장된 프로그램들을 가지고 컴퓨터는 다양한 작업들을 순차적 또는 간헐적으로 수행하게 된다.

내부 저장 프로그램 방법은 1940년대말 헝가리 태생의 수학자인 존 폰 노이만이 개발했다. 내부적으로 프로그래밍할 수 있는 최초의 디지털 컴퓨터는 1949년에 개발된 에드박(EDVAC : electronic discrete variable automatic computer)이다. 프로그램은 먼저 작업을 공식화함으로써 시작되며 적당한 컴퓨터 언어를 선택하여, 즉 응용에 적합한 컴퓨터 언어를 사용하여 표현하는 것이다. 이렇게 표현된 프로그램은 몇 단계를 거쳐 부호로 된 프로그램으로 변역되는데 이 부호화된 프로그램은 작업이 수행될 컴퓨터가 직접 실행할 수 있는 것이다. 이 부호화된 프로그램은 기계어로 되었다고 말하며 원래 문제를 공식화할 때 사용한 언어는 문제 중심 언어(problem oriented language)라고 한다. 많은 문제 중심 언어가 개발되어왔는데 이들 중 중요한 것들은 코볼(COBOL : common business-oriented language)·포트란(FORTRAN : formula translation)·베이식(BASIC : beginners all-purpose symbolic instruction code)·파스칼(PASCAL) 등이다(→컴퓨터프로그래밍언어).

컴퓨터에는 사용자의 작업을 보조하거나 시스템의 성능을 최적화하는 데 주로 사용하기 위한 다양한 프로그램을 가지고 있다. 이런 프로그램의 집합을 운영체제(OS)라 부르며 이 운영체제는 하드웨어처럼 컴퓨터 시스템의 동작에 매우 중요하다. 현재의 기술은 소비자의 주문에 따라 어떤 동작 특성을 고정된 프로그램으로 만들어서 제조할 때 미리 컴퓨터의 중앙처리장치에 넣을 수 있다.

사용자 프로그램에 비하면 운영체제는 실행중에 제어를 담당하는데, 예를 들어 시분할 모니터가 한 프로그램의 수행을 잠시 보류시키고 다른 프로그램을 수행시킨다든지 또는 사용자 프로그램을 시작하고 끝낸다든지 하는 역할을 하고 계획 프로그램의 역할을 할 때는 다음에 어떤 사용자 프로그램을 수행할 것인가를 결정한다든지 하는 것을 담당한다. 그러나 어떤 운영체제는 프로그래밍 과정을 쉽게 해주기 위하여 독립적으로 작용하는 것도 있다. 여기에는 어셈블러나 컴파일러와 같은 번역기가 포함되는데 이것은 프로그램을 한 언어에서 다른 언어로 번역하는 역할을 한다. 인터프리터(interpreter)는 프로그램을 순차적으로 수행하며 수행 단계마다 번역을 한다. 또 디버거(debugger)는 프로그램을 한 단계씩 수행하고 다양한 상태를 추적하여 프로그래머로 하여금 프로그램의 수행이 올바른지 잘못되었는지를 점검하게 해준다.