d라이브러리









퍼스널컴퓨터의 어제와 오늘 오락에서 인공지능까지

퍼스널컴퓨터를 단순하게 장난감 취급하던 시대는 지났다. 이미 사무처리 및 공학적 응용 기능을 갖춘 퍼스널 컴퓨터는 이제 인공지능분야에 까지 확대되어 우리의 생활의 질을 높이고 새로운 문화공간을 창조해내는 주인공으로 변신하고 있다.

산업혁명 당시에는 기계가 인간의 일을 빼앗아 간다는 관념을 가진 사람들 때문에 초기에는 많은 반발이 있었다. 그러나 산업혁명이 성숙기에 이르자 오히려 일거리가 많아졌고 인간 생활의 물질적 향상은 컸었다. 산업혁명이 모든 부문에서 좋은 결과만을 가져오지 않은 것은 사실이다. 대량생산에 따른 갖가지 부작용 특히 인간성의 상실은 큰 사회문제로 부각되었다.

PC는 정보산업의 말초신경

80년대를 살고 있는 우리에게 닥쳐온 혁명적인 일은 사회가 산업사회에서 정보사회로 변해가고 있다는 것이다. 다가오는 새로운 사회의 원동력은 컴퓨터를 구축으로 하는 정보의 유통산업이다.

70년대 중반부터 개발되기 시작했던 퍼스널 컴퓨터는 정보 유통산업의 말초 신경을 역할을 담당하게 될 것으로 인식되고 있다. 지금은 '생각하는 컴퓨터'의 개발 여하에 따라 세계의 정제권의 판도까지 바꿔질 수도 있는 상황이기는 하지만 미래지향적 컴퓨터의 개발만 기다리고 현재의 상태에서그저 방관만 하고 있으면 정보사회가 요구하는 인간으로서는 자격상실이라는 것은 너무나도 분명한 사실이다.

변모하는 컴퓨터에 한번 편승하여 우리에게 진정으로 필요한 컴퓨터의 기능이 무엇인가를 발견하고 각자의 업무에 응용할 기회를 찾아 조금씩 노력해나가는 것이 미래의 충격에 대비하는 현명한 자세라 생각한다. 다시말하면 다가올 정보화사회는 특수한 사람들(컴퓨터 전문가)을 위한 사회가 아니고 모든 인간을 위한 사회이기 때문에 컴퓨터를 활용하고 나아가 우리가 바라는 형태의 컴퓨터를 만들기 위해 모두 컴퓨터 이용에 참여하고 연구하려는 태도가 필요하는 것이다.

컴퓨터 대중화의 선두주자

퍼스널 컴퓨터는 1977년에 APPLE Ⅱ가 출현된 이래 컴퓨터 대중화의 선두주자를 달렸다고 볼 수 있다. 당시 애플Ⅱ의 설계개념은 보편적인 컴퓨터설계의 고정관념을 깨고 70년대 초에 개발되었던 마이크로프로세서(Microprocessor)라는 반도체회로를 중심으로 BASIC언어를 사용할 수 있도록 하였다. 초기 애플 Ⅱ의 사용자들은 대부분이 취미로 구입하여 자신들이 여가생활을 즐겼으나 후에 디스크 드라이버(disk driver)를 사용하여 애플 DOS라는 운영체제(operating system)를 사용할 수 있게 되어 업무처리용으로 두각을 나타내게 된다.

애플Ⅱ를 예로들어 퍼스널컴퓨터의 본질을 하나씩 파헤쳐 보자. 이것은 IBM-PC의 경우에서도 똑같이 적용될 수 있다.

퍼스널 컴퓨터의 특징은 하드웨어(hardware)의 확장성 및 발전성에 있다. 퍼스널컴퓨터는 미니 컴퓨터 이상의 컴퓨터와는 달리 모든 하드웨어의 설계가 공개되어 있으므로 사용자 목적에 맞게 퍼스널 컴퓨터의 입출력장치를 조작할 수 있다. 이에따라 아이디어(idea)만 있으면 확장용 슬롯(slot)에 꼽을 인터페이스(interface)만 개발하여도 사업적으로도 성공할 수 있다.

