The Art of Computer Programming adalah buku yang ditulis oleh Donald Knuth mengenai berbagai algoritme dan analisis pemrograman komputer. Knuth mulai menulis buku ini pada 1962. Tiga volume pertama diterbitkan pada 1968, 1969, dan 1973. Volume 4 rencananya akan diterbitkan pada awal 2007.
Knuth dianggap sebagai pakar dalam bidang compiler. Pada saat menulis buku ini ia membutuhkan perangkat lunak untuk typesetting dan kemudian mengembangkannya sendiri dan memberinya nama TeX.
Semua contoh program dalam buku ini ditulis dalam "MIX assembly language" yang ditulisnya sendiri. Pada saat ini komputer MIX telah digantikan oleh MMIX, yaitu versi RISC. Beberapa perangkat lunak MIX emulator tersedia, misalnya GNU MDK.
Knuth menawarkan $2.56 ("one hexadecimal dollar") untuk setiap kesalahan yang ditemukan pembacanya. Kesalahan-kesalahan ini diperbaiki dalam edisi-edisi berikutnya dan menjadikan buku ini tetap aktual dan sangat lengkap.
American Scientist memasukkan buku ini dalam 12 karya ilmu terbaik dalam abad XX. Bill Gates mengatakan "If you think you're a really good programmer... read (Knuth's) Art of Computer Programming...You should definitely send me a resume if you can read the whole thing."
- 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
- 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
- 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.
- 7. - Introduction
- 7.1 - Zeros and ones
- 7.1.1 - Boolean basics (83 pp)
- 7.1.2 - Boolean evaluation (62 pp)
- 7.1.3 - Bitwise tricks and techniques
- 7.1.4 - Representation of Boolean functions
- 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
Edisi terbaru
Diurutkan sesuai nomor volume:
- 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 (partial preview available, publication planned in early 2007)
- 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
Edisi sebelumnya
Diurutkan sesuai tanggal penerbitan:
- Volume 1, first edition, 1968. 634pp, ISBN 0-201-03801-3.
- Volume 2, first edition, 1969, xi+624pp, ISBN 0-201-03802-1.
- Volume 3, first edition, 1973, xi+723pp+centerfold, ISBN 0-201-03800-X.
- Volume 1, second edition, 1973, xiii+634pp, ISBN 0-201-03809-9.
- Volume 2, second edition, 1981, xiii+ 688pp. ISBN 0-201-03822-6.