Начала программирования

Александр Степанов, Пол Мак-Джонс

В настоящей книге применяется дедуктивный подход к программированию, основанный на объединении программ с абстрактными математическими теориями, которые обеспечивают их работу.

Представлены вместе описания этих теорий, алгоритмы, записанные с точки зрения этих теорий, а также теоремы и леммы, описывающие их свойства. Реализация алгоритмов на реальном языке программирования является центральной темой книги.

Эта книга предназначена для тех, кто стремится глубже понять суть программирования, будь то профессиональные программисты или ученые и инженеры, для которых программирование составляет важную часть их профессиональной деятельности. Книга предназначена для чтения от начала и до конца. Читатели смогут достичь понимания материала, только изучая код, доказывая леммы и выполняя упражнения.

«В книге содержатся одни из наиболее замечательных образцов кода, с которыми я когда-либо сталкивался.» - Бьярне Страуструп, разработчик языка C++

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

В главе 1 приведено описание значений, объектов, типов, процедур и концепций. Главы 2–5 посвящены алгоритмам на алгебраических структурах, таких как полугруппы и полностью упорядоченные множества. В главах 6–11 описываются алгоритмы на абстрактных представлениях памяти. В главе 12 рассматриваются объекты, содержащие другие объекты. В послесловии представлены общие размышления о подходе, изложенном в книге.

«Как известно, инженеры-механики, строители и электрики в своей работе опираются на надежные математические основания. С другой стороны, инженеры-программисты часто практикуют свое ремесло, не имея или почти не имея представления о том, на каком математическом фундаменте зиждется то, чем они занимаются. А потом мы не можем понять, почему программное обеспечение печально известно тем, что поставляется с опозданием и содержит много ошибок, тогда как другие инженеры обычно сдают в эксплуатацию готовые мосты, автомобили, электрические приборы и пр. своевременно и с незначительными дефектами. Настоящая книга призвана устранить это неравенство. Члены моего коллектива, занимающиеся сложными разработками в компании Adobe, после прохождения курса по материалам книги получили чрезвычайно положительную отдачу от вложенных усилий. На первый взгляд книга может показаться весьма специализированной, предназначенной только для теоретиков в области компьютерных наук, но в действительности она должна быть обязательно изучена всеми инженерами-программистами, которые ставят перед собой серьезные задачи».

- Мартин Ньюэлл, заслуженный исследователь Adobe: «Я счастлив видеть, что содержимое курса Алекса, разработку которого я настоятельно поддерживал как технический директор Silicon Graphics, теперь доступно для всех программистов в этой изящной небольшой книге».

- Форест Баскетт, главный партнер, New Enterprise Associates

«Терпение и организационный опыт Пола помогли создать на базе математического подхода Алекса четко структурированное произведение, а это - впечатляющий подвиг!»

- Роберт В. Тэйлор, основатель Xerox PARC SCL и DEC Systems Research Center

Издательство: Вильямс, 2011 г.

ISBN 978-5-8459-1708-9, 978-0-321-63537-2

Количество страниц: 272.