애플Ⅱ의 예를 들어보면 기본적으로 사용되는 인터페이스카드로 드라이브(drive)연결용만 있으면 된다. 여기에 여러가지 기능을 갖도록 개발된 인터페이스 카드들을 꼽아서 목적에 맞게 사용가능하다. 많이 사용되는 인터페이스 카드들의 종류로는 메모리 확장용 카드인 16KB RAM 카드와 128KB RAM카드, 화면에 출력되는 문자를 수를 2배로 확장시켜 주는 VIDEX카드, 한글 출력을 위한 한글카드, APPLEⅡ 퍼스널 컴퓨터에서 CP/M 이라는 OS를 사용가능케 하는 280CP/M카드 등을 들 수 있다.

그래픽은 PC의 주된 기능

두번째로 들 수있는 퍼스널컴퓨터의 본질은 오락적 응용을 위한 기본 기능을 갖도록 설계되고 있다는 점이다. 모든 퍼스널 컴퓨터는 자체회로에 의한 그래픽기능을 갖고 있기 때문에 게임 등 오락을 위한 소프트웨어를 개발할 수 있다. 그래픽기능은 흑백뿐만 아니라 칼라로 나타낼 수 있다. 본체에서 제공하는 그래픽기능이 미흡하면 별도의 인터페이스카드를 사용하여 높은 해상도의 그래픽을 구사할 수도 있을 뿐더러 그래픽 기능때문에 퍼스널컴퓨터의 CRT상에 한글표시가 쉬어지는 장점도 갖고 있다.

애플Ⅱ는 280×192개의 점을 사용하여 그래픽을 처리하고 있다. 표시 색상의 수는 최대 11가지이다.

퍼스널컴퓨터를 사용해본 사람이라면 그래픽기능의 우수성을 실감할 것이다. 대형 컴퓨터에서는 한정된 터미널에서만 다룰수 있는 그래픽 기능이 간단하게 몇가지 명령으로 처리될 수 있기 때문에 그래픽기능을 퍼스널컴퓨터의 주된 기능이라고 말하는 사람도 있다. 아뭏든 퍼스널컴퓨터의 그래픽 기능은 다소 속도면에서는 미흡하지만 그래픽의 고속처리를 위한 전용 VLSI가 개발되면 또하나의 퍼스널컴퓨터 혁신의 시대가 올 것이다.

생활에 밀접한 소프트웨어

퍼스널 컴퓨터는 메인프레임 컴퓨터와는 달리 기본적인 설계개념부터 다르다. 사용자의 취향도 천차만별이어서 개발되는 소프트웨어도 생활에 밀접해지게 마련이다. 퍼스널 컴퓨터의 기억 용량이 허용하는 한도내에서 다룰 수 있는 우리 주위의 소프트웨어는 이루말할 수 없다. 또한 퍼스널 컴퓨터를 조작하는 사람은 특정 소수가 아니라 불특정다수(不特定多数)이기 때문에 대중화를 위한 면을 무엇도다도 먼저 고려해아 한다.

애플Ⅱ에서는 CRT대신에 가정용 컬러 TV를 연결해서 출력장치로 활용할 수 있게 했었다. 하지만 최근의 퍼스널 컴퓨터들은 고해상도의 화질을 요구하므로 전용모니터를 사용해아 한다.

퍼스널컴퓨터는 사무처리 및 공학적응용을 위한 기능을 갖을 수 있어야 한다. 애플Ⅱ는 기본적인 카세트 인터페이스를 내장하고 있으므로 녹음기를 보조기억장치로 활용할 수 있지만 전문적인 자료처리를 위한 보조기억장치로는 적합하지 못하다. 따라서 디스크드라이브를 사용하여 많은 양의 데이타를 신속하게 처리할 수 있다. 자료처리의 속도는 CPU(중앙처리장치)가 지배적인 영향을 미치기 때문에 처리속도에 한계가 있지만 계산을 위한 전용 반도체들이 개발되고 있어 속도는 계속 빨라지고 있다.

최근에는 대용랑 보조기억장치로 하드디스크(hard disk)가 개발되어 40MB정도의 데이타기록 및 처리도 가능해졌다. 또한 퍼스널컴퓨터의 상호연결로 네트웍(network)을 구성하여 사무자동화를 이룩할 수있어 사무실의 유기적활동의 촉매로 사용될 수도 있다.

