Книга алгоритмов программного обеспечения
«Наслаждение хакера» — это книга Генри С. Уоррена-младшего по программным алгоритмам, впервые опубликованная в 2002 году. В ней представлены быстрые арифметические алгоритмы на битовом и низкоуровневом уровнедля общих задач, таких как подсчет битов или повышение скорости деления с помощью умножения.
Фон
Автор, исследователь IBM, работающий над системами от IBM 704 до PowerPC , [1] на протяжении своей карьеры собирал то, что он называл «трюками программирования». Эти приемы касаются эффективных низкоуровневых манипуляций с битовыми строками и числами. Согласно предисловию к книге Гая Л. Стила , целевая аудитория включает в себя авторов компиляторов и людей, пишущих высокопроизводительный код.
Краткое содержание
Примеры программирования написаны на языке C и ассемблере для RISC- архитектуры, аналогичной, но не идентичной PowerPC . Алгоритмы приводятся в виде формул для любого количества бит, примеры обычно для 32 бит.
За исключением введения, главы независимы друг от друга, каждая из которых посвящена определенной теме. Многие алгоритмы в книге основаны на целых числах с дополнением до двух .
Темой второго издания книги [1] являются алгоритмы
- Базовые алгоритмы манипулирования отдельными битами, формулы тождеств, неравенств, обнаружения переполнения при арифметических операциях и сдвигах.
- Округление вверх и вниз до числа, кратного известной степени 2, следующей степени 2 и для определения того, пересекает ли операция границу степени 2.
- Проверка границ
- Подсчет суммы , ведущих и конечных нулей
- Поиск битовых строк
- Перестановки битов и байтов в слове
- Программные алгоритмы умножения
- Целочисленное деление
- Эффективное целочисленное деление и вычисление остатка, когда делитель известен.
- Целочисленные квадратные и кубические корни
- Необычные системы счисления, включая основание -2.
- Передача значений между плавающей запятой и целым числом
- Циклическое избыточное кодирование , коды исправления ошибок и коды Грея.
- Кривые Гильберта , включая обсуждение приложений
Стиль
Стиль — стиль неформального учебника по математике. Формулы используются широко. Математические доказательства даны для некоторых неочевидных алгоритмов, но не являются целью книги.
Прием
Общий прием был в целом положительным. [2] [3]
История публикаций
Книга была опубликована издательством Addison-Wesley Professional . Первое издание вышло в 2002 году [4] , второе — в 2013 году. [1]
Смотрите также
Рекомендации
- ^ abc Уоррен младший, Генри С. (2013). Хакерское наслаждение (2-е изд.). Аддисон Уэсли - ISBN Pearson Education, Inc. 978-0-321-84268-8.
- ^ Бакстер, Майкл (1 апреля 2003 г.). «Хакерское удовольствие». Отзывы. Linux-журнал . Архивировано из оригинала 27 сентября 2020 г. Проверено 28 августа 2021 г.
- ^ Максфилд, Клайв «Макс» (5 апреля 2012 г.). «Рецензия на книгу Генри С. Уоррена-младшего: Книжная полка инженера - восторг хакера». ЭЭ Таймс . Архивировано из оригинала 02 апреля 2017 г. Проверено 2 апреля 2017 г.
- ^ Уоррен младший, Генри С. (2002). Хакерское наслаждение (1-е изд.). Эддисон Уэсли . ISBN 978-0-201-91465-8.
дальнейшее чтение
- Билер, Майкл; Госпер, Ральф Уильям ; Шреппель, Ричард К. (апрель 1995 г.) [29 февраля 1972 г.]. «Памятка по искусственному интеллекту № 239». В Бейкере, Генри Гивенс-младший (ред.). ХАКМЕМ (перепечатанное и преобразованное издание). Кембридж, Массачусетс, США: Лаборатория искусственного интеллекта Массачусетского технологического института (MIT). Архивировано из оригинала 08.10.2019 . Проверено 2 января 2016 г.
- Джонс, Дуглас В. (10 сентября 2014 г.) [1999]. «Уроки арифметики». Айова-Сити, Айова, США: Университет Айовы, факультет компьютерных наук. Архивировано из оригинала 10 июля 2019 г. Проверено 03 января 2016 г.
- Коулишоу, Майк Ф. (2015) [1981, 2008]. «Общая десятичная арифметика». Архивировано из оригинала 02.11.2019 . Проверено 2 января 2016 г.
- Ингеносо, Тони (3 февраля 1999 г.) [1998]. «Глава 11. Еще больше хитростей в коде C и ассемблере». Улучшение работы кода — Как минимизировать размер кода 80x86 и иногда сделать его быстрее (электронная книга). Архивировано из оригинала 18 ноября 2019 г. Проверено 18 ноября 2019 г.
- Андерсон, Шон Эрон, изд. (26 ноября 2009 г.) [1997]. «Базовые хаки». Стэндфордский Университет . Архивировано из оригинала 01 июня 2020 г. Проверено 01 июня 2020 г.
Внешние ссылки
- Архив сайта Hacker's Delight