(17) 프로그램의 가변성

중앙일보

입력

지면보기

종합 12면

어떠한 기계라도 그것이 인간의 손을 받지 않고 자동적으로 일을 처리하기 위해서는 일의 순서를 미리 상세하게 정하여 기계를 그대로 운전시켜주는 제어수단인 프로그램이 필요하게된다.
아주 간단한 전기담요 같은 보온기구도 온도에 따라 접점을 개폐해주는 서머스타터가 원시적인 프로그램의 역할을 하고 있다.
그러나 기계가 어느 정도 길고 연속적인 동작을 자동적으로 하려면 프로그램도 그에 따라 복잡해질 수 밖에 없다. 예를 들어 비교적 간단한 프로그램인 전자동 전기세탁기의 내장 프로그램도 가동→주수→세탁→배수→주수→휑굼→배수→주수→헹굼→배수→탈수→정지라고 하는 일련의 과정이 회전 캠(Cam)판이나 전자회로에 미리 장치되어 있다.
이런 정도의 프로그램은 사용자로서 볼때 제법 신기할이 만큼 자동화된 기계로 보일 것이다.
이렇게 정해진 세탁기의 프로그램에서 가동과 주수 사이에 기계을 멈추고 세제를 투입 한다거나, 세탁을 여러번 반복 한다거나, 또는 헹굼을 한번정도 생략하고 바로 탈수로 들어가는 등의 프로그램 변경은 가능하다.
그러나 이런 변형 동작은 어디까지나 다이얼이나 키를 직접 손으로 조작함으로써 가능하다. 즉 도중에서 사람이 손으로 조작하여 변경시켜 주지 않는 한 기계 속의 프로그램은 전체적인 내용을 모두 순서대로 처리할 수 밖에 없다.
만약 자동세탁기에다가 세탁이나 헹굼의 상태에서 때빼기나 헹굼의 상태가 충분한가, 충분치 못한가를 스스로 알아내 자동적으로 세탁이나 헹굼의 과정을 반복하는 기능을 주려면 고정된 프로그램으로는 불가능하다. 결국 프로그램의 임의 단계에서 비교판단을 행하고,그 결과에 따라 다음에 무엇을 해야할 것인가를 자동적으로 선택시키고, 또 그것을 실행시키지 않으면 안 된다.
이와 같이 비교판단기능으로 실행의 순서나 방법을 여러가지로 변하게 할수 있는 프로그램을 가변적인 프로그램이라 말한다. 컴퓨터의 프로그램은 극히 고도화된 가변적인 프로그램이다. 옆의 그림은 A를 기준치 B와 비교하여 A가 B보다 크면 처리과정 X를 반복하고, A와 B가 같으면 Y의 처리동작을 수행하며, A가B보다 작을 째는 Z의 처리를 행하라는 내용을 폴로차트라는 도형으로 나타낸 것이다. 그림에서 마름모꼴의 박스는 비교판단을 나타내기 위해 약속된 기호다. X의 행위는 Y나Z와 달리 반복의 형태로 되어있다.
이와 같이 컴퓨터의 프로그램은 필요한 곳마다 비교판단과 다음 동작의 단계를 두어 거의 무한이라고 할 수 있을 만큼의 가변적 프로그램을 작성 할수 있다. 컴퓨터는 가변적 프로그램에 의해 일련의 데이터 처리를 전혀 사람의 손을 빌지 않고 극히 탄력적으로 실행한다. 그렇기 때문에 컴퓨더가 일하는 방법은 마치 기계가 사람이기나 한 것 같이 무엇이든지 스스로 행동하고 있는 것처럼 보인다.
결국 컴퓨터가 이와 같이 프로그램에 의해서 모든 것을 자동적으로 처리 할 수 있는 것은 비교판단의 기능이 있기 때문이다. 개개의 판단 방식은 극히 단순한 수의 대소판단이지만 그것들의 조합에 의하여 짜여진 전체적인 논리의 흐름은 대단히 복잡하고 더구나 무한의 형태를 취한다.
또 오늘날의 컴퓨터는 어떤 프로그램이 처리되는 도중이라도 갑자기 그것의 처리를 중단시키고 별개의 다른 프로그램이 실행되도록 강제적으로 제어를 분기시킬 수도 있는 데 이런 것을 개입중단 이라고 한다.

ADVERTISEMENT
ADVERTISEMENT