공학적응용을 위해서는 고속연산처리용 반도체를 사용할 수 있어야 한다. CPU 가 연산의 모든 기능을 떠맡아서 프로그램을 실행한다면 실행속도는 뚝 떨어진다. 이때 고속연산용 반도체를 사용하게 되면 CPU는 연산의 부담을 덜게되어 프로그램의 실행속도는 빨라진다.

지금까지 팽스널컴퓨터의 4가지 본질을 살펴보았다. 퍼스널컴퓨터는 하나의 컴퓨터시스템이기 때문에 모든 기능이 유기적으로 연결되어 상호보완적 성격을 띠게 되며, 최대의 가치를 얻어내려면 모든 기능의 효율적 관리가 필요하게 된다. 설령 하드웨어의 기능이 좋더라도 이를 관리하는 소프트웨어가 비효율적으로 작성되어 있으면 시스템의 전체적인 효율은 떨어져버린다.

시간 흐름에 따라 하드웨어의 발전도 눈부시다 할 수 있지만 소프트웨어의 개념적 발전을 간화해서는 안된다. 퍼스널 컴퓨터에서 사용되는 OS(operating System)도 CP/M에서 MS-DOS로 다시 UNIX로 발전하고 있으며 프로그램언어도 점점 발전하고 효율이 좋아지고 있다. 최근에는 퍼스널컴퓨터에서도 여러명이 동시에 하나의 퍼스널 컴퓨터를 사용할 수 있는 멀티유저(multiuser)시스템도 계속 발표되고 있다.

퍼스널컴퓨터 수준에서도 UNIX라는 OS가 사용됨에 따라 어디까지가 퍼스널컴퓨터영역인지는 분명하지 않지만 이런 발전속도로 퍼스널 컴퓨터의 기능이 좋아진다면 범용컴퓨터의 존재가 위태로와질 날도 멀지 않은 것 같다.

목적에 따른 언어 선택

퍼스널컴퓨터에는 어떤 언어들이 사용될까. 옛부터 신사에게 이야기할 때는 영어가 좋고 숙녀에게는 불어가 어울린다는 말이있다. 그리고 엔지니어에게는 독어가 어울린다 하였다. 몇해전만 해도 '애플에는 BASIC언어'라는 상식이 지배하고 있었다. 그러나 현재는 애플Ⅱ만 해도 수십종의 프로그램언어가 사용되고 있는 실정이다. 퍼스널컴퓨터에 관한 문헌을 살펴보면, BASIC, PASCAL, FORTH, ADA, MODULA-2, C등의 언어를 사용할 수 있는 것으로 돼 있다. 퍼스널 컴퓨터에 사용가능한 언어들을 특징별로 분류할 수 있다면 자신의 목적에 따라 언어를 선택할 수 있는 장점이 있다.

2백여 가지가 넘는 컴퓨터 프로그래밍언어를 이해하는 데는 몇가지 기능 및 특성에 따라 분류하는 것이 좋다. 대표적인 분류방법으로는 고급언어냐 저급언어냐, 혹은 범용언어와 특수언어, 절차적언어와 문제지향적 언어, 컴파일언어와 인터프리터언어, 구조적언어와 비구조적 언어 등이 있다.

퍼스널 컴퓨터에서 사용할 수 있는 언어들은 모두 미니컴퓨터 이상에서도 사용할 수 있기 때문에 퍼스널컴퓨터용 프로그래밍 언어가 따로 있다고 생각해서는 않된다. 물론 어떤 언어도 위에서 분류한 개념에 따라 딱 들어 맞게 일치하지는 않는다. 예를 들어 어느 프로그래밍 언어가 비교적 구조적 특성이 많으면 구조적프로그래밍언어로 구분되는 것이다.
 

퍼스널컴퓨터의 역사
 

고급언어는 미래지향적 언어

프로그램작성자가 퍼스널컴퓨터 시스템의 하드웨어를 직접 제어하고 싶은 경우, 기계어(machine code) 수준까지 내려가서 마이크로프로세서의 레지스터를 사용한 데이타의 전송 및 연산을 하게된다. 또한 이렇게 되면 입출력 포트(port)들을 직접 제어할 수 있다. 이때 사용한 기계어를 저급언어라 한다. 반면에 고급언어는 하드웨어의 통제는 힘들고 화일(file), 배열(array), 변수와 같은 추상개념을 동원하여 프로그램작업의 속도를 증가시킬 수 있다. 가장 저급인 언어는 기계어이며 가장 고급언어는 일상생활에 사용되는 말을 사용할 정도의 자연언어이다.

