kb/data/en.wikipedia.org/wiki/The_Art_of_Computer_Programming-1.md

7.1 KiB
Raw Blame History

title chunk source category tags date_saved instance
The Art of Computer Programming 2/3 https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming reference science, encyclopedia 2026-05-05T08:35:49.830398+00:00 kb-cron

== Assembly language in the book == All examples in the books use a hypothetical language called "MIX assembly language" (MIXAL), which runs on "a mythical computer called 'MIX,'" which was developed to be contemporaneous with other 1960s and 1970s computers. Despite Knuth's intention to have MIX stand the test of time, he remarked in the third edition of the first volume that it had nonetheless become "quite obsolete." During the 1990s, Knuth began developing MMIX, a modern, RISC-based computer, which Knuth described as "A RISC computer for the new millennium." The conversion from MIX to MMIX was a large, multi-year project, for which Knuth solicited help from volunteers. MMIX would reach its stable release in 2011. Knuth considers the use of assembly language necessary for the speed and memory usage of algorithms to be judged. Regarding the origin of MIX, Knuth remarked it was much like any computer then in existence, "but, perhaps, nicer." The name MIX can be represented as 1009 in Roman numerals. Further, Knuth explains the derivation of 1009 came from taking sixteen actual computers he deemed similar to MIX and on which MIX was easily simulated. He averaged the numeric portions of their model numbers with equal weight: ⌊(360 + 650 + 709 + 7070 + U3 + SS80 + 1107 + 1604 + G20 + B220 + S2000 + 920 + 601 + H800 + PDP-4 + II) / 16⌋ = 1009 Software such as the GNU MIX Development Kit (MDK) exists to provide emulation of the MIX architecture.

== Critical response == Knuth was awarded the 1974 Turing Award "for his major contributions to the analysis of algorithms […], and in particular for his contributions to the 'art of computer programming' through his well-known books in a continuous series by this title." American Scientist has included this work among "100 or so Books that shaped a Century of Science", referring to the twentieth century. Covers of the third edition of Volume 1 quote Bill Gates as saying, "If you think you're a really good programmer… read (Knuth's) Art of Computer Programming… You should definitely send me a résumé if you can read the whole thing." The New York Times referred to it as "the profession's defining treatise".

== Volumes ==

=== Completed === Volume 1 Fundamental algorithms Chapter 1 Basic concepts Chapter 2 Information structures Volume 2 Seminumerical algorithms Chapter 3 Random numbers Chapter 4 Arithmetic Volume 3 Sorting and searching Chapter 5 Sorting Chapter 6 Searching Volume 4A Combinatorial algorithms Chapter 7 Combinatorial searching (part 1) Volume 4B Combinatorial algorithms Chapter 7 Combinatorial searching (part 2)

=== Planned === Volume 4C, 4D, ... Combinatorial algorithms (chapters 7 & 8 released in several subvolumes) Chapter 7 Combinatorial searching (continued) Chapter 8 Recursion Volume 5 Syntactic algorithms Chapter 9 Lexical scanning (also includes string search and data compression) Chapter 10 Parsing techniques Volume 6 The Theory of context-free languages Chapter 11 Mathematical linguistics Volume 7 Compiler techniques Chapter 12 Programming language translation

== English editions ==

=== Current editions === These are the current editions in order by volume number:

