The Author's Voice
Donald Knuth: A life's work in the art of programming interviews legendary computer scientist Donald Knuth as the first volume of his classic work, The Art of Computer Programming, appears in a major new edition.

Tom Mace, Your four-volume series, The Art of Computer Programming, has been a classic of computer science literature for 25 years. We'd like to congratulate you on the publication of The Art of Computer Programming: Volume 1, Fundamental Algorithms, the first volume in a complete new edition of this work. What's new in this release? What differences will programmers find between this copy and the copies they've thumbed and studied for years?

Donald Knuth: You won't find dramatic differences--the revisions were more a matter of refinement than radical revision. But I'd say that the book is better in every way. After 25 years of not having changed the old edition, I've tried to give the new one the perspective of maturity while keeping some of my more youthful exuberance. If you compare random pages from the old edition to the new, you'll probably find two to three dozen things on each page that make the new one nicer. You'll also find hundreds of additional exercises and you'll discover that the answers to the exercises are better. What will someone new to your work find in this revised copy and how can it change their approach to programming?

Knuth: This is a book for those who take programming seriously, the one person in 50 who has this strange way of thinking that makes a programmer. Volume 1 is the introduction to the whole series. It sets the scene, defines algorithms, gives the basis of data structures, and explains the basic mathematical techniques and paradigms that you use in the rest of the work. Then I present a hypothetical computer, MIX, whose capabilities are used to ground the whole thing in reality. I also bring in the history of basic programming techniques and the approach to representing data--how we take things from the outside world and deal with them inside the computer. There many ways to organize data in the machine, and all the basic methods for this are covered with lots of examples. My book also gives the little tricks that people have invented over the years, which I've tried to present in a way that's as jargon-free as possible. It's not easy to read my book but it's a lot easier than many others written by specialists. If I describe something in mathematics, for example, I try not to use terminology that only math graduate students can understand. Most of the literature is impenetrable to someone who hasn't had advanced training so I've tried to boil down the concepts to where they're as simple as they can be. Can you talk about your working methods and how you approached the revision?

Knuth: I've been accumulating corrections and emendations in my own personal copies of the books for 25 years, and people have written to me and said, "Don, do you know that there's a typo on page such and such?" I always knew about these mistakes and I wasn't happy to see thousands of copies printed every year having these mistakes in them. But I also knew that correcting them was a lot of work, as there are many, many cross-references. And my biggest project was to work on the volumes that haven't yet been finished. So, my original plan was simply to make an errata list for volumes 1, 2, and 3 that I could put up on the Web. I created a big database of corrections--there were quite a lot, about 200 pages for each volume--and posted them. When I showed this list of changes to a meeting of the TeX user group [TeX is a computer typesetting system developed by Mr. Knuth. Ed.], one of the guys in the audience volunteered for the hard work of putting the revisions in electronic form. He wound up creating many megabytes of data from which to generate the book. All I needed to do was double-check the corrections. All in all, several volunteers spent a couple of years of their lives doing the detail work and getting the revisions ready. In January of this year, I received volumes 1, 2, and 3 in electronic form, and used them to generate 2,000 laser-printed pages incorporating my hundreds of pages of errata, which looked something like The Art of Computer Programming. When a book exists as a computer file, you have a different feeling about it because you know it's something that you can easily improve. This is my life's work after all--I've spent 35 years on it--and I saw many, many places where I could make it better. So I spent the last seven months making this book into something special. Of course, I'm not unbiased, but in my humble opinion, I've gotten close to something that I can be really proud of. It's a much better book than I would have dared to attempt with the old method of correcting galleys by hand. How is your work coming on the remaining volumes?

Knuth: At the beginning of the year, I thought that I'd have the first three ready by now, but as we speak, I'm getting well along with the significant changes to Volume 2, Seminumerical Algorithms, and it should only be another three months for Volume 3, Sorting and Searching. Has the programmer's art remain fundamentally unchanged over the past 25 years?

Knuth: It's changed in several ways but the basic things like subroutines and techniques of representing data in certain ways will last. I'm trying to capture things now that will be important 50 years from now as they are today. I want to distill them out, explain them as well as possible, and give people something that is permanent. What do you see as the most interesting advance in programming since you published the first edition?

Knuth: It's what I call literate programming, a technique for writing, documenting, and maintaining programs using a high-level language combined with a written language like English. This is discussed in my book Literate Programming. Have there been any big wrong turns in computing in the last 25 years? Do you regret any of the directions that it has taken as a lost opportunity?

Knuth: The thing that I regret most is that people are trying to patent algorithms. This means that it is becoming impossible to write software unless you're a big company. This climate is going to stifle progress. If such attitudes had existed back then, I would never have been able to write this book. Thank you very much for your time.

Related Items

The Art of Computer Programming: Fundamental Algorithms
by Donald Ervin Knuth

Our Price: $49.95

Where's My Stuff?
• Track your recent orders.
• View or change your orders in Your Account.
Shipping & Returns
• See our shipping rates & policies.
Return an item (here's our Returns Policy).
Need Help?
• Forgot your password? Click here.
Redeem or buy a gift certificate.
Visit our Help department.
Search    for     
Text Only Top of Page
Book Search  | Browse Subjects  | Bestsellers  | New and Future Releases  | Bargain Book Outlet

e-Books | Rare and Used Home  |   Directory of All Stores

Our International Sites: United Kingdom   |   Germany   |   Japan   |   France

Help  |   Shopping Cart  |   Your Account  |   Sell Items  |   1-Click Settings

About  |   Join Our Staff

Powered with HP
Conditions of Use | Privacy Notice © 1996-2001,, Inc. or its affiliates