여기서 한가지 분명하게 밝혀야될 것은 저급과 고급으로 구분하는 기준은 언어의 질(質)에 의한 것이 아니라 퍼스널 컴퓨터가 처리할 때의 수준에 따라 구분한 것이다. 다시 말하면, 하드웨어와 밀접되어 있는 기계지향적언어가 저급 언어이고 사용의 편의에 중점을 둔 인간지향적 언어가 고급언어일 것이다.

저급언어의 장단점을 이해하기 위해서는 퍼스널 컴퓨터의 핵이라 불리우는 마이크로 프로세서(CUP)의 동작을 먼저 이해하여야 한다. 기계어는 CPU내부에서 해석되며 간단하게 입력과 출력으로만 구성되어 있다. 에셈블리어는 기계어보다는 한 단계위인 언어이다. 입출력으로만 표현된 기계어를 알파벳을 사용하여 상징적으로 동작을 표현해주는 언어인 것이다. 따라서 프로그램 작성자들은 에셈블리어를 사용하여 프로그램을 쉽게 작성할 수 있으며 어셈블러(assember)를 사용하여 기계어 프로그램으로 변환시켜 볼 수 있다.

기계어와 어셈블리어는 퍼스널컴퓨터의 능력의 융통성을 배가시킨다. 예를들면 실행되는 모든 프로그램은 기계어로 되어 있기 때문에 프로그램이 수행되고 있는 도중에도 자신의 프로그램을 일부수정이 가능하며 마이크로프로세서와 입출력 장치의 효율적인 제어에 특별한 능력을 부여할 수 있다.

이러한 장점을 갖는 기계어 및 어셈블리어는 퍼스널컴퓨터의 하드웨어에 대한 많은 지식을 요구하며 직업적인 프로그램 작성자들도 고급언어로 작성할 때보다도 훨씬 더 많은 시간이 들 정도로 보다 세심한 주의를 필요로 한다. 이렇기 때문에 퍼스널 컴퓨터를 처음 대하는 사람에게 '어셈블리어로 프로그램을 작성하라'는 말은 갓난아기에게 편지를 쓰라는 요구와 똑같은 것이다.

고급언어는 하드웨어의 세부적인 사항을 몰라도 자동적으로 처리해주므로 프로그램 작성자가 응용적 측면만 생각하고 프로그램을 작성할 수 있도록 해준다. 그러나 고급언어는 편한 대신 효율성 및 융통성에서 약점을 갖고 있다. 기계어의 치리속도에 맞먹는 고급 언어는 없다. 다만 이러한 문제를 해결하기 위해 C와 FORTH같은 언어가 개발되어 고급언어와 저급언어의 단점을 해결하는 방향으로 발전하고 있다.

각광받는 언어, C

대부분의 프로그래밍언어는 교육용, 산업로보트 제어용, 그래픽 처리용 등등과 같은 특수 목적으로 개발되고 있으나, 여러가지 목적이 사용될 수 있는 범용언어에는 BASIC, FORTRAN, COBOL, LISP등과 후에 개발된 ALGOL, PASCAL, APL PL/I등이 있다.

특수언어는 특수한 문제나 시스템프로그램과 같은 특별한 응용분야에 유용한 기능을 갖게 된다. 특수언어에는 C, FORTH, MODULAR-2, SMALLTALK등의 시스템 프로그램용과 PILOT와 같은 CAI용 그리고 논리프로그램밍용인 PROLOG등이 있다.

C언어는 현재 컴퓨터소프트웨어 산업계에서 비상한 관심을 끌고 있는 강력한 프로그램 언어이다. 외국에서는 마이크로소프트사, 디지탈리서치사 등 소프트웨어의 주도적인 기업들이 이들의 주요개발 프로젝트에서 C를 사용하고 있고 이웃 일본에서도 프로젝트의 언어로 C를 선정하고 있는 것을 보더라도 C의 중요성을 느낄 수 있을 것이다.