Содержание книги «Начала программирования»:

  • 10 Предисловие
  • 15 Глава 1. Вводные определения
    • 15 1.1 Категории идей: сущность, вид, род
    • 16 1.2 Значения
    • 18 1.3 Объекты
    • 20 1.4 Процедуры
    • 22 1.5 Регулярные типы
    • 23 1.6 Регулярные процедуры
    • 25 1.7 Концепции
    • 29 1.8 Резюме
  • 31 Глава 2. Преобразования и их орбиты
    • 31 2.1 Преобразования
    • 34 2.2 Орбиты
    • 36 2.3 Точка столкновения
    • 42 2.4 Измерение размеров орбиты
    • 43 2.5 Действия
    • 44 2.6 Резюме
  • 45 Глава 3. Ассоциативные операции
    • 45 3.1 Ассоциативность
    • 47 3.2 Вычисление степеней
    • 49 3.3 Преобразования программ
    • 53 3.4 Процедуры для специального случая
    • 56 3.5 Параметризация алгоритмов
    • 57 3.6 Линейные рекуррентные соотношения
    • 60 3.7 Процедуры накопления
    • 60 3.8 Резюме
  • 63 Глава 4. Линейные упорядочения
    • 63 4.1 Классификация отношений
    • 65 4.2 Полные и слабые упорядочения
    • 66 4.3 Выбор порядка
    • 74 4.4 Естественное полное упорядочение
    • 75 4.5 Семейства производных процедур
    • 75 4.6 Расширение процедур выбора порядка
    • 76 4.7 Резюме
  • 77 Глава 5. Упорядоченные алгебраические структуры
    • 77 5.1 Основные алгебраические структуры
    • 82 5.2 Упорядоченные алгебраические структуры
    • 83 5.3 Остаток
    • 86 5.4 Наибольший общий делитель
    • 89 5.5 Обобщение НОД
    • 91 5.6 Алгоритм gcd по Штейну
    • 92 5.7 Частное
    • 93 5.8 Частное и остаток для отрицательных величин
    • 95 5.9 Концепции и их модели
    • 97 5.10 Компьютерные целочисленные типы
    • 98 5.11 Резюме
  • 99 Глава 6. Итераторы
    • 99 6.1 Читаемость
    • 101 6.2 Итераторы
    • 102 6.3 Интервалы
    • 105 6.4 Читаемые интервалы
    • 112 6.5 Увеличение интервалов
    • 114 6.6 Прямые итераторы
    • 119 6.7 Индексированные итераторы
    • 119 6.8 Двунаправленные итераторы
    • 121 6.9 Итераторы с произвольным доступом
    • 122 6.10 Резюме
  • 125 Глава 7. Координатные структуры
    • 125 7.1 Бифуркатные координаты
    • 129 7.2 Двунаправленные бифуркатные координаты
    • 133 7.3 Координатные структуры
    • 134 7.4 Изоморфизм, эквивалентность и упорядочение
    • 140 7.5 Резюме
  • 141 Глава 8. Координаты с изменяемыми последователями
    • 141 8.1 Связанные итераторы
    • 142 8.2 Переупорядочение связей
    • 148 8.3 Области применения переупорядочений связей
    • 151 8.4 Связанные бифуркатные координаты
    • 155 8.5 Резюме
  • 157 Глава 9. Копирование
    • 157 9.1 Записываемость
    • 159 9.2 Копирование с учетом позиции
    • 165 9.3 Копирование на основе предиката
    • 171 9.4 Взаимная перестановка интервалов
    • 174 9.5 Резюме
  • 177 Глава 10. Переупорядочения
    • 177 10.1 Перестановки
    • 180 10.2 Переупорядочения
    • 182 10.3 Алгоритмы обращения
    • 185 10.4 Алгоритмы вращения
    • 192 10.5 Выбор алгоритма
    • 196 10.6 Резюме
  • 197 Глава 11. Разбиение и слияние
    • 197 11.1 Разбиение
    • 203 11.2 Сбалансированное приведение
    • 207 11.3 Слияние
    • 212 11.4 Резюме
  • 213 Глава 12. Составные объекты
    • 213 12.1 Простые составные объекты
    • 220 12.2 Динамические последовательности
    • 227 12.3 Основополагающий тип
    • 230 12.4 Резюме
  • 231 Послесловие
  • 235 Глава А. Математическая система обозначений
  • 237 Глава В. Язык программирования
    • 237 8.1 Определение языка
    • 244 8.2 Макросы и характеристические структуры
  • 246 Литература
  • 250 Предметный указатель

Инструкция как скачать книгу Александр Степанов, Пол Мак-Джонс: Начала программирования в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Начала программирования
Рейтинг книги:
2 голоса
949

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: