stringtranslate.com

Искусство компьютерного программирования

Искусство компьютерного программирования ( TAOCP ) — это обширная монография , написанная учёным-компьютерщиком Дональдом Кнутом, в которой представлены алгоритмы программирования и их анализ . Тома 1–5 предназначены для представления основного ядра компьютерного программирования для последовательных машин.

Когда Кнут начал этот проект в 1962 году, он изначально задумывал его как одну книгу из двенадцати глав. Первые три тома семитомного набора были опубликованы в 1968, 1969 и 1973 годах. Серьезная работа над четвертым томом началась в 1973 году, но была приостановлена ​​в 1977 году из-за работы над набором текста, вызванной вторым изданием. Тома 2. Написание окончательной версии Тома 4А началось в 2001 году от руки, а первый онлайн-предварительный выпуск, 2А, появился позже в 2001 году. [1] Первая опубликованная часть Тома 4 появилась в мягкой обложке под названием Fascicle 2 в 2005. Том 4A в твердом переплете, объединяющий Том 4, Главы 0–4, был опубликован в 2011 году. Том 4, Глава 6 («Выполнимость») был выпущен в декабре 2015 года; Том 4, выпуск 5 («Математические предварительные сведения; Возврат; Танцующие ссылки») был выпущен в ноябре 2019 года.

Том 4B состоит из материала, полученного из выпусков 5 и 6. [2] Рукопись была отправлена ​​издателю 1 августа 2022 года, а том был опубликован в сентябре 2022 года. [3] Глава 7, запланированная для тома 4C, была тема выступления Кнута 3 августа 2022 г. [4]

История

Дональд Кнут в 2005 году

Выиграв стипендию Westinghouse Talent Search , Кнут поступил в Технологический институт Кейса (ныне Университет Кейс Вестерн Резерв ), где его успеваемость была настолько выдающейся, что преподаватели проголосовали за присвоение ему степени магистра наук после получения степени бакалавра . Во время летних каникул Кнут был нанят корпорацией Берроуза для написания компиляторов , зарабатывая за летние месяцы больше, чем профессора за целый год. [5] Такие подвиги сделали Кнута темой обсуждения на математическом факультете, в который входил Ричард С. Варга .

В январе 1962 года, когда он был аспирантом математического факультета Калифорнийского технологического института, Аддисон-Уэсли обратился к Кнуту с просьбой написать книгу о проектировании компиляторов, и он предложил более широкую область применения. В тот же день он составил список из двенадцати названий глав. Летом 1962 года он работал над компилятором FORTRAN для UNIVAC . За это время он также придумал математический анализ линейного зондирования , который убедил его представить материал с количественным подходом. После получения докторской степени. в июне 1963 года он начал работу над своей рукописью, первый набросок которой закончил в июне 1965 года в3000 рукописных страниц. [6] Он предполагал, что около пяти рукописных страниц можно перевести в одну печатную страницу, но его издатель вместо этого сказал, что около 1+1рукописных страниц переводятся на одну печатную страницу. Это означало, что у него было примерно2000 печатных страниц материала, что соответствует размеру первых трех опубликованных томов. В этот момент Кнут получил поддержку от Ричарда С. Варги, который был научным консультантом издателя. Варга навещал Ольгу Таусски-Тодд и Джона Тодда в Калифорнийском технологическом институте . При восторженной поддержке Варги издатель принял расширенные планы Кнута. В расширенной версии книга будет опубликована в семи томах, каждый из которых будет состоять всего из одной или двух глав. [7] Из-за увеличения главы 7, которая составляла менее 100 страниц рукописи 1965 года, за том. 4А с. vi, план Тома 4 с тех пор расширился и теперь включает тома 4A, 4B, 4C, 4D и, возможно, другие.

В 1976 году Кнут подготовил второе издание второго тома, потребовав его повторной верстки , но стиль шрифта, использованный в первом издании (называемый горячим шрифтом ), больше не был доступен. В 1977 году он решил потратить некоторое время на создание чего-то более подходящего. Восемь лет спустя он вернулся с T E X , который в настоящее время используется во всех томах.

Предложение так называемого чека с вознаграждением Кнута на сумму «один шестнадцатеричный доллар» (100 шестнадцатеричных центов по основанию 16 в десятичном формате равно 2,56 доллара) за любые обнаруженные ошибки, а также исправление этих ошибок в последующих печатных изданиях способствовало доведению до совершенства этой книги. и по-прежнему авторитетный характер работы даже спустя долгое время после ее первой публикации. Еще одной особенностью объемов является вариативность сложности упражнений. У Кнута даже есть числовая шкала сложности для оценки этих упражнений, варьирующаяся от 0 до 50, где 0 — тривиально, а 50 — открытый вопрос в современных исследованиях.

Посвящение Кнута гласит:

Эта серия книг с любовью посвящена
компьютеру Type 650, когда-то установленному в
Технологическом институте Кейса ,
с которым я провел много приятных вечеров. [а]

Язык ассемблера в книге

