튜링상 관련 업적
컴퓨터 프로그래밍의 아름다운 세계
모르는 사람은 없으나 막상 읽어 본 사람이 드문 책들이 종종 있다. <컴퓨터 프로그래밍의 아름다운 세계>도 그런 책 중 하나가 아닐까 싶다. 원제는 <The Art of Computer Programming4>인데 한국의 공식 번역판 제목은 <컴퓨터 프로그래밍의 예술>이다. 하지만 인터넷 검색을 하다 보면 <컴퓨터 프로그래밍의 기술>이라고 소개하는 경우도 많이 찾을 수 있다. 그런데 굳이 이 글에서는 ‘기술’도 아니고 ‘예술’도 아닌, ‘아름다운 세계’라고 주장하는 데는 이유가 있다. 커누스의 튜링상 수상 강연 때문이다.
그의 튜링상 수상 강연은 전체가 이 ‘Art’를 설명하는 데 있다고 해도 과언이 아니다. 책 제목에 Art를 붙인 것은 그 혼자의 결정이 아님을, 앞서 기술한 일화에서 알 수 있다. 튜링상 수상 강연을 보면 출판사에서 그에게 책 제목을 정해달라고 요청한 때가 1966년이었다고 한다. 아무튼 이 책이 너무 유명해지고 심지어는 덕분에 튜링상을 받아서 강연까지 하게 되자 커누스는 도서관에 가서 ‘Art’라는 단어가 사용된 사례를 조사하게 되었고 이 단어가 상당히 흥미로운 단어임을 알게 되었다고 고백하고 있다.†† 그러면서 Art의 어원부터 시작해서 시대적 변천사를 쭉 훑어본 후에 다음과 같이 자신이 사용한 의도를 밝혔다.
내가 컴퓨터 프로그래밍을 ‘Art’라고 부를 때는 심미적인 측면을 생각하고 말하는 것이다. 교육자이자 작가로서 내 업무의 주된 목표는 사람들에게 어떻게 하면 “아름다운 프로그램”을 작성할지 가르쳐주는 것이다.1
따라서, 커누스가 컴퓨터 프로그래밍에 ‘Art’라는 표현을 사용했을 때는 심미적인 측면을 강조하고 있다고 보아야 맞다. 아울러 그 책이 다양한 알고리듬들을 소개하고 비교한다는 점에서 <컴퓨터 프로그래밍의 아름다운 세계>가 더 적절하지 않나 생각된다.
<컴퓨터 프로그래밍의 아름다운 세계> 제1권은 알고리듬 분석을 위한 기본 지식을 소개하고 있다. 알고리듬을 표현하기 위한 방법으로 그가 만든 프로그래밍 언어, MMIX를 소개하고 있고, 알고리듬의 성능을 모델링하고 분석하기 위해 필요한 다양한 수학적 표현과 의미를 설명하고 있다. 아울러 정보를 컴퓨터 프로그램으로 구현하는 방법들도 포함하고 있다.
제2권은 준수치적 알고리듬들을 소개하고 있다. 난수random number를 만들어내는 방법, 산술 계산을 구현하는 법 등이 포함되어 있다.
제3권은 정렬과 검색에 관한 알고리듬들이다. 제4권 1부와 2부는 조합론과 관련된 알고리듬들이 포함되어 있다.
원래 이 책의 시작이 컴파일러를 소개하기 위함이었음을 떠올린다면 지금까지 출간된 내용은 컴파일러의 ‘컴’자도 시작하지 못했다고 보아도 무방하겠다. 제5권에서부터 어휘 분석과 파싱parsing이 시작되며 제6권에는 문맥 자유 언어Context-free language, 제7권에는 컴파일러 기법이 포함될 예정이었다. 이미 고령인 그의 나이를 생각한다면 제5권부터 제7권까지 출간이 될 수 있을지는 미지수이다.