Введение

Книги об алгоритмах Дональда Кнута

«Искусство компьютерного программирования» (TAOCP) — это всеобъемлющая монография, написанная ученым-компьютерщиком Дональдом Кнутом, представляющая алгоритмы программирования и их анализ. Тома 1–5 предназначены для представления центрального ядра компьютерного программирования для последовательных машин. Когда Кнут начал работу над проектом в 1962 году, он изначально задумывал его как одну книгу из двенадцати глав. Первые три тома серии, которая тогда планировалась из семи томов, были опубликованы в 1968, 1969 и 1973 годах. Работа над 4-м томом началась в 1973 году, но была приостановлена в 1977 году для работы над набором текста, вызванной вторым изданием 2-го тома. Написание окончательного варианта тома 4А началось от руки в 2001 году, а первый онлайн-предварительный выпуск, 2А, появился позже в 2001 году. Первый опубликованный выпуск 4-го тома вышел в мягкой обложке как Fascicle 2 в 2005 году. Том 4А в твердой обложке, объединяющий том 4 и Fascicles 0–4, был опубликован в 2011 году. Fascicle 6 тома 4 («Satisfiability») был выпущен в декабре 2015 года; Fascicle 5 тома 4 («Mathematical Preliminaries Redux; Backtracking; Dancing Links») был выпущен в ноябре 2019 года. Том 4B состоит из материалов, развитых из Fascicles 5 и 6. Рукопись была отправлена издателю 1 августа 2022 года, а том был опубликован в сентябре 2022 года. Fascicle 7, запланированный для тома 4C, был темой доклада Кнута 3 августа 2022 года.

Язык собрания в книге

Все примеры в книгах используют язык программирования "ассемблер MIX", который работает на гипотетическом компьютере MIX. В настоящее время компьютер MIX заменяется компьютером MMIX, являющимся RISC-версией. Существует программное обеспечение, такое как GNU MDK, для эмуляции архитектуры MIX. Кнут считает, что использование языка ассемблера необходимо для оценки быстродействия и потребления памяти алгоритмами.

Критический отклик

Кнут был удостоен премии Тьюринга 1974 года «за его значительный вклад в анализ алгоритмов [ ], и в особенности за вклад в «искусство программирования» благодаря его известным книгам, выходящим непрерывной серией под этим названием». Журнал American Scientist включил эту работу в список «примерно ста книг, сформировавших столетие науки», подразумевая двадцатый век. На обложке третьего издания первого тома приводится цитата Билла Гейтса: «Если вы считаете себя действительно хорошим программистом, прочитайте «Искусство программирования» (Knuth’s). Вам обязательно стоит прислать мне резюме, если вы сможете прочитать все книги». Газета The New York Times назвала эту работу «определяющим трудом профессии».

Фасциклы

Том 4, "Фасциклы 0–4" были пересмотрены и опубликованы как том 4А. Том 4, Фасцикл 0: Введение в комбинаторные алгоритмы и булевые функции. (Addison Wesley Professional, 2008 04 28) vi+240pp, Errata: (2011 01 01). Том 4, Фасцикл 1: Битовые трюки и методы; Диаграммы бинарных решений. (Addison Wesley Professional, 2009 03 27) viii+260pp, Errata: (2011 01 01). Том 4, Фасцикл 2: Создание всех кортежей и перестановок. (Addison Wesley, 2005 02 14) v+127pp, Errata: (2011 01 01). Том 4, Фасцикл 3: Создание всех комбинаций и разбиений. (Addison Wesley, 2005 07 26) vi+150pp, Errata: (2011 01 01). Том 4, Фасцикл 4: Генерирование всех деревьев; История комбинированного генерирования. (Addison Wesley, 2006 02 06) vi+120pp, Errata: (2011 01 01). Том 4, "Фасциклы 5–6" были пересмотрены и опубликованы как том 4B. Том 4, Фасцикл 5: Математические основы (повторное рассмотрение); Метод обратного хода; Танцующие связи. (Addison Wesley, 2019 11 22) xiii+382pp, Errata: (2020 03 27) Том 4, Фасцикл 6: Выполнимость. (Addison Wesley, 2015 12 08) xiii+310pp, Errata: (2020 03 26)