Во всех примерах в книгах используется язык под названием « Язык ассемблера MIX », который работает на гипотетическом компьютере MIX. В настоящее время [ когда? ] компьютер MIX заменяется компьютером MMIX , который является версией RISC . Для эмуляции архитектуры MIX существует такое программное обеспечение, как GNU MDK [8] . Кнут считает, что использование языка ассемблера необходимо для оценки скорости и использования памяти алгоритмами.

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

Кнут был награжден Премией Тьюринга 1974 года «за большой вклад в анализ алгоритмов […] и, в частности, за вклад в «искусство компьютерного программирования» посредством своих хорошо известных книг из непрерывной серии под этим названием». [9] Американский ученый включил эту работу в число «100 или около того книг, сформировавших век науки», имея в виду двадцатый век, [10] . На обложке третьего издания первого тома цитируются слова Билла Гейтса : «Если вы думаете, что вы действительно хороший программист… прочтите книгу (Кнута) « Искусство компьютерного программирования »… Вам обязательно следует прислать мне резюме, если вы сможете прочитать ее целиком. " [11] The New York Times назвала его «определяющим трактатом профессии». [12]

Объемы

Завершенный

Планируется

Краткое содержание глав

Завершенный

Том 1 – Фундаментальные алгоритмы

Том 2 – Получисловые алгоритмы

Том 3 – Сортировка и поиск

Том 4A – Комбинаторные алгоритмы, часть 1

Том 4B – Комбинаторные алгоритмы, часть 2

Планируется

Тома 4C, 4D, 4E, 4F – Комбинаторные алгоритмы [13]

Том 5 – Синтаксические алгоритмы

Том 6 – Теория контекстно-свободных языков [14]

Том 7 – Методы компиляции

Английские издания

Текущие выпуски

Это текущие издания в порядке номера тома:

Предыдущие выпуски

Полные тома

Эти тома были заменены более новыми изданиями и упорядочены по дате.

Выпуски

Том 4, выпуски 0–4 были переработаны и опубликованы как Том 4A.

Том 4, выпуски 5–6 были переработаны и опубликованы как Том 4B.

Предварительные выпуски

Том 1

Том 4

Остальные предварительные выпуски содержат черновые материалы, которые появятся в будущих выпусках и томах.

Смотрите также

Рекомендации

Примечания

  1. В первом издании посвящение было сформулировано немного иначе.

Цитаты

  1. ^ «Примечание к ящику 3, папка 1» .
  2. ^ Вкладка «Содержимое» веб-страницы книги Pearson InformIT. Аддисон-Уэсли Профессионал. 28 сентября 2022 г. ISBN 9780201038064.
  3. ^ Веб-страница Pearson InformIT. Аддисон-Уэсли Профессионал. 28 сентября 2022 г. ISBN 9780201038064.
  4. ^ «Ответы на все вопросы CP 2022, 31 июля – 5 августа 2022 г., Хайфа, Израиль» .
  5. ^ Франа, Филип Л. (08 ноября 2001 г.). «Интервью с Дональдом Э. Кнутом». hdl : 11299/107413.
  6. ^ Кнут, Дональд Э. (23 августа 1993 г.). «Классика цитирования этой недели» (PDF) . Текущее содержание . п. 8.
  7. ^ Альберс, Дональд Дж. (2008). «Дональд Кнут». В Альберсе, Дональд Дж.; Александерсон, Джеральд Л. (ред.). Люди-математики: профили и интервью (2-е изд.). АК Петерс . ISBN 978-1-56881-340-0.
  8. ^ «GNU MDK - Проект GNU - Фонд свободного программного обеспечения» . www.gnu.org . Проверено 23 октября 2022 г.
  9. ^ "Дональд Э. Кнут - обладатель премии А. М. Тьюринга" . А. М. Тьюринг . Проверено 25 января 2017 г.
  10. ^ Моррисон, Филип ; Моррисон, Филис (ноябрь – декабрь 1999 г.). «Приблизительно 100 книг, сформировавших век науки». Американский учёный . Сигма Си, Общество научных исследований. 87 (6). Архивировано из оригинала 20 августа 2008 г. Проверено 11 января 2008 г.
  11. ^ Вайнбергер, Мэтт. «Билл Гейтс однажды сказал: «Обязательно пришлите мне резюме», если закончите эту чертовски трудную книгу». Бизнес-инсайдер . Проверено 13 июня 2016 г.
  12. ^ Лор, Стив (17 декабря 2001 г.). «Фрэнсис Э. Холбертон, 84 года, один из первых программистов». Нью-Йорк Таймс . Проверено 17 мая 2010 г.
  13. ^ Д'Агостино, Сьюзен (16 апреля 2020 г.). «Ученый-компьютерщик, который не может перестать рассказывать истории». Журнал Кванта . Проверено 26 июня 2023 г. Сейчас ему 82 года, он усердно работает над частью B четвёртого тома и ожидает, что в книге будут как минимум части от A до F.
  14. ^ «TAOCP - Планы на будущее» .
  15. ^ Аб Уэллс, Марк Б. (1973). «Обзор: Искусство компьютерного программирования, Том 1. Фундаментальные алгоритмы и Том 2. Получисловые алгоритмы Дональда Э. Кнута» (PDF) . Бюллетень Американского математического общества . 79 (3): 501–509. дои : 10.1090/s0002-9904-1973-13173-8 .

Источники

Внешние ссылки