The Art of Computer Programming, Volumes 1-4B Boxed Set. (Reading, Massachusetts: Addison-Wesley, 2023), 3904pp. ISBN 978-0-13-793510-9, 0-13-793510-2 Volume 1: Fundamental Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 978-0-201-89683-1, 0-201-89683-4. Errata: [1] (from 2011-01-08), [2] (from 2022, 49th printing). Addenda: [3] (2011). Volume 2: Seminumerical Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. ISBN 978-0-201-89684-8, 0-201-89684-2. Errata: [4] (from 2011-01-08), [5] (from 2022, 45th printing). Addenda: [6] (2011). Volume 3: Sorting and Searching. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. ISBN 978-0-201-89685-5, 0-201-89685-0. Errata: [7] (from 2011-01-08), [8] (from 2022, 45th printing). Addenda: [9] (2011). Volume 4A: Combinatorial Algorithms, Part 1. First Edition (Upper Saddle River, New Jersey: Addison-Wesley, 2011, 26th printing), xv+883pp. ISBN 978-0-201-03804-0, 0-201-03804-8. Errata: [10] (from 2011), [11] (from 2022, 20th printing). Volume 4B: Combinatorial Algorithms, Part 2. First Edition (Upper Saddle River, New Jersey: Addison-Wesley, 2023, 3rd printing), xviii+714pp. ISBN 978-0-201-03806-4, 0-201-03806-4. Errata: [12] (from 2023, 1st printing). Volume 1, Fascicle 1: MMIX A RISC Computer for the New Millennium. (Addison-Wesley, 2005-02-14), 144pp. ISBN 0-201-85392-2. Errata: [13] (from 2005, 1st printing) (will be in the fourth edition of volume 1) The MMIX Supplement by Martin Ruckert. (Addison-Wesley), 193pp. ISBN 0-13-399231-4. A conversion of the MIX problems/programs in volumes 1, 2 & 3 to MMIX. Volume 4, Fascicle 7: Constraint Satisfaction. (Addison-Wesley, 2025-02-05), xiv+281pp. ISBN 978-0-13-532824-8. Errata: [14] (2025-12-28).

=== Previous editions ===

==== Complete volumes ==== These volumes were superseded by newer editions and are in order by date.

Volume 1: Fundamental Algorithms. First edition, 1968, xxi+634pp, ISBN 0-201-03801-3. Volume 2: Seminumerical Algorithms. First edition, 1969, xi+624pp, ISBN 0-201-03802-1. Volume 3: Sorting and Searching. First edition, 1973, xi+723pp+foldout, ISBN 0-201-03803-X. Errata: [15]. Volume 1: Fundamental Algorithms. Second edition, 1973, xxi+634pp, ISBN 0-201-03809-9. Errata: [16]. Volume 2: Seminumerical Algorithms. Second edition, 1981, xiii+ 688pp, ISBN 0-201-03822-6. Errata: [17]. The Art of Computer Programming, Volumes 1-3 Boxed Set. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), pp. ISBN 978-0-201-48541-7, 0-201-48541-9 The Art of Computer Programming, Volumes 1-4A Boxed Set. Third Edition (Reading, Massachusetts: Addison-Wesley, 2011), 3168pp. ISBN 978-0-321-75104-1, 0-321-75104-3

==== Fascicles ==== Volume 4, Fascicles 04 were revised and published as Volume 4A.

Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions. (Addison-Wesley Professional, 2008-04-28) vi+240pp, ISBN 0-321-53496-4. Errata: [18] (2011-01-01). Volume 4, Fascicle 1: Bitwise Tricks & Techniques; Binary Decision Diagrams. (Addison-Wesley Professional, 2009-03-27) viii+260pp, ISBN 0-321-58050-8. Errata: [19] (2011-01-01). Volume 4, Fascicle 2: Generating All Tuples and Permutations. (Addison-Wesley, 2005-02-14) v+127pp, ISBN 0-201-85393-0. Errata: [20] (2011-01-01). Volume 4, Fascicle 3: Generating All Combinations and Partitions. (Addison-Wesley, 2005-07-26) vi+150pp, ISBN 0-201-85394-9. Errata: [21] (2011-01-01). Volume 4, Fascicle 4: Generating All Trees; History of Combinatorial Generation. (Addison-Wesley, 2006-02-06) vi+120pp, ISBN 0-321-33570-8. Errata: [22] (2011-01-01). Volume 4, Fascicles 56 were revised and published as Volume 4B.