*is a comprehensive monograph written by Donald Knuth which covers many kinds of programming algorithms and their analysis. Knuth began the project, which was originally planned to be one book, in 1962. The first three volumes were published in rapid succession, starting with volume 1 in 1968, volume 2 in 1969, and volume 3 in 1973. The first installment of Volume 4 was published in February 2005. Additional installments are planned approximately twice per year with a break before fascicle 5 to finish the "Selected Papers" series.*

**The Art of Computer Programming****History**

All examples in the books use a language called "MIX assembly language," which runs on the hypothetical MIX computer. (Currently, the MIX computer is being replaced by the MMIX computer, which is a RISC version.) Software such as GNU MDK exists to provide emulation of the MIX architecture.

Some readers are put off by the use of assembly language, but Knuth considers this necessary because algorithms need a context to judge speed and memory usage. It does, however, limit the accessibility of the book to many readers, and limits its usefulness as a "cookbook" for practicing programmers, many of whom are not familiar with assembly, and even if they are, have no particular desire to translate assembly code into a high-level language. A number of more accessible algorithms textbooks using high-level language examples exist and are popular for precisely these reasons.

**Assembly language in the book**

*American Scientist*has included this work among the best twelve physical-science monographs of the twentieth century)

**Critical response**

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 4 - Combinatorial Algorithms, in preparation (three fascicles have been published as of February 2006, and alpha-test versions of additional fascicles are downloadable from Knuth's page below).

- Volume 4A - Enumeration and Backtracking

- Chapter 7 - Combinatorial searching

Volume 4B - Graph and Network Algorithms

- Chapter 7
*continued*

Volume 4C and possibly 4D - Optimization and Recursion

- Chapter 7
*continued*

Chapter 8 - Recursion

Volume 5 - Syntactic Algorithms, planned (as of August 2006,*estimated*in 2015).

- Chapter 9 - Lexical scanning

Chapter 10 - Parsing techniques

Volume 6 - Theory of Context-Free Languages, planned.

Volume 7 - Compiler Techniques, planned.**Chapter outline**

7. - Introduction (82pp)

- 7.1 - Zeros and ones

- 7.1.1 - Boolean basics (88 pp)

7.1.2 - Boolean evaluation (67 pp)

7.1.3 - Bitwise tricks and techniques (122 pp)

7.1.4 - Binary decision diagrams

7.2 - Generating all possibilities

- 7.2.1 - Combinatorial generators (397 pp)

- 7.2.1.1 - Generating all n-tuples - published in Volume 4, Fascicle 2

7.2.1.2 - Generating all permutations - published in Volume 4, Fascicle 2

7.2.1.3 - Generating all combinations - published in Volume 4, Fascicle 3

7.2.1.4 - Generating all partitions - published in Volume 4, Fascicle 3

7.2.1.5 - Generating all set partitions - published in Volume 4, Fascicle 3

7.2.1.6 - Generating all trees - published in Volume 4, Fascicle 4

7.2.1.7 - History and further references - published in Volume 4, Fascicle 4

7.2.2 - Basic backtrack

7.2.3 - Efficient backtracking

7.3 - Shortest paths**Outline of Volume 4A Enumeration and Backtracking**

**English editions**

In order by volume number:

*Volume 1: Fundamental Algorithms*. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 0-201-89683-4

*Volume 1, Fascicle 1: MMIX -- A RISC Computer for the New Millennium*. (Addison-Wesley, February 14, 2005) ISBN 0-201-85392-2 (will be in the fourth edition of volume 1)

*Volume 2: Seminumerical Algorithms*. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. ISBN 0-201-89684-2

*Volume 3: Sorting and Searching*. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. ISBN 0-201-89685-0

*Volume 4, Fascicle 0: Boolean basics*(preview available, publication est: Q4 2007)

*Volume 4, Fascicle 1: Bitwise tricks and techniques*(partial preview available, publication est: Q2 2008)

*Volume 4, Fascicle 2: Generating All Tuples and Permutations*, (Addison-Wesley, February 14, 2005) v+127pp, ISBN 0-201-85393-0

*Volume 4, Fascicle 3: Generating All Combinations and Partitions*. (Addison-Wesley, July 26, 2005) vi+150pp, ISBN 0-201-85394-9

*Volume 4, Fascicle 4: Generating all Trees -- History of Combinatorial Generation*, (Addison-Wesley, February 6, 2006) vi+120pp, ISBN 0-321-33570-8

- 7.2.1.1 - Generating all n-tuples - published in Volume 4, Fascicle 2

- 7.2.1 - Combinatorial generators (397 pp)

- 7.1.1 - Boolean basics (88 pp)

- 7.1 - Zeros and ones

- Chapter 9 - Lexical scanning

- Chapter 7

- Chapter 7

- Chapter 7 - Combinatorial searching

- Volume 4A - Enumeration and Backtracking

- Chapter 5 - Sorting

- Chapter 3 - Random numbers