Искусство компьютерного программирования
Автор | Дональд Кнут |
---|---|
Язык | Английский |
Жанр | Научная литература Монография |
Издатель | Аддисон-Уэсли |
Дата публикации | 1968– (книга еще не завершена) |
Место публикации | Соединенные Штаты |
Тип носителя | Распечатать ( твердый переплет ) |
ISBN | 0-201-03801-3 |
519 | |
Класс ЛК | QA76.75 |
Искусство компьютерного программирования ( 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]
История [ править ]
Выиграв стипендию Westinghouse Talent Search , Кнут поступил в Технологический институт Кейса (ныне Университет Кейс Вестерн Резерв ), где его успеваемость была настолько выдающейся, что преподаватели проголосовали за присвоение ему степени магистра наук после получения степени бакалавра . Во время летних каникул Кнут был нанят корпорацией Берроуза для написания компиляторов , зарабатывая за летние месяцы больше, чем профессора за целый год. [5] Такие подвиги сделали Кнута предметом обсуждения на математическом факультете, в который входил Ричард С. Варга .
В январе 1962 года, когда он был аспирантом математического факультета Калифорнийского технологического института, Аддисон-Уэсли обратился к Кнуту с просьбой написать книгу о проектировании компиляторов, и он предложил более широкую область применения. В тот же день он составил список из двенадцати названий глав. Летом 1962 года он работал над компилятором FORTRAN для UNIVAC . За это время он также придумал математический анализ линейного зондирования , который убедил его представить материал с количественным подходом. После получения докторской степени. в июне 1963 года он начал работу над своей рукописью, первый вариант которой он закончил в июне 1965 года, насчитывая 3000 рукописных страниц. [6] Он предполагал, что около пяти рукописных страниц можно превратить в одну печатную страницу, но вместо этого его издатель заявил, что примерно 1 + 1 ⁄ 2 рукописных страницы переводятся на одну печатную страницу. Это означало, что у него было около 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 . Программное обеспечение, такое как GNU MDK [8] существует для обеспечения эмуляции архитектуры MIX. Кнут считает, что использование языка ассемблера необходимо для оценки скорости и использования памяти алгоритмами.
Критический ответ [ править ]
Кнут был награжден Премией Тьюринга 1974 года «за большой вклад в анализ алгоритмов […] и, в частности, за вклад в «искусство компьютерного программирования» посредством своих хорошо известных книг из непрерывной серии под этим названием». [9] Американский ученый включил эту работу в число «100 или около того книг, сформировавших век науки», имея в виду двадцатый век. [10] На обложке третьего издания первого тома цитируются слова Билла Гейтса : «Если вы думаете, что вы действительно хороший программист… прочтите книгу (Кнута) « Искусство компьютерного программирования »… Вам обязательно следует прислать мне резюме, если вы сможете прочитать ее целиком. " [11] Газета New York Times назвала его «определяющим трактатом профессии». [12]
Тома [ править ]
Завершено [ править ]
- Том 1 – Фундаментальные алгоритмы
- Глава 1 – Основные понятия
- Глава 2 – Информационные структуры
- Том 2 – Получисловые алгоритмы
- Глава 3 – Случайные числа
- Глава 4 – Арифметика
- Том 3 – Сортировка и поиск
- Глава 5 – Сортировка
- Глава 6 – Поиск
- Том 4A – Комбинаторные алгоритмы
- Глава 7 – Комбинаторный поиск (часть 1)
- Том 4B – Комбинаторные алгоритмы
- Глава 7 – Комбинаторный поиск (часть 2)
Планируется [ править ]
- Том 4C, 4D, ... Комбинаторные алгоритмы (главы 7 и 8 выпущены в нескольких подразделах)
- Глава 7 – Комбинаторный поиск (продолжение)
- Глава 8 – Рекурсия
- Том 5 – Синтаксические алгоритмы
- Глава 9 – Лексическое сканирование (также включает поиск строк и сжатие данных )
- Глава 10 – синтаксического анализа Техники
- Том 6 – Теория контекстно-свободных языков
- Глава 11 – Математическая лингвистика
- Том 7 – компиляции Методы
- Глава 12 – Перевод языков программирования
Краткое содержание глав [ править ]
Завершено [ править ]
1 – Фундаментальные алгоритмы Том
- Глава 1 – Основные понятия
- 1.1. Алгоритмы
- 1.2. Математические предварительные сведения
- 1.2.1. Математическая индукция
- 1.2.2. Числа, степени и логарифмы
- 1.2.3. Суммы и произведения
- 1.2.4. Целочисленные функции и элементарная теория чисел
- 1.2.5. Перестановки и факториалы
- 1.2.6. Биномиальные коэффициенты
- 1.2.7. Гармонические числа
- 1.2.8. Числа Фибоначчи
- 1.2.9. Генерирующие функции
- 1.2.10. Анализ алгоритма
- 1.2.11. Асимптотические представления.
- 1.2.11.1. О -нотация
- 1.2.11.2. Формула суммирования Эйлера
- 1.2.11.3. Некоторые асимптотические вычисления
- 1.3 MMIX ( MIX в твердом переплете, но обновлен в выпуске 1)
- 1.3.1. Описание MMIX
- 1.3.2. Язык ассемблера MMIX
- 1.3.3. Приложения к перестановкам
- 1.4. Некоторые фундаментальные методы программирования
- 1.4.1. Подпрограммы
- 1.4.2. Сопрограммы
- 1.4.3. Интерпретационные процедуры
- 1.4.3.1. Симулятор MIX
- 1.4.3.2. Трассировка процедур
- 1.4.4. Ввод и вывод
- 1.4.5. История и библиография
- Глава 2 – Информационные структуры
- 2.1. Введение
- 2.2. Линейные списки
- 2.2.1. Стеки , очереди и деки
- 2.2.2. Последовательное распределение
- 2.2.3. Связанное распределение ( топологическая сортировка )
- 2.2.4. Круговые списки
- 2.2.5. Двусвязные списки
- 2.2.6. Массивы и ортогональные списки
- 2.3. Деревья
- 2.3.1. Обход бинарных деревьев
- 2.3.2. Представление деревьев в виде двоичного дерева
- 2.3.3. Другие изображения деревьев
- 2.3.4. Основные математические свойства деревьев
- 2.3.4.1. Бесплатные деревья
- 2.3.4.2. Ориентированные деревья
- 2.3.4.3. «Лемма о бесконечности».
- 2.3.4.4. Перечень деревьев
- 2.3.4.5. Длина пути
- 2.3.4.6. История и библиография
- 2.3.5. Списки и сбор мусора
- 2.4. Многосвязные структуры
- 2.5. Динамическое распределение памяти
- 2.6. История и библиография
2 – Получисловые алгоритмы Том
- Глава 3 – Случайные числа
- 3.1. Введение
- 3.2. Генерация однородных случайных чисел
- 3.2.1. Линейный конгруэнтный метод
- 3.2.1.1. Выбор модуля
- 3.2.1.2. Выбор множителя
- 3.2.1.3. потенция
- 3.2.2. Другие методы
- 3.2.1. Линейный конгруэнтный метод
- 3.3. Статистические тесты
- 3.3.1. Общие процедуры тестирования для изучения случайных данных
- 3.3.2. Эмпирические тесты
- 3.3.3. Теоретические тесты
- 3.3.4. Спектральный тест
- 3.4. Другие типы случайных величин
- 3.4.1. Численные распределения
- 3.4.2. Случайная выборка и перетасовка
- 3.5. Что такое случайная последовательность ?
- 3.6. Краткое содержание
- Глава 4 – Арифметика
- 4.1. Позиционные системы счисления
- 4.2. с плавающей запятой Арифметика
- 4.2.1. Расчеты с одинарной точностью
- 4.2.2. Точность арифметики с плавающей запятой
- 4.2.3. Расчеты двойной точности
- 4.2.4. Распределение чисел с плавающей запятой
- 4.3. Арифметика с множественной точностью
- 4.3.1. Классические алгоритмы
- 4.3.2. Модульная арифметика
- 4.3.3. Как быстро мы можем размножаться?
- 4.4. системы счисления Преобразование
- 4.5. Рациональная арифметика
- 4.5.1. Фракции
- 4.5.2. Наибольший общий делитель
- 4.5.3. Анализ алгоритма Евклида
- 4.5.4. Факторизация простых чисел
- 4.6. Полиномиальная арифметика
- 4.6.1. Отдел полиномов
- 4.6.2. Факторизация полиномов
- 4.6.3. Оценка полномочий ( возведение в степень по цепочке сложения )
- 4.6.4. Оценка полиномов
- 4.7. Манипулирование степенным рядом
Том 3 – Сортировка и поиск [ править ]
- Глава 5 – Сортировка
- 5.1. Комбинаторные свойства перестановок
- 5.1.1. Инверсии
- 5.1.2. Перестановки мультимножества
- 5.1.3. Бежит
- 5.1.4. Таблицы и инволюции
- 5.2. Внутренняя сортировка
- 5.2.1. Сортировка по вставке
- 5.2.2. Сортировка по обмену
- 5.2.3. Сортировка по выбору
- 5.2.4. Сортировка по слиянию
- 5.2.5. Сортировка по распространению
- 5.3. Оптимальная сортировка
- 5.3.1. Сортировка по минимальному сравнению
- 5.3.2. Слияние с минимальным сравнением
- 5.3.3. Выбор минимального сравнения
- 5.3.4. Сети для сортировки
- 5.4. Внешняя сортировка
- 5.4.1. Многоходовое объединение и выбор замены
- 5.4.2. Многофазное слияние
- 5.4.3. Каскадное слияние
- 5.4.4. Чтение ленты задом наперед
- 5.4.5. Осциллирующая сортировка
- 5.4.6. Практические соображения по объединению лент
- 5.4.7. Внешняя поразрядная сортировка
- 5.4.8. Двухленточная сортировка
- 5.4.9. Диски и барабаны
- 5.5. Резюме, история и библиография
- 5.1. Комбинаторные свойства перестановок
- Глава 6 – Поиск
- 6.1. Последовательный поиск
- 6.2. Поиск по сравнению ключей
- 6.2.1. Поиск упорядоченной таблицы
- 6.2.2. Поиск в двоичном дереве
- 6.2.3. Сбалансированные деревья
- 6.2.4. Многосторонние деревья
- 6.3. Цифровой поиск
- 6.4. Хеширование
- 6.5. Получение вторичных ключей
Том 4A – Комбинаторные алгоритмы, часть 1 [ править ]
- Глава 7 – Комбинаторный поиск
- 7.1. Нули и единицы
- 7.1.1. Логические основы
- 7.1.2. Логическая оценка
- 7.1.3. Побитовые приемы и методы
- 7.1.4. Бинарные диаграммы решений
- 7.2. Создание всех возможностей
- 7.2.1. Генерация основных комбинаторных шаблонов
- 7.2.1.1. Генерация всех n - кортежей
- 7.2.1.2. Генерация всех перестановок
- 7.2.1.3. Генерация всех комбинаций
- 7.2.1.4. Генерация всех целочисленных разделов
- 7.2.1.5. Генерация всех установленных разделов
- 7.2.1.6. Генерация всех деревьев
- 7.2.1.7. История и дополнительные ссылки
- 7.2.1. Генерация основных комбинаторных шаблонов
- 7.1. Нули и единицы
Том 4B – Комбинаторные алгоритмы, часть 2 [ править ]
- Глава 7 – Комбинаторный поиск (продолжение)
- 7.2. Создание всех возможностей (продолжение)
- 7.2.2. Программирование возврата
- 7.2.2.1. Ссылки на танцы (включая обсуждение кавера Exact )
- 7.2.2.2. Удовлетворенность
- 7.2.2. Программирование возврата
- 7.2. Создание всех возможностей (продолжение)
Планируется [ править ]
Тома 4C, 4D, 4E, 4F – Комбинаторные алгоритмы [13] [ редактировать ]
- Глава 7 – Комбинаторный поиск (продолжение)
- 7.2. Создание всех возможностей (продолжение)
- 7.2.2. Программирование возврата (продолжение)
- 7.2.2.3. Удовлетворение ограничений
- 7.2.2.4. Гамильтоновы пути и циклы
- 7.2.2.5. Клики
- 7.2.2.6. Покрытия ( вершинное покрытие , задача множества покрытий , точное покрытие , покрытие клики )
- 7.2.2.7. Квадраты
- 7.2.2.8. Попурри из головоломок (включая идеальный цифровой инвариант )
- 7.2.2.9. Оценка затрат на возврат (глава 6 «Избранных статей по анализу алгоритмов» и глава 5, стр. 44–47, под заголовком «Оценки времени выполнения»)
- 7.2.3. Генерация неэквивалентных шаблонов (включая обсуждение теоремы перечисления Полиа ) (см. «Методы отклонения изоморфов», главу 4 книги «Алгоритмы классификации кодов и проектов» Каски и Остергарда)
- 7.2.2. Программирование возврата (продолжение)
- 7.3. Кратчайшие пути
- 7.4. Графовые алгоритмы
- 7.4.1. Компоненты и обход
- 7.4.1.1. Алгоритмы поиска объединений
- 7.4.1.2. Поиск в глубину
- 7.4.1.3. Связность вершин и ребер
- 7.4.2. Специальные классы графов
- 7.4.3. Расширяемые графики
- 7.4.4. Случайные графики
- 7.4.1. Компоненты и обход
- 7.5. Графики и оптимизация
- 7.5.1. Двустороннее сопоставление (включая сопоставление максимальной мощности , задачу стабильного брака , конюшни бракосочетания )
- 7.5.2. Проблема назначения
- 7.5.3. Сетевые потоки
- 7.5.4. Оптимальные поддеревья
- 7.5.5. Оптимальное соответствие
- 7.5.6. Оптимальные заказы
- 7.6. Теория независимости
- 7.6.1. Структуры независимости
- 7.6.2. Эффективные матроидные алгоритмы
- 7.7. Дискретное динамическое программирование (см. также метод Трансфер-матрицы )
- 7.8. ветвей и границ Методы
- 7.9. Геркулесовы задачи (также известные как NP-сложные задачи)
- 7.10. Почти оптимизация
- 7.2. Создание всех возможностей (продолжение)
- Глава 8 – Рекурсия (глава 22 «Избранных статей по анализу алгоритмов»)
Том 5 – Синтаксические алгоритмы [ править ]
- Глава 9 – Лексическое сканирование (включает также строковый поиск и сжатие данных)
- Глава 10 – синтаксического анализа Техники
Том 6 – Теория контекстно-свободных языков [14] [ редактировать ]
- Глава 11 – Математическая лингвистика [15]
Том 7 – Методы компиляции [ править ]
- Глава 12 – Перевод языков программирования [15]
Английские издания [ править ]
Текущие выпуски [ править ]
Это текущие издания в порядке номера тома:
- Искусство компьютерного программирования, коробочный набор томов 1–4B . (Ридинг, Массачусетс: Аддисон-Уэсли, 2023), 3904 стр. ISBN 978-0-13-793510-9 , 0-13-793510-2
- Том 1: Фундаментальные алгоритмы . Третье издание (Ридинг, Массачусетс: Аддисон-Уэсли, 1997), xx+650 стр. ISBN 978-0-201-89683-1 , 0-201-89683-4 . Ошибки: [1] (08 января 2011 г.), [2] (2022 г., 49-е издание ). Приложение: [3] (2011).
- Том 2: Получисловые алгоритмы . Третье издание (Ридинг, Массачусетс: Аддисон-Уэсли, 1997), xiv+762 стр. ISBN 978-0-201-89684-8 , 0-201-89684-2 . Ошибки: [4] (08 января 2011 г.), [5] (2022 г., 45-е издание). Приложение: [6] (2011).
- Том 3: Сортировка и поиск . Второе издание (Ридинг, Массачусетс: Аддисон-Уэсли, 1998), xiv+780 стр.+раскладной. ISBN 978-0-201-89685-5 , 0-201-89685-0 . Ошибки: [7] (08 января 2011 г.), [8] (2022 г., 45-е издание). Приложение: [9] (2011).
- Том 4А: Комбинаторные алгоритмы, Часть 1 . Первое издание (Аппер-Сэддл-Ривер, Нью-Джерси: Аддисон-Уэсли, 2011), xv+883 стр. ISBN 978-0-201-03804-0 , 0-201-03804-8 . Ошибки: [10] (2011 г.), [11] (2022 г., 22-е издание).
- Том 4B: Комбинаторные алгоритмы, часть 2 . Первое издание (Аппер-Сэддл-Ривер, Нью-Джерси: Аддисон-Уэсли, 2023), xviii+714 стр. ISBN 978-0-201-03806-4 , 0-201-03806-4 . Опечатки: [12] (2023 г., 1-е издание).
- Том 1, выпуск 1: MMIX — RISC-компьютер нового тысячелетия . (Аддисон-Уэсли, 14 февраля 2005 г.) ISBN 0-201-85392-2 . Исправления: [13] (16 марта 2020 г.) (будет в четвертом издании тома 1)
Предыдущие выпуски [ править ]
Полные тома [ править ]
Эти тома были заменены более новыми изданиями и упорядочены по дате.
- Том 1: Фундаментальные алгоритмы . Первое издание, 1968 г., XXI+634 стр., ISBN 0-201-03801-3 . [16]
- Том 2: Получисловые алгоритмы . Первое издание, 1969 г., xi+624 стр., ISBN 0-201-03802-1 . [16]
- Том 3: Сортировка и поиск . Первое издание, 1973 г., xi+723 стр.+раскладной, ISBN 0-201-03803-X . Ошибки: [14] .
- Том 1: Фундаментальные алгоритмы . Второе издание, 1973 г., XXI+634 стр., ISBN 0-201-03809-9 . Ошибки: [15] .
- Том 2: Получисловые алгоритмы . Второе издание, 1981 г., xiii+ 688 стр., ISBN 0-201-03822-6 . Ошибки: [16] .
- Искусство компьютерного программирования, тома 1–3 в коробочном наборе . Второе издание (Ридинг, Массачусетс: Аддисон-Уэсли, 1998), стр. ISBN 978-0-201-48541-7 , 0-201-48541-9
- Искусство компьютерного программирования, коробочный набор томов 1–4А . Третье издание (Ридинг, Массачусетс: Аддисон-Уэсли, 2011), 3168 стр. ISBN 978-0-321-75104-1 , 0-321-75104-3
Сборники [ править ]
Том 4, выпуски 0–4 были переработаны и опубликованы как Том 4A.
- Том 4, выпуск 0: Введение в комбинаторные алгоритмы и логические функции . (Addison-Wesley Professional, 28 апреля 2008 г.) vi+240pp, ISBN 0-321-53496-4 . Ошибки: [17] (1 января 2011 г.).
- Том 4, глава 1: Побитовые приемы и методы; Бинарные диаграммы решений . (Addison-Wesley Professional, 27 марта 2009 г.) viii+260 стр., ISBN 0-321-58050-8 . Ошибки: [18] (1 января 2011 г.).
- Том 4, глава 2: Генерация всех кортежей и перестановок . (Аддисон-Уэсли, 14 февраля 2005 г.) v + 127 стр., ISBN 0-201-85393-0 . Ошибки: [19] (1 января 2011 г.).
- Том 4, глава 3: Создание всех комбинаций и разделов . (Аддисон-Уэсли, 26 июля 2005 г.) vi+150 стр., ISBN 0-201-85394-9 . Ошибки: [20] (1 января 2011 г.).
- Том 4, выпуск 4: Создание всех деревьев; История комбинаторной генерации . (Аддисон-Уэсли, 06 февраля 2006 г.) vi+120 стр., ISBN 0-321-33570-8 . Ошибки: [21] (1 января 2011 г.).
Том 4, выпуски 5–6 были переработаны и опубликованы как Том 4B.
- Том 4, выпуск 5: Математические предварительные сведения; Возврат; Танцевальные ссылки . (Аддисон-Уэсли, 22 ноября 2019 г.) xiii+382 стр., ISBN 978-0-13-467179-6 . Ошибки: [22] (27 марта 2020 г.)
- Том 4, глава 6: Выполнимость . (Аддисон-Уэсли, 08 декабря 2015 г.) xiii+310 стр., ISBN 978-0-13-439760-3 . Ошибки: [23] (26 марта 2020 г.)
Предварительные выпуски [ править ]
Том 1
- Предисловие 1 было переработано и опубликовано как Том 1, глава 1.
Том 4
- Предварительные выпуски 0A , 0B и 0C были переработаны и опубликованы как том 4, глава 0.
- Предварительные выпуски 1A и 1B были переработаны и опубликованы как том 4, глава 1.
- Предварительные выпуски 2A и 2B были переработаны и опубликованы как том 4, глава 2.
- Предварительные выпуски 3A и 3B были переработаны и опубликованы как том 4, глава 3.
- Предварительные выпуски 4A и 4B были переработаны* и опубликованы как том 4, глава 4.
- Предварительные выпуски 5A , 5B и 5C были переработаны и опубликованы как том 4, глава 5.
- Предвыпуск 6А был переработан и опубликован как том 4, глава 6.
Остальные предварительные выпуски содержат черновые материалы, которые появятся в будущих выпусках и томах.
- Том 4, предисловие 7A: Удовлетворение ограничений
- Том 4, Предисловие 8A: Гамильтоновы пути и циклы
- Том 4, Предисловие 8B: Клики
- Том 4, предисловие 9B: Попурри из головоломок
- Том 4, предисловие 9C: Оценка затрат на возврат
- Том 4, предисловие 12A: Компоненты и обход (версия PDF)
- Том 4, предисловие 14A: Двустороннее сопоставление
- Том 4, предисловие 16A: Введение в рекурсию
См. также [ править ]
Ссылки [ править ]
Примечания
- ↑ В первом издании посвящение было сформулировано немного иначе.
Цитаты
- ^ «заметка для ящика 3, папка 1» .
- ^ Веб-страница книги Pearson InformIT, вкладка «Содержимое» . Аддисон-Уэсли Профессионал. 28 сентября 2022 г. ISBN 9780201038064 .
- ^ Веб-страница Pearson InformIT . Аддисон-Уэсли Профессионал. 28 сентября 2022 г. ISBN 9780201038064 .
- ^ «CP 2022 «Ответы на все вопросы», 31 июля – 5 августа 2022 г., Хайфа, Израиль» .
- ^ Франа, Филип Л. (8 ноября 2001 г.). «Интервью с Дональдом Э. Кнутом» . hdl : 11299/107413 .
- ^ Кнут, Дональд Э. (23 августа 1993 г.). «Классика цитирования этой недели» (PDF) . Текущее содержание . п. 8.
- ^ Альберс, Дональд Дж. (2008). «Дональд Кнут». В Альберсе, Дональд Дж.; Александерсон, Джеральд Л. (ред.). Люди-математики: профили и интервью (2-е изд.). АК Петерс . ISBN 978-1-56881-340-0 .
- ^ «GNU MDK — Проект GNU — Фонд свободного программного обеспечения» . www.gnu.org . Проверено 23 октября 2022 г.
- ^ «Дональд Э. Кнут – лауреат премии А. М. Тьюринга» . А. М. Тьюринг . Проверено 25 января 2017 г.
- ^ Моррисон, Филип ; Моррисон, Филис (ноябрь – декабрь 1999 г.). «Приблизительно 100 книг, которые сформировали век науки» . Американский учёный . 87 (6). Сигма Си, Общество научных исследований. Архивировано из оригинала 20 августа 2008 г. Проверено 11 января 2008 г.
- ^ Вайнбергер, Мэтт. «Билл Гейтс однажды сказал: «Обязательно пришлите мне резюме», если закончите эту чертовски трудную книгу» . Бизнес-инсайдер . Проверено 13 июня 2016 г.
- ^ Лор, Стив (17 декабря 2001 г.). «Фрэнсис Э. Холбертон, 84 года, один из первых программистов» . Нью-Йорк Таймс . Проверено 17 мая 2010 г.
- ^ Д'Агостино, Сьюзен (16 апреля 2020 г.). «Ученый-компьютерщик, который не может перестать рассказывать истории» . Журнал Кванта . Проверено 26 июня 2023 г.
Сейчас ему 82 года, он усердно работает над частью B четвёртого тома и ожидает, что в книге будут как минимум части от A до F.
- ^ «TAOCP – Планы на будущее» .
- ↑ Перейти обратно: Перейти обратно: а б https://www-cs-faculty.stanford.edu/~knuth/brochure.pdf .
{{cite web}}
: Отсутствует или пусто|title=
( помощь ) - ↑ Перейти обратно: Перейти обратно: а б Уэллс, Марк Б. (1973). «Обзор: Искусство компьютерного программирования, Том 1. Фундаментальные алгоритмы и Том 2. Получисловые алгоритмы Дональда Э. Кнута» (PDF) . Бюллетень Американского математического общества . 79 (3): 501–509. дои : 10.1090/s0002-9904-1973-13173-8 .
Источники
- Слейтер, Роберт (1987). Портреты из кремния . С Прессой. ISBN 0-262-19262-4 .
- Шаша, Деннис ; Лазер, Кэти (1995). Они сошли с ума: жизнь и открытия 15 великих ученых-компьютерщиков . Коперник. ISBN 0-387-97992-1 .
Внешние ссылки [ править ]
- Обзор тем (личная домашняя страница Кнута)
- Устное историческое интервью с Дональдом Э. Кнутом в Институте Чарльза Бэббиджа , Университет Миннесоты, Миннеаполис, 2001 год. Кнут обсуждает патентование программного обеспечения, структурированное программирование , сотрудничество и свою разработку TeX . В устной истории обсуждается написание «Искусства компьютерного программирования» .
- «Роберт Флойд, Памяти», Дональд Э. Кнут , 2003 г. - (под влиянием Боба Флойда )
- TAoCP и его влияние на информатику (Softpanorama)
- Научно-популярные книги 1968 года
- Научно-популярные книги 1969 года
- Научно-популярные книги 1973 года
- Научно-популярные книги 1981 года
- Научно-популярные книги 2011 года
- Книги Аддисона-Уэсли
- Американские научно-популярные книги
- Анализ алгоритмов
- Книги Дональда Кнута
- Алгоритмы компьютерной арифметики
- Книги по компьютерному программированию
- Книги по информатике
- англоязычные книги
- Монографии