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 .
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.
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."
Chapter outline
-
Volume 1 - Fundamental Algorithms
- Chapter 1 - Basic concepts
- Chapter 2 - Information structures
-
Volume 2 - Seminumerical Algorithms
- Chapter 3 -
- Chapter 4 - Arithmetic
- Volume 3 - Sorting and Searching
-
Volume 4 -
Algorithms, in preparation (three
have been published as of February 2006, and alpha-test versions of additional fascicles are downloadable from Knuth's page
below
).
-
Volume
4A
,
and
- Chapter 7 - Combinatorial searching
-
Volume 4B,
and
Algorithms
- Chapter 7 continued
-
Volume 4C and possibly 4D, Optimization and
- Chapter 7 continued
- Chapter 8 - Recursion
-
Volume
4A
,
and
-
Volume 5 - Syntactic Algorithms, planned (as of August 2006,
estimated
in 2015).
- Chapter 9 - Lexical scanning
- Chapter 10 - Parsing techniques
- Volume 6 - Theory of , planned.
- Volume 7 - Compiler Techniques, planned.
Outline of Volume 4A Enumeration and Backtracking
-
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.2.1 - Combinatorial generators (397 pp)
- 7.3 - Shortest paths
-
7.1 - Zeros and ones
Edisi bahasa Inggris
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, 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: and . 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 and , (Addison-Wesley, February 14, 2005) v+127pp, ISBN 0-201-85393-0
- Volume 4, Fascicle 3: Generating All and . (Addison-Wesley, July 26, 2005) vi+150pp, ISBN 0-201-85394-9
- Volume 4, Fascicle 4: Generating all -- 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 .