C의 특징을 일컬어 'C는 포터블 어셈블리어'로 불리운다. C로 작성된 프로그램은 마이크로프로세서를 사용한 퍼스널컴퓨터로 쉽게 이식이 가능하다. 이식할 때에도 각 기종이 가진 고유한 기능을 충분히 살려서 호율을 증가시킬 수 있다. 퍼스널컴퓨터의 시장에서 새로운 응용분야를 찾으려는 세계적인 컴퓨터 개발회사들의 C언어를 사용한 소프트웨어의 개발에 주력하고 있다.

원래 VISICALC, 마이크로소프트 BASIC, WORDSTAR, CP/M 등과 같이 널리 알려진 퍼스널컴퓨터용 프로그램 등은 특정한 마이크로프로세서를 위한 어셈블리 언어로 작성되었기 때문에 다른 마이크로프로세서로 이식하려면 대부분 어셈블리어를 다시쓰거나 새로운 기종에 맞도록 수정을 해야 한다. 이러한 과정에서 에러(error)가 유발되고 또 다른 문제를 야기시킬 수도 있다.

1972년 벨연구소의 시스템프로그래머인 Dennis Ritchie에 의해 만들어진 이후 C언어는 UNIX오퍼레이팅 시스템과 아주 밀접한 관계를 유지하고 있다.

원래는 DEC(Digital Equipment Corporation)사의 PDP-11컴퓨터에서 개발되었지만 C와 UNIX는 퍼스널컴퓨터에서 수퍼컴퓨터에 이르기까지 모든 종류의 컴퓨터에 사용될 수 있다. C언어는 최근 퍼스널 컴퓨터에서 작업을 하고 있는 전문 프로그래머의 요구를 만족시켜줄 수 있을 만큼 융통성이 있는 강력한 언어로 대두되고 있다.

C는 구조적 프로그래밍의 일관성과 대부분의 고급언어가 갖는 특성들을 모두 지닌 언어이다. 기계어 수준에 접근시켜 놓은 명령을 많이 사용하면 프로그램의 실행속도도 증가 시킬수 있으며 언어의 본체에서 입출력 루틴들을 제거하고 쉽게 수정할 수 있는 표준 라이브러리에 넣음으로써 이식성이 좋아진다. 다양한 하드웨어가 춘추전국시대를 방불케하는 와중에서 소프트웨어의 이러한 융통성은 80년대를 살아가는 하나의 청량제임에 틀림없다.

PC도 인공지능 시대로

퍼스널 컴퓨터에서도 인공지능언어를 사용할 수 있다. 미래의 인공지능의 기초 연구를 위해 퍼스널컴퓨터를 1백% 활용하면 연구및 교육의 효과를 증대시킬 수 있다. 미국의 인공지능 연구는 LISP를 사용하여 진전되고 있으나 최근 PROLOG의 대두로 LISP와 PROLOG가 인공지능언어의 양대산맥으로 알려져 있다.

LISP는 상당히 오래된 언어로 대부분의 컴퓨터 전문가에게는 낯설지 않다. LISP는 문법구조가 일반 언어와는 달라서 초보자들은 당황하게되나 처음 고비만 넘기면 LISP는 쉽게 정복이 될 것이며 LISP프로그램을 편집하는데 도움이 되는 소프트웨어 도구(tool)들이 많이 나와 있기 때문에 이를 이용하면 다소 어려움을 덜어 줄것이다.

LISP는 왜 인공지능 연구에 사용되는가? 가장 중요한 이유는 LISP가 상징기호(symbol)을 처리하기 좋기 때문이다. 인간의 사고방식의 대부분은 숫자를 쓰는 것보다는 문자를 조작하는 경우가 훨씬 많다.

PROLOG는 비교적 새로운 언어로 일본의 제5세대 컴퓨터 개발계획의 핵심언어이다. 학계에서도 LISP만의 무대였던 인공지능 연구에 가치가 있는 언어로 인정받기 시작했고 많은 좋은 연구결과가 계속 발표되고 있다. LISP와 마찬가지로 PROLOG 도 수학적인 기반을 갖고 있다.

퍼스널컴퓨터도 이제는 인공지능분야를 향해 치닫고 있는 지금, LISP와 PROLOG 등과 같은 인공지능 언어를 빨리 습득하여 정보화 사회가 요구하는 퍼스널 컴퓨터의 개발에 매진해야 할 시점인 것 같다.

1986년 07월 과학동아 정보

  • 조동섭 교수

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?