The Art of Computer Programming

Missing image
Art_of_Computer_Programming_-_Cover.gif
Cover of books

The Art of Computer Programming is a comprehensive monograph written by Donald Knuth which covers many kinds of programming algorithms and their analysis. Knuth began the project in 1962, which was originally planned to be one book. The first three volumes were published in rapid succession, starting with volume 1 in 1968, volume 2 in 1969, and volume 3 in 1973. Volume 4 is currently in preparation, the first installment of which was published in February 2005, with additional installments planned approximately twice per year. Originally, the work was planned as a single volume, but the plan changed to seven volumes after the publisher saw the size of the first handwritten draft. The plan for Volume 4 has since expanded to include Volumes 4A, 4B, 4C, and possibly 4D. In 1976, Knuth prepared a second edition of Volume 2, requiring it to be typeset again. But the style of type used in the first edition was no longer available. So in 1977 he decided to spend a few months working up something more suitable. Eight years later, he returned with TeX, which is currently used for all volumes.

  • Volume 1 - Fundamental Algorithms
  • Volume 2 - Seminumerical Algorithms
  • Volume 3 - Sorting and Searching
  • Volume 4 - Combinatorial Algorithms, in preparation (fascicle 2 was published February 2005, 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.
    • Chapter 9 - Lexical scanning
    • Chapter 10 - Parsing techniques
  • Volume 6 - Theory of Context-Free Languages, planned.
  • Volume 7 - Compiler Techniques, planned.

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). Some readers are chagrined at the use of assembly language, but Knuth considers this necessary because algorithms need a context to judge speed and memory usage. Fortunately, there are free MIX emulators available for download.

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

The famous offer of a reward check for any errors found, and the correction of these errors in subsequent printings, has contributed to the highly polished and continued authoritative nature of the work, long after its first publication. Another characteristic of the volumes is the variation in the difficulty of the exercises. The level of difficulty ranges from "warm-up" exercises to unsolved research problems, giving any reader a challenge.


English editions

Current editions:

  • Volume 1: Fundamental Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 0-201-89683-4
  • 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 1, Fascicle 1: MMIX -- A RISC Computer for the New Millennium. (Addison-Wesley, February 14, 2005) ISBN 0-201-85392-2
  • Volume 4, Fascicle 1: Boolean Techniques (in preparation).
  • Volume 4, Fascicle 2: Generating all Tuples and Permutations, (Addison-Wesley, February 14, 2005) ISBN 0-201-85393-0
  • Volume 4, Fascicle 3: Generating all Combinations and Partitions. (Addison-Wesley, August 5, 2005) ISBN 0-201-85394-9
  • Volume 4, Fascicle 4: Generating all Trees (preview available).

External links

de:The Art of Computer Programming The Art of Computer Programming ko:The Art of Computer Programming pl:The Art of Computer Programming ro:The Art of Computer Programming zh:计算机程序设计艺术

Navigation

  • Art and Cultures
    • Art (https://academickids.com/encyclopedia/index.php/Art)
    • Architecture (https://academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (https://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (https://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools