컴퓨터 과학자로서의 삶
도널드 어빈 커누스(Donald Ervin Knuth)는 1938년 1월 10일에 미국 위스콘신주 밀워키에서 태어났다. 그의 부친은 작은 인쇄소를 운영했다고 하는데, 커누스가 후에 전자출판에 관심을 가지게 된 것이 우연은 아닌 듯싶다. 아울러 그의 부친은 교회의 오르간 연주자로 활동했고, 커누스도 음악에 큰 관심을 보였다. 그래서 대학에 진학할 때 물리 전공과 음악 전공 사이에서 고민을 할 정도였다고 한다.2
그는 어려서부터 총명함을 보였지만 오히려 그의 부모는 그에게 일찍 글을 가르치지 않았다. 왜냐하면 미리 글을 익히면 학교에 들어가서 지루해한다는 주변의 조언 때문이었다. 그렇지만 책 읽기를 너무 좋아해서 세 살이 되기 전에 밀워키 공립도서관의 “책벌레 클럽” 최연소 회원이 되었다. 심지어는 혼자 도서관에 가서 책을 읽다가 문이 닫히는 줄도 모르고 있었고, 불이 꺼지자 창문가에 앉아서 계속 책을 읽었다고 한다. 결국 부모가 그를 찾아 나섰고 도서관에서 책 속에 파묻힌 그를 발견했다.
중학교 2학년 때 지역 TV 방송국에서 진행한 경연대회에서 수상한 일화도 유명하다. 후원사의 브랜드 이름인 Zeigler’s Giant Bar에 들어 있는 알파벳을 사용해서 최대한 많은 단어를 만드는 사람에게 상을 주는 대회였다. 커누스는 약 4,500개의 단어를 찾아냈는데 당시 주최 측에서 만들어 놓은 단어는 2,500개였다고 한다. 우승 상품은 우승자의 교실에 있는 학생들에게 모두 나눠줄 정도로 많은 양의 사탕(캔디바)이었다.
물리와 음악 중 어느 것을 전공할지 고민하던 그는 클리블랜드에 있는 케이스 공과 대학Case Institute of Technology에서 물리 전공 장학금을 제안받으면서 비로소 결정을 내릴 수 있었다. 하지만 막상 대학에 입학한 후에 그는 물리를 싫어하게 된다.
2학년이 되면 물리 전공자는 용접 수업을 필수로 들어야 했습니다. 나는 용접을 도저히 할 수가 없었습니다. 너무 무서웠습니다. 그래서 나는 물리학자가 되기는 어려울 것 같다고 생각했습니다… 하지만 수학이 있었습니다! 2학년 수학 수업 중에는 오늘날 이산 수학이라고 부르는 내용이 있었습니다. 논리와 정수에 관해 배웠죠. 나는 그것에 완전히 빠져들었습니다.2
그가 입학한 1956년에 케이스 공과 대학에는 주목할만한 변화가 있었다. 최초의 상업용 컴퓨터라고 할 수 있는 IBM 650이 캠퍼스에 설치된 것이다. 커누스는 IBM 650의 사용설명서를 보고 단박에 빠져들고 말았다. 그는 사용설명서만 보고 프로그램을 작성해보기 시작했다.
대학의 남학생 사교클럽에 같이 있던 동기 한 명이 5차 방정식의 답을 구하는 숙제를 하기 싫어 죽으려 했습니다. 내가 책을 몇 권 뒤져보니까 그걸 푸는 방법이 나와 있더라구요. 그래서 Bell Interpretive Language를 사용해서 프로그램을 작성했습니다. 내 기억으로는 한 번에 동작했던 것 같습니다… 그것이 내 인생의 첫 프로그램이었습니다.2
컴퓨터가 너무 재미있었던 그는 케이스 컴퓨팅 센터Case Computing Center의 직원이 되었다. 케이스 공과 대학은 당시 아주 귀한 기계였던 컴퓨터를 학부생들도 사용할 수 있도록 허용한 몇 안 되는 대학 중 하나였다고 한다. 그래서 심지어 컴퓨팅 센터에서는 전문 인력이 아닌 일반 학생들을 고용하기도 했다.
대학에서는 재학생을 고용해서 컴퓨터를 운영하고 각종 관련 업무를 처리했습니다. 열 몇 명 정도가 거기서 같이 일했는데 시간이 한참 지나고 나서 보니 모두들 컴퓨팅 산업에서 꽤 좋은 기여를 해왔더군요. 아무튼 그 당시에 나는 그 친구들에게 IT 컴파일러가 어떻게 동작하는지를 설명해줬고 그다음 해에 우리는 IT 컴파일러를 크게 개선해서 발표했습니다. 우리는 그것에게 RUNCIBLE이라는 이름을 붙여줬습니다.2
IT 컴파일러는 당시 카네기 기술 대학Canegie Institute of Technology의 펄리스 교수§가 만들어서 공개한 컴파일러로 최초의 컴파일러로 간주된다. 학부생이었던 커누스는 이 컴파일러를 이해만 한 것이 아니라 개선하기까지 한 셈인데, 컴파일러 전문가의 길을 이때부터 시작한 셈이다. 케이스 기술 대학 측은 커누스에게 RUNCIBLE의 사용설명서를 만들어달라고 부탁했다. 또한 커누스는 RUNCIBLE을 소개하는 논문을 작성해서 미국 컴퓨터 학회지Communications of the ACM에 실었다.
커누스가 4학년이 되었을 때 톰슨 라모 울드리지 사(현재의 TRW)가 그에게 컴파일러 제작을 의뢰했다. 당시 주요 컴퓨터 제조업체 중 하나였던 버로우즈Burroughs는 IBM 650에 대항하기 위해 205라는 모델을 준비 중이었는데 이 컴퓨터에서 사용할 컴파일러가 필요했다. 이를 알게 된 톰슨 라모 울드리지 사는 커누스에게 알골ALGOL 컴파일러를 만들어 줄 수 있는지 의향을 물었다.
4학년 초에 그들이 저에게 연락을 해왔습니다. “돈(커누스의 애칭), 우리가 버로우즈에 제안서를 내서 알골 컴파일러를 개발해주겠다고 할 생각인데 우리가 계약을 따내면 컴파일러를 만들어 주겠니?” 그들은 나에게 5,000불 정도를 주겠다고 했는데 내 생각에는 그들이 버로우즈에 제안한 액수는 75,000불 정도 되었을 것 같았습니다. 아무튼 버로우즈는 그 제안을 거절했습니다. 그런데 그사이에 나는 205 모델의 명령어를 좀 들여다봤는데 끌리더라구요. 그래서 버로우즈에 직접 제안을 했습니다. 5,000불에 알골 컴파일러를 만들어주겠다구요. 단, 조건이 있었습니다. 알골 전체를 다 커버할 수는 없다고 했죠. 나 혼자서는 불가능하다고 보았으니까요. 프로시져, 즉 서브루틴 부분은 구현하지 않겠다고 했습니다. 음.. 사실 그건 큰 구멍을 남기는 셈이었지요. 그러자 버로우즈 측의 반응은, “오, 그건 안 돼요. 프로시져는 꼭 처리해야 합니다.” 그래서 나는, “오케이. 프로시져를 포함할게요. 하지만 대신에 5,500불은 받아야겠습니다”라고 답했습니다.2
이제 학부를 졸업하는 커누스는 그렇게 해서 알골 컴파일러를 혼자 만들게 되었다. 컴퓨팅 센터에서 일하고, 졸업 논문도 써야 하고, 학교 잡지 편집일도 하면서, 틈틈이 밴드부에서 연주도 하던 그에게 컴파일러를 만들 시간을 내기란 쉽지 않았을 것이다. 그래서 그는 케이스 기술 대학을 졸업한 후 대학원인 캘리포니아 공과 대학Caltech으로 이동하는 동안 컴파일러를 작성하기 시작했다. 미국 동부에서 서부까지 차로 이동하면서 그는 하루에 100마일(160킬로미터)씩 운전했고, 모텔에 머무르는 동안 컴파일러 코드를 작성했다. 그가 코드를 완성한 것은 그 해 크리스마스가 다 되어서였다고 한다.2
한편, 커누스는 케이스 공과 대학을 학사이면서 석사로 졸업했다. 그의 뛰어난 실력에 감탄한 학과 교수들이 특별히 석사 학위도 수여했기 때문이었다. 그는 조합론combinatorics에 큰 관심을 가졌고 그래서 그 분야에서 가장 앞서 있다고 알려진 캘리포니아 공과 대학으로 진학했다.
캘리포니아 공과 대학에서 박사과정으로 있으면서 그는 알골 컴파일러 개발로 인연을 맺은 버로우즈와는 기술 자문 일을 계속 유지했다. 아울러 컴파일러와 관련된 논문을 발표하고 커뮤니티 활동도 활발히 참여했다. 그의 실력이 널리 알려지면서 그를 찾는 회사들이 늘어났고, 심지어는 커누스가 원하는 액수를 무조건 들어주겠다는 곳까지 나타날 정도였다고 한다.
“돈, 우리를 위해 컴파일러를 만들어 준다면 작업을 위한 컴퓨터도 구해주고 조수도 붙여주겠습니다. 원하는 액수를 말해봐요.” 그래서 나는 “오, 좋아요. 10만 불이요”라고 말했습니다. 그 정도 액수면 오늘날 빌 게이츠의 재산 정도 되는 건데 나는 불가능한 숫자라고 생각했습니다. 그런데 그 남자는 눈도 깜빡이지 않고 “좋아요”라고 답하더군요. 그래서 나도 지지 않고 말했습니다. “이봐요. 나는 그 일을 할 생각이 없습니다. 그냥 불가능한 액수라고 생각하고 말한 겁니다.” 그 순간 나는 결심했습니다. 돈 버는 일에 맞춰 살지 않겠다고 말이죠.2
때마침 그의 인생관을 충족시켜 줄 제안이 들어왔다. 출판사인 애디슨-웨슬리Addison-Wesley에서 컴파일러에 관한 책을 써달라고 요청한 것이다. 박사 2년 차에 접어들었던 커누스는 신혼 4개월째의 꿀물 같은 생활을 보내고 있었다. 그는 애디슨-웨슬리의 제안이 너무 반가웠고 바로 그날 12개의 장으로 이루어진 전반적인 구성안을 작성했다. 이때가 1962년 1월이었고, 이렇게해서 <컴퓨터 프로그래밍의 아름다운 세계The Art of Computer Programming>가 시작되었다.
1962년에는 그 분야에 관한 믿을 만한 지침서가 없었습니다. 관련된 논문지들을 거의 대부분 읽어온 이는 내가 유일하다는 걸 알고 있었습니다. 그리고 나는 글쓰기를 좋아했습니다. 그래서 생각했죠. 그 중요한 발견들을 직접 했던 사람들보다 내가 더 균형 잡힌 설명을 할 수 있으리라구요.3
이렇게 해서 시작된 <컴퓨터 프로그래밍의 아름다운 세계>는 1권이 나오는 데 6년이 걸린다. 다행히 애디슨-웨슬리 출판사는 이 일이 빠르게 진행되지 않으리라는 걸 알았고 커누스에게 넉넉한 시간을 주었다. 그래서 커누스는 책을 위한 자료를 수집하는 작업을 하면서 동시에 개인적인 관심사를 추구할 수 있는 여유를 가질 수 있었다. 1962년 여름에 그는 석 달 만에 포트란 컴파일러를 만들었다. 이 일로 그가 받은 액수는 15,000불이었는데 당시 조교수의 연봉보다 많았다고 한다.
포트란 컴파일러를 만드는 과정에서 그는 흥미로운 주제를 접하게 된다. 선형 프로빙Linear probing이라는 처리 방식(알고리듬)이었는데 이 방식이 얼마나 빨리 수행될 수 있는지를 따져보는 과정에서 수학적 방법론을 도입하게 되었고 이는 ‘알고리듬 분석analysis of algorithms‘이라는 연구 분야의 시작이 되었다. 그리고 커누스는, 다양한 알고리듬의 수학적 분석을 그가 쓸 책의 기본 틀로 삼게 된다.
나는 애디슨-웨슬리를 찾아갔습니다. 그리고 말했죠. “책의 제목을 ‘컴퓨터 프로그래밍의 아름다운 세계’에서 ‘알고리듬 분석’으로 바꾸는 게 어떨까요?” 그러자 그들은 손을 내저으며 말했습니다. “그러면 안 팔려요. 우리가 목표로 잡고 있는 독자들은 (그런 제목의) 책을 사지 않을 겁니다.” 출판사가 처음 제목을 계속 고집해줘서 지금도 기쁘게 생각합니다.2
12장으로 구성된 <컴퓨터 프로그래밍의 아름다운 세계> 초고는 1965년에 완성되었다. 너무 양이 방대해지자 출판사 측은 7권으로 나누어 출간하기로 결정했다. 알고리듬의 기본을 담은 1권4은 1968년에, 준수치적seminumerical 알고리듬을 담은 2권은 1969년에, 정렬과 검색 관련 알고리듬을 담은 3권은 1973년에 각각 출간되었고, 조합적 알고리듬을 담은 4권은 계획된 1, 2, 3부 중에서 1부가 2011년에, 2부는 2022년에 출간된 상태이다. 4권 3부에서부터 7권까지는 아직 정식 발표되지 않았다.
1967년에 위궤양으로 병원에 입원할 정도로 자신을 혹사했던 그는 이후 다른 일들은 많이 정리했지만 <컴퓨터 프로그래밍의 아름다운 세계> 작업만은 정열적으로 계속했다. 그러던 그가 4권에서 갑자기 멈춘 이유는 크게 두 가지이다. 하나는 4권의 주제인 조합적 알고리듬 분야에서 1970년대에 활발한 연구가 진행되었기 때문이다. 연구 결과들을 정리해야 하는 입장에서는 시간을 두고 지켜봐야 할 필요성이 있었다. 그렇다고 하더라도 3권에서 4권 사이의 공백이 30년이 넘어간 점은 의아할 수 있다. 이 공백의 가장 큰 이유는 커누스의 위대한 두 번째 업적인 전자출판시스템 때문이었다. 그는 최초의 제대로 된 전자출판시스템이라고 할 수 있는 TeX¶을 직접 혼자 개발했고, 이 시스템에서 사용하기 위한 폰트 시스템인 METAFONT도 직접 혼자 개발했다.
일단, 그의 박사 과정부터 정리해보자. 1963년에 그는 박사학위를 받았다. 여기도 재미있는 일화가 있다. 원래 그의 박사학위 주제는 블록 설계block design에 관한 것이었다. 그는 특정한 조건을 가진 블록 설계의 사례를 추가로 찾아야만 했다. 그런데 어느 날 우연히 다른 대학의 연구자가 발표한 유한사영기하학Finite Projective Geometry 논문을 보게 된다. 이 논문은 어떤 특정 문제에 대해서 두 가지 유형의 답을 보여주고 있었는데 그는 직관적으로 두 가지 유형 사이의 관계를 알아차렸다. 그래서 한 시간 만에 이 관계를 수학적으로 모델링해냈고 이를 지도교수에게 보여주었다. 그러자 그의 지도교수는 “돈, 이게 자네의 박사학위 논문일세. 블록 설계는 이제 잊어버리게. 당장 이걸로 논문을 쓰고 졸업하게나.”
정말로 잘된 일이었습니다. 왜냐하면 내가 원래 주제로 삼고 있던 그 문제는 그로부터 40년이 넘게 지났지만 딱 한 개를 더 찾아냈을 뿐이랍니다. 만약 그 주제를 그대로 붙잡고 있었다면 아직도 학위를 못 받았을 겁니다. 아무튼 한 시간 만에 풀어낸 문제로 박사 학위를 받는 것은 약간 죄책감이 들어서 박사 논문에 이것저것 덧붙였습니다. (그래도) 전체 논문은 70페이지 정도였습니다.2
박사 학위를 받은 그는 캘리포니아 공과 대학 수학과 조교수로 임용되었고, 수학 분야뿐만 아니라 컴퓨터 과학 분야에서도 활발한 연구 활동을 벌였다. 그리고는 1969년에 스탠퍼드 대학교 컴퓨터 과학과 정교수로 자리를 옮겼다.
1960년대 후반부터 1970년대 초반까지 <컴퓨터 프로그래밍의 아름다운 세계> 1, 2, 3권을 출간한 그는 제4권을 위해 자료를 수집하며 잠시 숨을 돌렸고, 이미 출간된 책의 개정판 작업을 시작했다. 1976년에 <컴퓨터 프로그래밍의 아름다운 세계> 2권 개정판 교정본을 출판사로부터 전달받은 커누스는 깜짝 놀랐다. 인쇄된 책이 너무 볼품없었다. 초판의 인쇄 상태와 너무 달랐다. 그 이유는 인쇄 방식이 달라졌기 때문이었다. 그 이전까지는 전통적인 납 활자를 사용하여 책을 인쇄했지만 사진 식자phototypesetting라는 방식이 새롭게 도입된 것이었다. 그러면서 과거에 사용하던 폰트도 사용하지 못하게 되었고 첨자의 위치라든가 글자 간격 등도 과거와 달라졌는데 커누스의 마음에 너무 안 들었다. 커누스는 출판사에게 개선책을 요청했고 1977년에 수정본을 받았으나 역시 그의 기대에 크게 못 미쳤다.
그런데 1977년 초에 그는 스탠퍼드 대학교의 평가 위원회 활동을 하면서 다음 학기 시험에 사용될 독서 목록을 검토하던 중 어떤 책을 발견하게 된다. 그것은 인공지능에 관한 신간이었는데 내용보다도 인쇄 방식이 눈길을 끌었다. 레이저 프린터를 사용하여 인쇄한 책이었다. 그는 이미 스탠퍼드 인공지능 연구소에서 레이저 프린터를 접한 바가 있었다. 하지만 그 프린터는 인치당 120도트밖에 인쇄하지 못해서 인상적이지 않았다. 그런데 그가 발견한 책은 사용한 프린터의 인치당 도트수가 많아서 일반 활자 인쇄와 구별이 되지 않았다.
커누스는 레이저 프린터를 이용하여 인쇄하는 조판typesetting시스템을 만들기로 마음먹었다. 그는 프로그래밍 방식으로 문서를 조판하고 싶었다. 특히 자신의 비서도 충분히 사용할 수 있는 조판용 프로그래밍 언어이어야 했다. 이미 그런 사례는 있었다. 벨 연구소에서는 EQN이라는 시스템을 문서 조판에 사용했다. 하지만 결과물의 모양은 형편없었다.
프로그래밍 언어 방식의 조판 시스템을 커누스는 과소평가했다. 그는 조판용 프로그래밍 언어인 TeX의 명세서specification를 불과 이틀 만에 작성했는데, 1977년 여름에 중국을 몇 주 방문하게 된 그는 대학원생 두 명에게 이 언어의 구현을 맡겼다.# 그런데 놀랍게도 중국에서 돌아온 그가 마주한 것은 거의 동작하지 않는 프로그램이었다. TeX의 명세서 중 첫 세 줄 정도만 구현되어 있었다.
“어찌 이런 일이… 도대체 어떻게 된 거지? 그 애들은 좋은 학생이라고 생각했는데…”라고 나는 생각했습니다. 그런데 얼마 후에 내 생각은 완전히 바뀌었습니다. “녀석들. 정말 대단한 일을 했구먼!” 왜냐하면 내가 만들어 놓은 명세서만 가지고 일하기란 실제로는 불가능했기 때문이었습니다. 그 학생들은 놀라운 일을 해낸 거였습니다.2
커누스는 직접 TeX 개발에 뛰어들었다. TeX 언어로 작성된 프로그램은 어떤 폰트를 어느 위치에 인쇄해야 하는지 지시하는 역할을 했다. 그렇다면 이 프로그램을 해석해서 레이저 프린터를 조작하는 해석 프로그램이 필요했다. 이 해석 프로그램을 커누스는 직접 만들었다. 이를 위해서는 레이저 프린터 내부의 모터 동작까지 이해해야만 했다.
아름다운 문서를 위해서는 아름다운 폰트도 필요했다. 납 활자나 사진 식자용 폰트를 자동으로 레이저 프린터용으로 변환할 방법은 없었다. 그래서 커누스는 폰트를 정의하는 언어(METAFONT)도 만들었다. 그리고 폰트도 직접 개발했다. 서체 전문가들의 조언을 받아 그가 직접 만든 최초의 TeX용 폰트에는 ‘Computer Modern 체’라는 이름이 붙었다.
TeX와 METAFONT의 첫 버전은 1977년에 발표되었으나 완전한 상태는 아니었다. 1982년에 개선된 버전이 나왔고 1989년에 완성 버전이 나왔다. 참고로 TeX과 METAFONT의 버전 번호는 독특한 규칙을 따르고 있다. TeX의 버전은 파이pi 값을 사용한다. 2022년 5월 기준으로 TeX의 버전은 3.141592653이다. 새로운 버전이 나오면 뒤에 한 자리를 더 표시해서 3.1415926535가 된다.
TeX을 오픈 소스 소프트웨어의 시초로 간주하는 이들도 있다. 그 이유는 커누스가 TeX 언어와 관련된 소스 코드를 모두 공개해서 누구든지 수정해서 사용할 수 있게 했기 때문이다. 하지만 TeX 원본에 대한 수정 권한은 커누스만이 가졌고 다른 이들이 소스 코드를 수정해서 사용할 경우에는 반드시 다른 이름을 붙이도록 권고했다.
TeX은 표기법도 평범하지 않다. 공식적인 표기법은 E가 대문자이며 항상 T와 X보다 살짝 아래로 내려져 있다. 이런 독특한 표기법을 택하게 된 이유는 당시에 TEX이라는 이름의 프로그램이 이미 있었기 때문이라고 한다.5
TeX은 일종의 프로그래밍 언어이다. 문서 조판용으로 만들어졌다는 점에서 차이가 있을 뿐이다. 문법에 맞게 기술하면 컴퓨터가 그것을 해석해서 종이 위의 어느 지점에 잉크를 묻혀야 할지를 결정한다. 커누스는 TeX의 경험을 바탕으로 ‘문학적 프로그래밍literate programming‘이라는 새로운 프로그래밍 방법론을 창시했다. 전통적인 프로그래밍 언어에서 사용하는 문법은 인간의 일상 언어 문법과 매우 다르다. 그래서 프로그램 소스 코드의 의미를 설명하기 위해, 인간이 이해할 수 있는 일반 언어로 종종 주석을 달아놓는다. 커누스는 인간이 이해하기 편한 방식으로 프로그래밍을 할 수 있다고 믿었고 TeX의 경험을 확장하여 WEB이라는 새로운 프로그래밍 언어를 개발했다. 그는 WEB 언어를 사용하여 프로그래밍을 한다면 오류가 줄어들어 개발 시간이 단축되며 타인이 프로그램 소스를 보았을 때 이해하기 쉽다고 믿었다. WEB은 파스칼Pascal 언어에 기반하여 개발되었는데, 후에 C언어에 기반한 CWEB도 만들어졌다. 하지만 인기를 얻는 데는 실패했다. 그 이유에 대해서 커누스는 이렇게 진단했다.
하지만 일반 소프트웨어(프로그래밍 언어)도 보통은 별문제가 없습니다. 내가 점수를 준다면 F까지는 아니고 C(혹은 C++)를 주겠습니다… 대다수 프로그래머들은 이미 전통적인 프로그래밍 방식을 알고 있기 때문에 새로운 방식으로 바꿔야 할 만한 큰 인센티브가 없습니다. 그것은 마치 에스페란토가 영어, 독일어, 불어, 러시아어보다 더 낫다고 하더라도 내가 굳이 그걸 배울 이유가 없는 것과 같죠.6
1993년에 커누스는 은퇴를 선언하면서 평생 직장이었던 스탠퍼드 대학교의 정교수직에서 물러났다. 그가 학생과 강의를 여전히 사랑했음에도 불구하고 굳이 은퇴를 선언한 이유는 평생의 과업이라고 생각한 <컴퓨터 프로그래밍의 아름다운 세계>를 완성하기 위해서였다.
생각해보니까 내가 정말로 하고 싶은 일은 <컴퓨터 프로그래밍의 아름다운 세계>를 집필하는 거였습니다. 그런데 모든 시간을 책 쓰는 데 보내면서 교수 월급을 받아 가는 모습은 싫었습니다. 더 이상 내 자신을 풀타임 교수라고 부를 수 없었습니다.2
총 일곱 권으로 기획되었던 이 책은 1973년에 3권이 나온 후, 20년 동안 진전이 없었다. 중단된 이유 중 하나는 4권이 담고자 했던 조합적 알고리듬이라는 주제와 관련하여 새로운 연구 결과가 쏟아져 나오고 있었기 때문이었다. 커누스는 20년 동안 꾸준히 자료를 수집한 후에 이제 정리할 때라고 판단했다.
조합적 알고리듬에 관련된 자료의 양이 방대했으므로 그는 4권을 1, 2, 3부로 나누기로 했고, 그것마저도 다시 분책 형식으로 쪼개어 공개하는 방식을 선택했다. 2022년 12월 기준으로 4권 2부까지 정식 출간되었고 4권 3부는 몇 개의 분책만 공개된 상태이다.
2002년 12월 현재도 커누스는 집필 작업을 계속하는 것으로 알려진다. 은퇴 후에도 스탠퍼드 대학교에서 일 년에 몇 번씩 특별 강의를 했고 대외 활동도 간혹 참여했으나, 몇 년 전 암 진단을 받았고 고령이어서 최근에는 모습을 드러내는 일이 드물다.