해석기관
해석기관(解析機關, 영어: Analytical Engine,해석 엔진)은 영국의 수학 교수 찰스 배비지가 고안한 기계적 범용 컴퓨터의 설계이다. 1837년에 처음으로 발표되었으며, 설계는 1871년 그가 죽기 전까지 계속되었다. 해석기관은 경제적, 정치적, 법적 문제로 인해 실제 만들어지지는 않았다. 해석기관의 논리적 설계 자체는 매우 현대적이었으며, 약 100년 뒤의 첫 범용 컴퓨터의 모습을 예측하였다. 해석기관은 컴퓨터 역사에서 중요한 발전의 하나이다.
일부 사람들은 그 시대의 기술적 한계 때문에 해석기관을 만들지 못하였다고 믿는다. 다른 이들은 금전적 및 정치적 지원이 더 충분하였다면 그 시대의 기술로도 충분히 만들 수 있었다고 믿는다. 찰스 배비지는 함께 일하기 매우 까다로운 것으로 악명이 높았으며, 그의 엔지니어였던 조지프 클레먼트(Joseph Clement)[1]를 포함하여 처음에는 그를 도왔던 많은 이들의 등을 돌리게 하였다.
설계
찰스 배비지가 시도했던 첫 번째 기계적 계산 장치는 차분기관이다. 차분기관은 근사 다항식을 유한 차분법을 통해 계산하여 로그와 삼각 함수를 표로 만드는 특수 목적용 계산기이다. 차분기관 프로젝트가 개인적 및 정치적 이유로 주춤하게 되었을 때 그는 설계를 좀 더 범용적으로 할 수 있다는 것을 깨달아 해석기관의 설계를 시작하였다.
증기기관을 동력으로 사용하며 30미터 길이에 10미터 넓이 정도의 크기를 가졌다. 프로그램과 데이터를 천공 카드로 입력받았고 프린터와 곡선 플로터, 종으로 출력했다. 또한 확인을 위해 천공카드 입력기를 장착할 예정이었다. 숫자는 고정 소수점을 갖는 10진수를 사용하였다.
50자리의 숫자 1000개를 저장할 수 있는 저장소(store)가 있으며, 산술 논리 장치(mil)는 사칙 연산과 비교 연산, 그리고 선택적으로 제곱근 계산 기능을 제공하였다. 초기에는 차분기관의 출력이 다시 입력되는 순환적인 구조에 한쪽에 긴 저장소가 있는 형태로 생각되었으나,[2] 나중에 그려진 그림에서는 격자 형태로 조정되었다.[3] 현대 컴퓨터의 중앙 처리 장치(CPU)와 마찬가지로 산술 논리 장치도 그것의 내부 프로시저에 의존하였는데, 이것들은 "배럴(barrels)"이라 불리는 회전하는 드럼에 삽입되는 말뚝 형태로 저장되었다. 이 프로시저들은 사용자 프로그램이 지정하는 좀 더 복잡한 명령어들을 실행할 수 있도록 하였다.[4] (현대 컴퓨터에서 마이크로코드에 해당한다.)
현대의 어셈블리어와 유사한 프로그래밍 언어가 사용되었다. 반복문과 조건문이 존재하며, 따라서 앨런 튜링이 개념을 잡기 훨씬 이전에 이미 튜링 완전했던 것으로 여겨진다. 세 종류의 천공 카드가 사용되었는데, 각각 수학 연산을 위한 카드, 숫자 상수를 위한 카드, 그리고 숫자를 수학 연산 단위로 전달하거나 이를 다시 전달받는데 사용되는 카드이다. 이 3종류의 카드를 읽기 위해 3종류의 카드 리더기가 존재했다.
이탈리아를 여행 중이던 배비지를 만난 이탈리아의 수학자 루이기 메나브레아(Luigi Menabrea)는 1842년에 해석기관에 대한 설명을 프랑스어로 작성하였다. 이 설명은 이미 10년 전부터 해석기관에 관심을 갖고 있었던 에이다 킹, 러브레이스 백작부인이 1843년에 영어로 번역하면서 베르누이 수를 계산하는 방법을 포함한 광범위한 주석이 추가되었다. 메나브레아의 설명에 대한 그녀의 주석을 통해서 그녀는 최초의 컴퓨터 프로그래머로 불린다. 에이다 프로그래밍 언어는 그녀를 기리기 위해 지어진 이름이다.
일부 제작
배비지는 그의 인생 말년에 단순화한 해석기관을 만드는 방법을 찾았다. 그리고 1871년 그가 죽기 전까지 그와 관련된 작은 부품들을 모았다.[4] 그러나 1878년 영국과학진흥협회의 한 위원회는 해석기관의 제작을 중단할 것을 권고하였다. 이는 정부 기금을 위해 배비지의 노력을 좌절시킨 것이었다.
1910년 배비지의 아들 헨리 P 배비지(Henry P. Babbage)는 산술 논리 장치와 인쇄 장치의 일부를 제작하여 원주율의 배수 목록을 계산하는 데 사용했다고 보고했다. 이것은 전체 기관 중 일부만을 구성한 것으로, 프로그래밍이 가능하지 않았고 저장소도 없었다.
헨리는 또한 매우 작은 저장 능력을 가지는 시연을 위한 해석기관을 만들 것을 제안하였다: "아마도 첫 번째 기계는 각각 25개의 바퀴가 있는 20개의 컬럼을 가질 것이다."[5] 이 기관은 25자리의 숫자 20개를 처리할 수 있었다. 숫자 처리의 규모에 대해 1888년 헨리 배비지는 "이것은 단지 카드와 시간의 문제일 뿐, 수학 계산을 위해 필요하다면 해석기관에 2만개의 카드도 사용하지 못할 이유가 없다."라고 적었다.[5]
영향
해석기관은 그 후 세 가지 예외를 제외하고는 거의 잊혀졌다. 1915년 퍼시 러드게이트(Percy Ludgate)는 해석기관에 대한 글을 썼으며, 심지어는 자기 자신만의 해석기관을 설계하기도 했다. 그것은 상세히 그려졌지만 제작되지는 않았다. 러드게이트의 해석기관은 배비지의 것보다 약 8 세제곱 피트 더 작았고, 가정대로라면 두 개의 20자리 숫자를 약 6초 안에 곱할 수 있었다. 레오나르도 토레스 쿠에베도(Leonardo Torres Quevedo)와 배니버 부시도 또한 배비지의 작업을 알고 있었다. 그러나 이들 3명의 발명가들은 서로에 대해 알지 못했다.
해석기관에 대한 배비지의 작업과 밀접하게 관련된 것은 제2차 세계 대전 직전에 시작된 뉴욕 벨 연구소의 조지 스티비츠(George Stibitz)의 작업과 제2차 세계 대전 중에 시작된 하버드 대학교의 하워드 에이컨의 작업이다. 그들은 둘 다 해석기관과 밀접하게 관련된 전기기계식(즉 중계하고 교환하는) 컴퓨터를 만들었지만, 프로그램이 가능한 현대적인 컴퓨터는 아니었다. 에이컨의 기계는 IBM의 재정지원을 받았으며, 하버드 마크 I이라 불렸다. 1930년대에 에이컨은 헨리 배비지가 1886년에 하버드 대학에 맡긴 해석기관의 부품을 발견하고 이에 영감을 받았다. 그는 배비지의 글에 대한 접근권을 얻었고, 후에 배비지의 책을 가리키면서 다음과 같이 주장했다.[6][7]
- 여기에 컴퓨터에 대한 나의 교육이 담겨있다. 바로 여기에. 이것은 모든 것이다. 그것은 내가 책에서 얻은 모든 것이다.
- There's my education in computers, right there; this is the whole thing, everything I took out of a book.
분자나노기술에서는 초창기에 미끄러지는 막대와 뭉뚝한 돌출(stubby protrusion)로 구성된 논리 회로를 사용하여 조건에 따라 움직임을 제한하는 극도로 작고 빠른 컴퓨터의 구현 방법이 제안되었다.[8] 배비지의 설계에서는 이와 비슷한 계산용 "막대 논리(rod-logic)"가 마이크로프로그램을 접근하기 위한 미끄러지는 제어 레버와 못박혀진 베럴 장치에 존재했다.[4] 다음은 배비지의 자서전에서 발췌한 문장이다.
- 해석기관이 탄생된 그 즉시, 반드시 앞으로의 과학 코스를 가이드할 것이다.
- As soon as an Analytical Engine exists, it will necessarily guide the future course of the science.
다른 초기 컴퓨터들과의 비교
만약 해석기관이 제작되었다면 여러 면에서 1940년대에 출현한 최초의 컴퓨터들보다 훨씬 진보적이었을 것이다. 왜냐하면 해석기관은 디지털이고 프로그램이 가능하며 튜링 완전하다. 그렇지만 성능은 매우 느렸을 것이다. 에이다 러브레이스는 해석기관에 대한 자신의 노트에 다음과 같이 기록했다. 배비지는 자신의 해석기관을 사용하여 3분 안에 20자리의 숫자 2개의 곱을 구할 수 있다고 믿었다. 참고로 하버드 마크 I은 단 6초 안에 같은 계산을 수행할 수 있으며, 현대의 개인용 컴퓨터는 10억분의 1초 아래로 실행할 수 있다.
각주
- ↑ “(영어) 까다로운 배비지”. 2007년 8월 12일에 원본 문서에서 보존된 문서. 2007년 6월 10일에 확인함.
- ↑ “(영어) 배비지의 해석기관: 최초의 진정한 디지털 컴퓨터”. 2008년 8월 21일에 원본 문서에서 보존된 문서. 2007년 6월 19일에 확인함.
- ↑ (영어) 연산 기관 - 배비지 페이지
- ↑ 가 나 다 (영어) 차분기관 - 팀 로빈슨의 메카노(Meccano) 연산 기계 웹사이트
- ↑ 가 나 (영어) 해석기관 - 헨리 P 배비지, 1888년
- ↑ (영어) In the Beginning - The Old Computer Hut
- ↑ (영어) 배비지와 에이컨 - IEEE Annals of the History of Computing, Volume 10 , Issue 3 (July 1988)
- ↑ www.npl.washington.edu
외부 링크
- The Babbage Papers, Science Museum archive
- The Analytical Engine at Fourmilab, includes historical documents and online simulations
- “Image of the "General Plan of Babbage's great calculating engine" (1840), plus a modern description of operational & programming features”. 2008년 8월 21일에 원본 문서에서 보존된 문서.
- Image of a later Plan of Analytical Engine with grid layout (1858)
- First working Babbage "barrel" actually assembled, circa 2005
- Special issue, IEEE Annals of the History of Computing, Volume 22, Number 4, October–December 2000 (구독 필요)
- Babbage, Science Museum, London (archived)
- “The Marvellous Analytical Engine – How It Works”. 《2D Goggles》. 2015년 5월 31일. 2021년 11월 26일에 원본 문서에서 보존된 문서. 2017년 8월 23일에 확인함.
- Plan 28: Building Charles Babbage's Analytical Engine
- 잘못된 파일 링크가 포함된 문서
- 영어 표기를 포함한 문서
- 구독이 필요한 링크를 포함한 문서
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- 수학 도구
- 기계식 계산기
- 아날로그 컴퓨터
- 잉글랜드의 발명품
- 독특한 컴퓨터
- 기계식 컴퓨터