|
컴퓨터의 아버지 - 찰스 배비지(1791-1871)
찰스 배비지(Charles Babbage)는 당대 기술수준의 한계로 컴퓨터 설계자들이 그의 아이디어를
도저히 실물로 만들 수 없었던 시대에 살았다. 따라서 배비지는 살아 생전에 실제로 컴퓨터를 만들지는 못했고, 그가 세상을 떠난 후
70여년이 넘는 세월이 지나고서야 컴퓨터는 세상의 빛을 볼 수 있었다.
배비지는 1791년 런던의 한 작은 동네에서 태어났다. 어려서부터 장난감을 분해해 어떻게 만들어져 있나
알아내곤 했던 호기심이 많은 아이이었다. 배비지는 은행원인 아버지의 영향을 받아 일찍부터 수학에 관심이 많았다. 어렸을 적 배비지의
또 다른 취미는 초자연적인 것에 대한 호기심이었다. 언젠가는 악마를 만나겠다는 일념으로 자기 손가락을 찔러 피를 내고 주기도문을
거꾸로 외우기도 했다고 한다. 그러나 불행히도(?) 악마는 만나지 못했다고 한다.
1810년 배비지는 캠브리지의 트리니티 대학에 입학해 수학과 화학을 공부했다. 관심이 워낙
다양했던 배비지는 엉뚱한 행동도 자주 했다고 한다. 사람이 물위를 걷는 것이 가능한 일인가를 직접 시험해 보기도 하고(물론 실패했지만),
섭씨 124도의 온도에 순간적으로 접했을 때 어떤 결과가 나타날 것인가를 실험하기 위해 직접 오븐안으로 뛰어 들어가는 위험한 행동도
서슴지 않았다.
어느 날 배비지는 자신 앞에 놓인 많은 계산표를 보고 `기계로 쉽게 계산할 수 있는 방법이 없을까'를 생각했다. 배비지는
계산표를 자동으로 처리하는 것을 목표로 연구를 시작한 결과, 1822년 세상 사람들이 최초의 자동계산기라고 말하는 미분기(Difference engine)를
설계했고, 약 10년 뒤인 1834년에는 해석기(Analytical engine)를 설계했다. 만일 여기서 구체적인 작품이 나왔다면 그것은 아마 최초의
컴퓨터가 되었을 것이지만 불행하게도 아무런 작품도 나오지 못했다. 그럼에도 불구하고 찰스 배비지는 컴퓨터의 개념을 처음 만들어낸 사람으로
평가받고 있다. 배비지의 해석기는 미분뿐만 아니라 모든 수학문제를 풀기 위한 것이었다. 이 기계는 펀치카드로 명령을 입력하고 컴퓨터의 메모리와
같은 곳에 그것을 저장하게 돼있어 오늘날 컴퓨터의 개념과 유사했다. 이 기계가 갖는 큰 의미는 분기(Branching), 서브루틴(subroutine),
루프(Loop) 등과 같이 프로그래밍할 수 있는 요소를 많이 가지려 했다는 것이다.
1871년 찰스 배비지는 여든 번째 생일을 앞두고 세상을 떠났다. 그의 장례식을 찾은 조문객 수가 많지 않았던 것을 보면
동시대 사람들이 그의 연구에 거의 관심이 없었다는 것을 알 수 있다. 그가 세상을 뜬 이후인 1891년에 영국 고학자들은 배비지의 설계 명세서를
보고 실제 기계를 만들었다. 이렇게 만들어진 기계는 베비지의 고안이 견고했다는 것을 증명하는 동시에 소숫점 이하 31자리까지 정확하게
계산해 냈다고 한다.
컴퓨터의 원리를 제공한 수학자 - 알란 튜링(1912-1954)
최고의 과학자들에게 수여된다는 노벨상을 모르는
사람은 없을 것이다. 하지만 이에 견줄만한 튜링상이라는 것이 있다는 것을 알고 있는 사람은
드물다. 당대 최고의 컴퓨터 과학자에게 수여되는 이 상은 알란 튜링이라는 한 과학자의 업적을
기리기 위한 것이다.
산업혁명의 증기기관이 인간을 육체노동의
질곡에서 해방시켜 주었듯이, 컴퓨터는 인간을 단순반복적인
정신노동에서 해방시켜주었다. 뿐만 아니라 이제는 인간의 고유한
영역이라 믿어온 창조성에까지 도전장을 내밀고 있다.
기계를 사고의 영역으로 끌어들여...새로운 이성탐구 방향 제시
컴퓨터의 원조를 따지는 것은 매우 어려운 일이다. 그것은 "무엇이
컴퓨터인가"라는 복잡한 문제로 귀착되기 때문이다. 우리가 흔히 보는
지금의 디지털 컴퓨터 이전에도 기계식, 또는 아날로그 컴퓨터도
있었다. 재미있는 것은 1930년대에는 수식계산을 전담하는 연구원을
컴퓨터로 불렀다는 것이다. 여하튼 전자식 디지털 컴퓨터의 원조가
누구인지는 논란이 있을지 몰라도 그 원리를 처음으로, 그리고 가장
완벽하게 제안한 사람이 튜링이라는 것에는 이견이 없다.
초창기 컴퓨터는 탄도계산이라든지, 주어진 함수값을 계산하는 것 등
특정한 계산만을 위해 만들어졌다. 지금의 모든 디지털 컴퓨터는
튜링의 '보편 튜링기계'라는 아이디어에서 출발한다. 이 튜링기계의
의미는 모든 '계산문제'를 더 이상 쪼갤 수 없는 가장 기본적인 연산으로
완벽히 분해했다는 데 있다. 즉 튜링기계 이론은 컴퓨터 과학의
소립자론인 셈이다. 튜링은 기계가 사람과 같은 정도의 지능을
가지는지의 여부는 그가 고안한 튜링 테스트로 검증할 수 있다고
주장한다. 즉 A씨가 단말기에 앉아서 커튼으로 가려진 너머의 B씨와
단말기로 대화를 한다. 그런데 A의 질문에 대하여 어떤 경우에는
사람인 B씨가, 어떤 경우에는 기계인 P가 답을 한다고 치자. 이 때 만일
A가 자신의 단말기에 나타난 답을 보고서 그것이 사람 B씨로부터 온
것인지, 기계 P로부터 온 것인지 분간할 수 없을 정도라면, 결국 기계
P는 B씨에 상응하는 지능을 가졌다고 볼 수 있다는 것이다.
인간에 대한 이러한 인식론적 정의는 지금까지의 무수한 현학적
인간론에 비해서 매우 명료하며 실용적이다. 튜링 테스트의 의도는
인간과 기계를 분별하는 방법의 제시에 있는 것이 아니라 인간의
사고작용 역시 그가 고안한 튜링기계의 복잡한 프로그램의 한가지로
표시될 수 있다는 데 있다.
현존하는 모든 컴퓨터는 튜링이 정의한 보편 튜링기계의 능력범위에서
한 발자국도 나아가지 못하고 있다. 비록 초대용량 수퍼컴퓨터라고
할지라도 튜링기계에서 할 수 없다고 판정한 문제는 아직 조금도 풀지
못하고 있다. 튜링의 선구적인 통찰 덕택에 컴퓨터는 논리 계산과
인간의 마음을 연결해주는 중요한 도구로 자리잡게 되었다.
최근 들어 각광받기 시작한 연결주의, 신경망 컴퓨터 등이 튜링기계의
한계를 극복하기 위한 것으로 알려지고 있는 것은 큰 오해이다. 최근
재발굴된 튜링의 유고논문을 보면 그는 이미 생물체의 특성을 본 딴
지금의 진화적 계산방법에 대해서조차 상세히 예측하고 있다. 물론
펜로즈와 같이 인간의 사고과정을 양자역학 모델로 파악하는 흐름도
있지만, 양자 컴퓨터가 실용화되기 전까지는 튜링의 아이디어는 유효할
것이다.
튜링의 진정한 업적은 인간 이성을 탐구할 수 있는 기계적인 방법을
제공한 것이며, 이와 동시에 인간의 진정한 의미를 기계에 되비추어
보이게 한 점이다. 최근의 공상과학영화에서 흔히 나오는 악한 인간과
착한 기계의 싸움, 멍청한 인간과 영악한 기계의 대립은 이미 50여년
전에 튜링이 제시한 주제곡의 한 변주곡에 불과한 것이다. (조환규/
부산대 정보컴퓨터공학과 교수).
수학자 알란 튜링은 ??
'컴퓨터의 아버지' 알란 튜링은 1912년 6월 영국
런던에서 태어났다. 인도에서 공무원을 하던
쥴리우스 튜링의 둘째 아들이었다. 이후 42년의
짧았던 그의 생애는 전쟁, 분노, 동성애, 자살 같은
다소 음침한 단어들로 점철돼 있다.
고교부터 수학에 취미를 보였던 튜링은 1931년 케임브리지대학의
킹스칼리지에 들어갔다. 그는 수학-논리학을 주로 파고들었으며 양자
역학과 확률론에도 깊은 관심을 보였다.
튜링은 대학원생 신분이던 1936년 '계산가능한 수에 관하여'라는
기념비적 논문을 썼다. 이 논문은 훗날 '튜링기계'라고 불리게 된
계산하는 기계를 탐색한 것이었다. 사람의 두뇌에 해당하는 제어장치,
데이터가 수록된 테이프, 이를 읽고 기록하는 입출력 헤드의 3부분만
있으면 기계적 절차로 모든 계산이 가능해진다는 주장이었다. 게다가
그는 어떤 프로그램이든 모두 읽고 해석할 수 있는 '보편적인'
튜링기계를 제안했고, 이것은 현재 디지털 컴퓨터의 개념적 원조였다.
튜링은 미국으로 건너가 프린스턴대학에서 1938년 26세의 나이로
박사학위를 받았다. 귀국 후 조국이 2차 대전이라는 전쟁의 소용돌이에
말려들자 1939년 영국 통신국에 근무하면서 천재적인 능력으로
'애니그마'라는 독일군 암호기계의 암호문을 해독해낸다. 그는 또
1942년 세계 최초의 전자식 디지털 컴퓨터인 '콜로서스'라는 컴퓨터를
만들어 암호해독을 자동화했는데, 이는 연합군의 노르망디 상륙작전을
성공시킨 숨은 공로자였다.
튜링은 런던에 있는 국립물리연구소(NPL)로 자리를 옮겨 자신의
아이디어를 실현할 실용적인 컴퓨터를 만들려고 했다. 미국에서는
노이만이, 영국에서도 케임브리지대학과 맨체스터대학이 함께 경쟁을
벌이고 있었다. 하지만 NPL 내에서 튜링의 목소리는 먹히지 않았고,
개발도 지지부진했다. 좌절한 그는 '달리는 일'로 스트레스를 풀었다.
마라톤에서 그의 최고 기록은 2시간 46분 3초. 1948년 올림픽
우승자보다 11분 밖에 늦지 않는 기록이었다.
맨체스터대학으로 옮긴 그는 "기계도 생각을 할 수 있는가?"라는 보다
본질적인 문제에 도전하게 된다. 1950년에 나온 '계산하는 기계와
지능'은 인공지능을 탐구한 가장 선구적인 논문이었다.
튜링의 말년은 비참했다. 1952년 그는 동성애자로 경찰에 체포됐다.
파트너였던 남자가 튜링의 집에 도둑으로 들었고, 경찰 조사과정에서
동성애 사실이 밝혀졌기 때문이었다. 엄숙주의가 판치던 당시
영국사회는 그에게 '1년간 보호감찰'과 '리비도를 중화할 성억제제의
투여'를 명령했다. 그로부터 2년 후 그는 자신의 집에서 시체로
발견됐다. 옆에는 청산가리가 묻은 사과가 나뒹굴고 있었다. 시대를
앞서 살았던 천재가 어떻게 세상을 등졌는지는 아직도 수수께끼로 남아
있다.
알란 튜링에 대한 자세한
내용을 알고 싶으면 제가 번역한
'수학의 스캔들'(고석구/이만근 역, 경문사, 1999)을
읽어 보기 바랍니다.
코볼의 어머니 - 그레이스 머레이 호퍼(1906-1992)
그레이스 머레이 호퍼(Grace Murray Hopper)의
프로그래밍 경력은 하워드 에이킨이 만든 마크 I의 프로그램을 개발하고 버그를 수정하는
일에서부터 시작됐다. 그는 40대라는 늦은 나이에 프로그래밍에 입문했지만 그 실력은 기가
막힐 정도였다고 한다. 호퍼는 가장 보편적인 비즈니스용 프로그래밍 언어인 코볼(COBOL)을
만드는 데 중요한 역할을 했다.
호퍼는 1906년 미국 뉴욕에서 태어났고, 아버지는 미군 해군
제독이었으며 외할아버지는 토목기사였다. 호퍼는 외할아버지의 영향을 받아 수학과 기하학에
관심을 갖게 됐으며 '기하학 문제를 풀면서 온갖 색연필을 쓸 수 있어 좋았다'고 말했다.
1924년 뉴욕의 바사 대학에 입학한 그의 관심사는 수학, 물리학, 공학이었다. 졸업 후
예일대학으로 옮겨 1930년 수학 석사 학위를 받았으며, 1934년에는 수리물리학으로 박사
학위를 받았다.
2차 세계대전이 일어나자 호퍼는 수 천명의 다른 미국 여성들처럼
군대에 입대하기로 결심하고 1843년 미국 해군에 지원했다. 호퍼는 해군 연구소에서 컴퓨터
프로젝트의 책임자인 하워드 에이킨을 만났다. 에이킨은 호퍼에게 마크 I이란 컴퓨터를
보여줬는데 그가 바로 최초의 프로그램 방식 디지털 컴퓨터인 마크 I이란 컴퓨터를 만든
사람이다. 사실 당시에 호퍼는 자기가 쳐다보는 것이 도대체 무엇인지 몰랐다고 한다.
그러나 에이킨은 곧바로 그에게 탄젠트 보간법의 계수를 구하는 일을 맡겼다고 한다.
그 후 호퍼는 마크 I에 대한 매뉴얼 작업을 계속해야 했고 아무런
영문도 모른 채 최초의 프로그래밍 작업을 했던 그는 그야말로 밑바닥부터 하나하나씩 밟아
올라왔다. 제대 후 1952년부터는 스페리라는 회사에서 시스템 엔지니어로 일했다. 원래 실수가
잦을 수밖에 없는 코드 작성 업무 때문에 호퍼는 하도 고생을 해 이와 관련해
'뭔가 혁신적인 일'을 생각하게 됐다. 그가 개발하고 싶었던 새로운 종류의 프로그램은
컴파일러로 1952년에 그레이스 호퍼와 그의 연구진에 의해 개발된 A-0이 최초의 컴파일러이다.
1954년 미분해석기를 개발한 호퍼는 사람들을 초청하면서 컴퓨터
프로그램이 미분할 수 있는 함수를 아무거나 가져오도록 요청했다고 한다. 한 사람이 무려
6개월 동안 매달렸던 복잡한 함수를 가져왔는데 불과 18분만에 그 문제를 해결하자 그 사람은
호퍼가 컴퓨터 속에 사람을 감춰놓고(?) 해답을 내놓게 했다고 억지를 부렸다고 한다. 그 후
불어나 독어로 쓰여진 동일한 프로그램을 기계 코드로 변환하는 루틴을 작성하려고 했으나
경영진은 처음에는 전혀 믿지를 않았다. 호퍼는 1957년 B-0로 알려진
플로-매틱스(Flow-Matics)라는 프로그램을 유니백에서 구현했다. 이 프로그램은 최초의 영어
데이터 처리 컴파일러였으며, 단어를 사용하는 컴퓨터 언어로도 최초였다.
1957년 과학계에는 포트란이 소개됐지만 일반 산업계에는 그런 것이
전혀 없었기 때문에 컴퓨터 업계의 주요 인사들을 불안한 상태였습니다. 일단 플로-매틱스가
나오자 IBM과 허니웰에서도 비슷한 컴파일러를 발표했다. 두 가지 이상의 상용언어가 표준으로
지정됨에 따라 업계에서 일어날 많은 혼란을 우려해 중립적 위치에 있는 대학에서
코볼(COmmon Business-Oriented Language)을 출범시키는 모임이 열렸다. 비록 코볼이 최종적인
형태로 나온 것은 호퍼가 속해 있지 않은 위원회였지만 위원들은 호퍼의 플로-매틱스가 자신들의
사고에 엄청난 영향을 미쳤다는 사실을 인정했다.
'버그'의 유래
컴퓨터 역사에서 그레이스 호퍼는 '버그'란 단어를
처음 만들어 낸 사람으로 기록된다. 1945년
여름 내내, 마크 I의 대를 이어 받은 마크 II 컴퓨터는 동작하면서 몇 가지 틀린 정보를 계속해서
출력했다. 그 원인은 다름 아닌 나방이 릴레이에 끼어서 죽어 있었던 것이었다. 그는 그 나방을
릴레이에서 꺼내 공책의 한 페이지에 스카치 테이프로 붙여놓고 나서 그 밑에 이렇게 적었다.
"최초로 실제의 버그가 발견되었다. (First actual case of bug being found)
포트란을 만든 사람, 존 배커스(1924 ~ )
1950년대에 컴퓨터를 사용하려면 상당한 수준의
전문성과 천재적인 머리, 그리고 참을성이 필요했다. 1953년 존배커스(John Backus)는 컴퓨터를
더 쉽게, 더 광범위하게 쓸 수 있도록 하기 위해 최초로 실용적인 고급 프로그래밍 언어를
개발하기 시작했다. 프로그래밍의 단순 작업을 못 견딜 만큼 싫어했던 그는 바로 그 이유 때문에
포트란(FORTRAN)을 만들었던 것이다.
1924년 미국 필라델피아에서 태어난 그는 1942년에 버지니아 대학에서
화학을 공부했다. 그러나 그는 수업을 자주 빼먹었기 때문에 첫 학기에 그만 학교에서 쫓겨나게
된다. 그리고 나서 1943년 육군에 징병돼 육군 병원에서 근무했다. 제대 후 수학에 재미를 느껴
콜럼비아 대학에서 수학을 전공하고, 1949년 학사학위를 받는 데 이어 1950년에는 석사학위를
받았다. 1950년에 배커스는 IBM에 입사했는데. 그가 처음 입사할 때 만에도 컴퓨터에 대해 전혀
아는 바가 없었다. 배커스는 1년 동안 1952년 도입된 IBM 701용 어셈블리 언어 개발팀의 팀장이
됐다. 그는 또한 IBM 704를 설계하고 부동수 소점과 인덱스 지정을 갖춘 하드웨어를 내장하는
작업을 했다.
포트란을 개발하게 된 이유는 프로그래밍과 디버깅에 들어가는 돈은
컴퓨터 가동 비용의 약 4분의 3을 차지하고 기 비율은 컴퓨터가 싸질수록 더 높아지기 때문이었다.
그래서 조 배커스는 1953년 실용적인 고급 프로그래밍 언어의 개발을 제안하는 편지를 그의
상사에게 보냈고, 상사의 회답은 대단히 희망적이었다. 배커스와 그의 팀은 비용에 크게
구애받지 않고 일을 시작하게 되었던 것이다.
배커스와 그의 팀에게 핵심적이 문제는 언어의 설계가 아니라 효과적인
프로그램을 만들어내는 컴파일러의 설계였다. 그들은 과학자와 엔지니어들이 IBM 704에서
프로그램을 작성하는데 편리함을 느낄 수 있는 언어를 만들어내고자 했다. 그 후 3년의 시간이
흐르고 난 뒤인 1957년에 드디어 컴파일러가 완성됐다. 그것은 2500 라인의 기계어로 이뤄져
자기테이프에 수록돼 있었다. 처음에 배포된 프로그램은 많은 버그를 갖고 있었지만 그래도
성공적이었다.
포트란이 나왔을 때 베커스팀은 그들이 참으로 배우기 쉬운 언어를
만들었다는 사실을 알게 되었다. 수학자와 과학자를 위해 특별히 주석이 첨부됐으며 그 후 상당히 오랜 시간동안 과학용 프로그램에 적합한 언어로 사용됐다.
베커스는 1959년에 알골(ALGOL) 언어를 설명한 주석서인 배커스-노어
폼(Backus-Naur Form : BNF)을 만들었다. 이것은 일련의 변수를 어떻게 배열하는가에 대해
반복적으로 설명한 것으로 수많은 다른 언어에 적용됐다. 그 후 수십 년 동안 연구하던 것은
거의 다 미완성으로 끝나고 말았지만 베커스의 노력은 오늘날의 쉬운 프로그래밍 환경을
만들어준 발판이 됐다.
베이직을 만든 사람들,
존 키메니(1926 ~ )와 토머츠 커츠(1928 ~ )
처음에 사람들이 컴퓨터에 기대했던 것은 오직
계산하는 일 뿐이었다. 만약 사람이 하는 것보다 계산 시간을 줄일 수만 있다면 그것은 정말
기적과 같은 일이었다. 그러나 1960년대에 들어서면서 하드웨어가 대중적으로 확산되기
시작할수록 컴퓨터는 더욱 저렴해지고 친근해졌다. 사용자들은 컴퓨터와 대화를 나누려했고
만약 컴퓨터가 그 일을 하지 못한다면 비싼돈을 지불하고 컴퓨터를 살 필요가 없다고 생각했다.
일반 사용자가 어셈블리 언어를 배우기는 힘들었고 고급 언어는 매우 특수한 목적으로 사용됐다.
과학자를 위해 포트란이 있었고 기업용으로 코볼이 사용됐던 시기였죠. 뭔가 배우기 쉬운 언어가
필요했던 시기에 존 메키니(John Kemeny)와 토머츠 커츠(Thomas Kurtz)가 베이직을 개발했다.
키메니와 커츠는 미국 다트머스 대학의 수학 교수로 컴퓨터를 사용해
어떤 일을 할 수 있는지를 잘 알고 있었다. 그러나 전산실은 관계자 외에는 출입금지였다. 그래서
그들은 대학생이 도서관에서 책을 빌려 보듯 언제든지 자유롭게 컴퓨터를 사용할 수 있도록
하자는 당시로서는 혁명적인 개념을 실천에 옮기기로 했다. 그래서 MIT와 시분할(Time Sharing)
프로젝트를 공동으로 연구하게 됐다. 일괄처리(Batch Processing) 방식과 달리 시분할 방식은
학생이 기계에 직접 접근할 수 있었기 때문에 다트머스 대학에서는 시분할 컴퓨터가 절실히
필요했다.
키메니와 커츠는 1956년에 DARSIMCO(다트머스 단순코드)를 만들었지만
포트란이 곧 나왔기 때문에 이 언어는 그리 오래가지 못했다. 1962년 다트머스의 한 학생의
도움을 받아 키메니는 베이직의 원형으로 알려진 도프(DOPE)라는 언어를 만들었지만 실패하고
말았다. 그래서 그들은 새로운 언어를 처음부터 만들어 보기로 결심 했다.
키메니는 1963년 가을부터 베이직의 기초적인 버전을 위한 컴파일러에
관해 연구를 시작했다. 키메니는 다음해 봄까지 베이직 개발작업을 완료했다.
베이직 프로그램은 1964년 5월 1일 새벽 4시 GE 225 컴퓨터에 탑재된 시분할 시스템에서 처음으로
가동 됐다. 키메니와 커츠는 이 언어의 이름이 무언가를 의미하면서도 간단해야 한다고 생각했다.
'베이직(BASIC)'이 바로 그 단어이었다.
그들의 목적은 단지 베이직이 학생들의 공부에 도움이 되고 컴퓨터를 쉽게 배울 수 있도록
만드는 데 기여할 수 있었으면 하는 정도였다. 베이직은 쓰고 싶은 사람은 누구나 공짜로 사용
할 수 있었으며, 그것의 큰 장점은 배우기 쉽다는 것이다. 이제는 과학자나 기업가가 아닌 개인
사용자도 베이직으로부터 이익을 얻을 수 있다.
베이직은 그 이전에 나온 고급 언어보다 사용하기 쉬운 몇 가지 다른
점을 갖고 있었다. 우선 문법이나 명령어가 복잡하지 않았다. 또한 프로그래머는 컴퓨터로
명령어를 입력하면 즉각 이에 해당하는 응답을 제공해 디버깅과 프로그램 변형 과정이 편리했다.
또 다른 장점이라면 난수 발생 기능(Random Number Generator)을 내장해 어린이들이 쉽게 게임
프로그램을 작성할 수 있도록 배려했다. 그들은 현재 트루 베이직 (www.truebasic.com)이란
회사의 공동 창립자로 아직까지 왕성하게 활동하고 있다. 베이직을 통해 세상의 수많은
개발자에게 프로그래밍을 쉽게 접근 할 수 있는 환경을 제공했다는 사실만으로도 그들은
존경받을 만하다.
C 와 유닉스를 만든 사람들 -
데니스 리치(1941 ~) 와 켄 톰슨(1943 ~ )
'우리의 목적은 우리 자신을 위해 좋은 컴퓨팅
환경을 만드는 것이다. 그리고
다른 사람도 그것을 좋아했으면 하는 것이다.
'이것은 데니스리치 (DenniesRitchie,http://www.cs.bell-labs.com/who/dmr)가 1983년 유닉스
운영체제를 개발하고 실용화한 공로로 켄
톰슨(Kenneth Thompson, http://www.plan9.bell-labs.com/who/ken)과 함께 뷰링상 수상 소감으로
했던 말이다.
데니스 리치는 1941년 미국 뉴욕에서 태어났다. 그의 아버지는
벨연구소의 교환시스템 공학연구소에서 책임자로 일하고 있었다. 리치는 하버드 대학에서
물리학을 전공하고 1963년에 졸업했다. 그 다음 5년 동안 같은 대학에서 응용수학을 전공하며
박사과정을 밟았다. 리치는 대학원에 다닐 때 인생의 전환점을 맞게되었는데 1960년대 시작된
MT 분할 프로젝트인 MAC 계획에 파트타임으로 일하게 된 것이다. 그는 그 후 계속 컴퓨터분야에서
일했다.1968년 리치는 벨연구소에 몸담게 됐는데 컴퓨터과학에서 흥미 있는 분야를 집중 탐구하는
것이 그의 일이었다.
켄 톰슨은 1943년 미국 뉴올리언스에서 태어났다.
어렸을 적에 그는 라디오 가게를 들락거리며 전기와 무선 라디오에 대해 많은 것을 배웠다. 그
당시 새로운 상품이 있던 트랜지스터가 개당 10달러에 팔리던 시절이었다.
그는 그것을 사려고 돈을 모으고있었는데 하루는 1달러 50센트에 파는
것을 보고 기뻐하며 샀다. 나중에야 아들의 취미에 관심을 가졌던 아버지가 미리 8달러 50센트를
줬다는 사실을 알게 되었다고 한다.
1960년 톰슨은 캘리포니아 버클리 대학에서 전기공학을 전공한 그는
1962년 전산실의 프로그램 개발 자리를 찾아냈다. 1963년과 1964년 샌디에고의 한 회사에서
산학협동 프로그램에 참여했으며 1965년 버클리를 졸업하고 1년후 같은 학교에서 전기공학으로
석사 학위를 받았다. 하지만 졸업 이후 전기는 뒷전이었다. 오로지 컴퓨터에만 관심이 있었고,
1965년 톰슨은 벨연구소에서 일하기 시작했다.
리치와 톰슨은 벨연구소에서 만났다. 벨연구소가
멀틱스(Multics)운영체제를 포기한다는 사실이 명확해지자 그들 스스로 운영체제를 만들기로 했고,
PDP-7컴퓨터를 찾아내 운영체제를 만들기 시작했다. 운영체제를 만드는 과정에서 리치와 톰슨은
우선 기계에 데이터를 저장하는 방법, 즉 파일 시스템의 구조에 대해 먼저 연구하기 시작했다.
'우리는 이 파일 시스템을 위한 조작코드를 작성해야만했다.'라고 리치는 당시를 회상한다고 한다.
그래서 키보드로 타이핑해 낳은 파일 복사 또는 삭제 명령어 등이 파일에서 실제로 동작하도록
만드는 명령 해석기를 만들었다.
'우리는 완전히 처음부터 시작했다. 기계 위에는 어떠한 소프트웨어도 없었다. 그리고 프로그램을
작성하는 방법은 대향 GE 컴퓨터에서 크로스 어셈블러에 의한 것이었다. 우리는 GE 컴퓨터에서
프로그램을 짜고 이를 기계에 객체 프로그램으로 바꿔 종이 테이프에 전공한 뒤 그것을 다시
PDP-7로 갖고 내려가서 작업했다.'고 리치는 말했다.
톰슨은 실제로 PDP-7의 어셈블러 역할을 했던 GE 컴퓨터에서 작은
어셈블러를 작성했다. 또한 그들은 작은 에디터도 만들었다. 그들의 작업은 정말로 아무 것도
없는 '무에서 유를 창조'하는 작업이었다.
1971년 말 유닉스 개발이 완료되면서 유닉스는 벨연구소 안팎에서
서서히 성장해나가기 시작했다. 연구소 내부에서는 여러 가지 연구용 버전틀이 라이선스 받아
사용되고 있다. 유닉스는 원래 어셈블러 언어로 작성돼 프로그램간 호환성이 없었지만
운영체제를 고급언어고 만드는 것은 비효율적이고 비실용적인 것이었다. 그래서 리치와 톰슨은
C 언어라는 새로운 고급언어를 만들기로 했다. C는 고급이면서 저차원 언어의 특성을 내포하고
있으며, 시스템 프로그래머에게는 다양한 기능을 제공했다.
리치와 톰슨은 자신들을 위해 편리한 환경을 만들겠다는 생각밖에
없었지만 결국 그들은 유닉스와 C 언어를 개발함으로써 당초 목표보다 더 많은 것을 이루어
놓았다.
C++ 의 아버지, B 스트로우스트럽(1950 ~ )
데니스 리치와 켄 톰슨이 벨연구소에서 C 언어를
개발한 이후 좀더 새로운 언어가 절실히 필요하게 됐는데 이때 B 스트로우스트럽(B Stroustrup)은
현재까지 많은 개발자가 사랑하고 있는 C++를 개발했다.
스트로우스트럽은 1950년 덴마크의 알허스에서 태어났다. 알허스
대학에서 수학과 전산학을 전공하고 1979년 영국의 캠브리지 대학에서 박사학위를 받았다.
분산시스템, 운영체제, 시뮬레이션, 디자인, 프로그래임에 관심이 많은 그는 현재 AT&T연구소에서
연구하고 있다.
스트로우스트럽은 C++를 디자인하고 구현했다. C++를 C언어를 기반으로
객체 지향적 프로그래밍의 요소를 도입한 것으로, C의 본래 장점인 간결함과 저수준 기능을
살리면서 고도로 추상적인 기법을 사용할 수 있게 했다는 점에서 높이 평가받고 있다. 처음에는
C의 전처리기형태로 사용됐으나 근래에는 완벽한 컴파일러로 나오고 있으며, 객체 지향적
프로그래밍에 대한 인식이 확산되면서 C++도 주목받고 있다.
스트로우스트럽은 현존하고 있는 인물로, 우리는 앞으로 그의 삶을 지켜볼 수 있을것이다.
그의 홈페이지(http://www.research.att.com/~bs)를 통해 그의 자세한
연구 활동과 저서에 대해 알 수 있다. 그에 대해 궁금한 것이 있거나 C++ 에 대한 내용이 있으면
그에게 직접 메일을 보낼 수 있다.
|