컴퓨터♡박사

컴퓨터의 소프트웨어

탤런트 2007. 1. 27. 16:48

컴퓨터의 명령은 보통 1단어(word)에 하나씩 들어 있고, 컴퓨터의 제어장치는 기억장치로부터 명령어를 하나씩 꺼내어 그것을 해독하여 실행한다. 명령의 대부분은 어느 번지(address)의 데이터를 누산기(累算器:accumulator)에 더한다든지 누산기의 내용을 어느 번지에 기억시키든지 하는 형식을 취하고, 연산을 지시하는 연산부호부분과 연산에 필요한 번지를 지시하는 번지부분으로 이루어진다. 그런데 컴퓨터가 해독하는 명령은 숫자로 된 코드로, 특히 2진계산기에서는 0과 1로 배열된 형태로 되기 때문에 기계어로 프로그램을 작성하려면 많은 수고를 하게 된다. 이것을 약간이라도 보기 쉽게 하기 위해 명령코드와 데이터 장소를 나타내는 번지부분을 알기 쉬운 영문의 기호를 사용하여(mnemonic code:symbolic code) 쓸 수 있는 기호화 기계언어가 고안되었다.

 

 

프로그래머가 영문기호로 쓴 프로그램을 어셈블러(assembler)가 번역하여 기계언어 프로그램으로 다시 쓰고 나서 실행하게 된다. 어셈블러 언어는 여러 가지 기능이 첨가되어 사용하기 쉽게 되어 있으나, 본질적으로는 기계언어와 대응하고 있으므로 기계언어의 완전한 지식이 없으면 프로그램을 쓸 수 없다. 이에 대하여 계산처리의 순서를 일상의 언어와 수식(數式)에 가까운 형태로 프로그램을 쓸 수 있게 한 것이 컴파일러(compiler)이다. 컴파일러에 의하여 처리될 프로그램이 따라야 할 문법상(文法上)의 약속을 언어라고 한다. 컴파일러는 특정한 언어로 씌어진 프로그램을 특정의 기계언어로 번역한다.

 


프로그램 언어로 최초에 성공한 것은 1957년 IBM의 FORTRAN으로, 그 후 수치계산(數値計算) 알고리즘(algorithm), 기술용(記述用) 언어 ALGOL(algorithmic language), 사무계산용 언어 COBOL(common business oriented language), 더욱 범용성을 가진 언어 PL/1(programming language/one) 등이 처리순서용 언어로서 보급되어 있다. 이 밖에 기호처리언어 ·수식처리언어 및 결정표(決定表)에 의한 처리언어 등이 있다. 사무계산을 하기 위하여 기록철 분류라든지 보고서 작성 등 비교적 정해진 형식의 처리가 많고 전용 프로그램이 준비되어 있는 것이 많다.

 

 

또 입출력장치와 중앙처리장치 속도의 차이를 생각하여 다수의 입출력과 계산처리를 될 수 있는 한 병행시켜 처리능률을 올리도록 한 입출력 제어프로그램(IOCS), 계산기종(計算機種)을 교체할 때 구기종(舊機種)의 명령을 새로운 컴퓨터에서 해독하여 실행하는 시뮬레이션(simulation) 등 컴퓨터의 운용에 필요한 지원시스템 프로그램이 필요하다. 컴퓨터의 처리속도가 빠르게 되면 작업이 바뀔 때마다 조작원(operator)이 테이프를 바꿔 건다거나 조작반(console)의 버튼을 눌러 새로 프로그램을 읽는다거나 하는 수조작(手操作)을 위한 시간이 아주 적어지게 된다.

 

그래서 작업을 수행하기 위한 프로그램과 데이터를 연속적으로 자기디스크에 복사하고 모니터(monitor)라고 부르는 운전관리(運轉管理) 프로그램으로 하여금 연속적으로 처리하도록 되었다. 처음에는 포트란과 간단한 어셈블러 언어에 의한 일만을 연속처리하는 것이었으나 그 후 각종 프로그램 언어에 의한 처리, 각종 지원시스템에 의한 처리도 포함한 오퍼레이팅 시스템(operating system)으로 발전하였다. 그래서 오퍼레이팅 시스템에 지시를 하기 위한 작업제어언어(즉, IBM의 job control language)도 출현하였다.

 

 

이 밖에 시분할(時分割)시스템용 컴퓨터와 대화 형식의 프로그램언어와 도형표시장치(음극선관 표시장치)를 사용하는 언어도 있다. 또 공작기계의 수치제어용의 언어, 변형력해석과 시뮬레이션 등 공학과 경영상의 특수한 문제를 위한 전용언어도 수많이 개발되어 있다. 이상과 같은 컴퓨터 이용상 불가결한 프로그램 체계를 총칭하여 소프트웨어(software)라 하고, 컴퓨터 자체를 하드웨어(hardware)라고 한다.