해석기관

섬네일 **해석기관**(解析機關, Analytical Engine,해석 엔진)은 영국의 수학 교수 찰스 배비지가 고안한 기계적 범용 컴퓨터의 설계이다. 1837년에 처음으로 발표되었으며, 설계는 1871년 그가 죽기 전까지 계속되었다. 해석기관은 경제적, 정치적, 법적 문제로 인해 실제 만들어지지는 않았다. 해석기관의 논리적 설계 자체는 매우 현대적이었으며, 약 100년 뒤의 첫 범용 컴퓨터의 모습을 예측하였다. 해석기관은 컴퓨터 역사에서 중요한 발전의 하나이다. 일부 사람들은 그 시대의 기술적 한계 때문에 해석기관을 만들지 못하였다고 믿는다. 다른 이들은 금전적 및 정치적 지원이 더 충분하였다면 그 시대의 기술로도 충분히 만들 수 있었다고 믿는다. 찰스 배비지는 함께 일하기 매우 까다로운 것으로 악명이 높았으며, 그의 엔지니어였던 조지프 클레먼트(Joseph Clement)url-status=를 포함하여 처음에는 그를 도왔던 많은 이들의 등을 돌리게 하였다.
# 설계
찰스 배비지가 시도했던 첫 번째 기계적 계산 장치는 차분기관이다. 차분기관은 근사 다항식을 유한 차분법을 통해 계산하여 로그와 삼각 함수를 표로 만드는 특수 목적용 계산기이다. 차분기관 프로젝트가 개인적 및 정치적 이유로 주춤하게 되었을 때 그는 설계를 좀 더 범용적으로 할 수 있다는 것을 깨달아 해석기관의 설계를 시작하였다. 증기기관을 동력으로 사용하며 30미터 길이에 10미터 넓이 정도의 크기를 가졌다. 프로그램과 데이터를 천공 카드로 입력받았고 프린터와 곡선 플로터, 종으로 출력했다. 또한 확인을 위해 천공카드 입력기를 장착할 예정이었다. 숫자는 고정 소수점을 갖는 10진수를 사용하였다. 50자리의 숫자 1000개를 저장할 수 있는 저장소(store)가 있으며, 산술 논리 장치(mil)는 사칙 연산과 비교 연산, 그리고 선택적으로 제곱근 계산 기능을 제공하였다. 초기에는 차분기관의 출력이 다시 입력되는 순환적인 구조에 한쪽에 긴 저장소가 있는 형태로 생각되었으나,url-status=dead 나중에 그려진 그림에서는 격자 형태로 조정되었다.(영어) 연산 기관 - 배비지 페이지 현대 컴퓨터의 중앙 처리 장치(CPU)와 마찬가지로 산술 논리 장치도 그것의 내부 프로시저에 의존하였는데, 이것들은 "배럴(barrels)"이라 불리는 회전하는 드럼에 삽입되는 말뚝 형태로 저장되었다. 이 프로시저들은 사용자 프로그램이 지정하는 좀 더 복잡한 명령어들을 실행할 수 있도록 하였다.(영어) 차분기관 - 팀 로빈슨의 메카노(Meccano) 연산 기계 웹사이트 (현대 컴퓨터에서 마이크로코드에 해당한다.) 현대의 어셈블리어와 유사한 프로그래밍 언어가 사용되었다. 반복문과 조건문이 존재하며, 따라서 앨런 튜링이 개념을 잡기 훨씬 이전에 이미 튜링 완전했던 것으로 여겨진다. 세 종류의 천공 카드가 사용되었는데, 각각 수학 연산을 위한 카드, 숫자 상수를 위한 카드, 그리고 숫자를 수학 연산 단위로 전달하거나 이를 다시 전달받는데 사용되는 카드이다. 이 3종류의 카드를 읽기 위해 3종류의 카드 리더기가 존재했다. 이탈리아를 여행 중이던 배비지를 만난 이탈리아의 수학자 루이기 메나브레아(Luigi Menabrea)는 1842년에 해석기관에 대한 설명을 프랑스어로 작성하였다. 이 설명은 이미 10년 전부터 해석기관에 관심을 갖고 있었던 에이다 킹, 러브레이스 백작부인이 1843년에 영어로 번역하면서 베르누이 수를 계산하는 방법을 포함한 광범위한 주석이 추가되었다. 메나브레아의 설명에 대한 그녀의 주석을 통해서 그녀는 최초의 컴퓨터 프로그래머로 불린다. 에이다 프로그래밍 언어는 그녀를 기리기 위해 지어진 이름이다.
# 일부 제작
배비지는 그의 인생 말년에 단순화한 해석기관을 만드는 방법을 찾았다. 그리고 1871년 그가 죽기 전까지 그와 관련된 작은 부품들을 모았다. 그러나 1878년 영국과학진흥협회의 한 위원회는 해석기관의 제작을 중단할 것을 권고하였다. 이는 정부 기금을 위해 배비지의 노력을 좌절시킨 것이었다. 1910년 배비지의 아들 헨리 P 배비지(Henry P. Babbage)는 산술 논리 장치와 인쇄 장치의 일부를 제작하여 원주율의 배수 목록을 계산하는 데 사용했다고 보고했다. 이것은 전체 기관 중 일부만을 구성한 것으로, 프로그래밍이 가능하지 않았고 저장소도 없었다. 헨리는 또한 매우 작은 저장 능력을 가지는 시연을 위한 해석기관을 만들 것을 제안하였다: "아마도 첫 번째 기계는 각각 25개의 바퀴가 있는 20개의 컬럼을 가질 것이다."(영어) 해석기관 - 헨리 P 배비지, 1888년 이 기관은 25자리의 숫자 20개를 처리할 수 있었다. 숫자 처리의 규모에 대해 1888년 헨리 배비지는 "이것은 단지 카드와 시간의 문제일 뿐, 수학 계산을 위해 필요하다면 해석기관에 2만개의 카드도 사용하지 못할 이유가 없다."라고 적었다.
# 영향
해석기관은 그 후 세 가지 예외를 제외하고는 거의 잊혀졌다. 1915년 퍼시 러드게이트(Percy Ludgate)는 해석기관에 대한 글을 썼으며, 심지어는 자기 자신만의 해석기관을 설계하기도 했다. 그것은 상세히 그려졌지만 제작되지는 않았다. 러드게이트의 해석기관은 배비지의 것보다 약 8 세제곱 피트 더 작았고, 가정대로라면 두 개의 20자리 숫자를 약 6초 안에 곱할 수 있었다. 레오나르도 토레스 쿠에베도(Leonardo Torres Quevedo)와 배니버 부시도 또한 배비지의 작업을 알고 있었다. 그러나 이들 3명의 발명가들은 서로에 대해 알지 못했다. 해석기관에 대한 배비지의 작업과 밀접하게 관련된 것은 제2차 세계 대전 직전에 시작된 뉴욕 벨 연구소의 조지 스티비츠(George Stibitz)의 작업과 제2차 세계 대전 중에 시작된 하버드 대학교의 하워드 에이컨의 작업이다. 그들은 둘 다 해석기관과 밀접하게 관련된 전기기계식(즉 중계하고 교환하는) 컴퓨터를 만들었지만, 프로그램이 가능한 현대적인 컴퓨터는 아니었다. 에이컨의 기계는 IBM의 재정지원을 받았으며, 하버드 마크 I이라 불렸다. 1930년대에 에이컨은 헨리 배비지가 1886년에 하버드 대학에 맡긴 해석기관의 부품을 발견하고 이에 영감을 받았다. 그는 배비지의 글에 대한 접근권을 얻었고, 후에 배비지의 책을 가리키면서 다음과 같이 주장했다.(영어) In the Beginning - The Old Computer Hut(영어) 배비지와 에이컨 - IEEE Annals of the History of Computing, Volume 10 , Issue 3 (July 1988) : 여기에 컴퓨터에 대한 나의 교육이 담겨있다. 바로 여기에. 이것은 모든 것이다. 그것은 내가 책에서 얻은 모든 것이다. : There's my education in computers, right there; this is the whole thing, everything I took out of a book. 분자나노기술에서는 초창기에 미끄러지는 막대와 뭉뚝한 돌출(stubby protrusion)로 구성된 논리 회로를 사용하여 조건에 따라 움직임을 제한하는 극도로 작고 빠른 컴퓨터의 구현 방법이 제안되었다.www.npl.washington.edu 배비지의 설계에서는 이와 비슷한 계산용 "막대 논리(rod-logic)"가 마이크로프로그램을 접근하기 위한 미끄러지는 제어 레버와 못박혀진 베럴 장치에 존재했다. 다음은 배비지의 자서전에서 발췌한 문장이다. : 해석기관이 탄생된 그 즉시, 반드시 앞으로의 과학 코스를 가이드할 것이다. : 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초 아래로 실행할 수 있다.