Как проектировать программы [Маттиас Фелляйзен] (pdf) читать постранично

-  Как проектировать программы  [Введение в программирование и компьютерные вычисления] (пер. А. Н. Киселев) 10.78 Мб, 726с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Маттиас Фелляйзен - Мэтью Флэтт - Роберт Брюс Финдлер - Шрирам Кришнамурти

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

RESCUER

Маттиас Фелляйзен
Роберт Брюс Финдлер
Мэтью Флэтт
Шрирам Кришнамурти

Как проектировать
программы

How to Design Programs
An Introduction to Programming and
Computing
Second Edition

Matthias Felleisen
Robert Bruce Findler
Matthew Flatt
Shriram Krishnamurthi

The MIT Press
Cambridge, Massachusetts
London, England

Как проектировать программы
Введение в программирование
и компьютерные вычисления

Маттиас Фелляйзен
Роберт Брюс Финдлер
Мэтью Флэтт
Шрирам Кришнамурти

Москва, 2022

УДК 004.2
ББК 32.97
Ф37

Фелляйзен М., Финдлер Р. Б., Флэтт М., Кришнамурти Ш.
Ф37 Как проектировать программы / пер. с англ. А. Н. Киселева; под ред.
П. Б. Иванова, А. Д. Чичигина, Ю. А. Сыровецкого, С. В. Бронникова. – М.:
ДМК Пресс, 2022. – 724 с.: ил.
ISBN 978-5-97060-926-2
Эта книга повествует о методах «хорошего программирования» – то есть о таком
подходе к созданию программного обеспечения, который опирается на системное
мышление, планирование и понимание задач разработчика на каждом этапе.
В числе рассматриваемых тем – фундаментальные понятия систематического
проектирования, типы данных, способы записи объемных данных, создание
и использование абстракций, тестирование программ и функций и др.
Издание адресовано профессионалам и энтузиастам программирования, не
имеющим прежнего опыта систематического проектирования программ, а также
преподавателям технических вузов, которые могут использовать представленный
материал в рамках учебного курса.

УДК 004.2
ББК 32.97

The rights to the russian launguage edition obtained thougth Alxander Korgzhenevski Agency
(Moscow). All rights reserved.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения
владельцев авторских прав.

ISBN 978-0-26253-480-2 (англ.)
ISBN 978-5-97060-926-2 (рус.)

© Massachusetts Institute of Technology, 2018
Illustrations © Torrey Butzer, 2000
© Перевод, оформление, издание, ДМК Пресс, 2022

Содержание
От редакторов..................................................................................................................... 10
От издательства.................................................................................................................. 11
Вступление.......................................................................................................................... 12
Пролог: как писать программы........................................................................................ 29

I

Д АННЫЕ ФИКСИРОВАННОГО РА ЗМЕРА .........................................55

1

Арифметика. ............................................................................................................... 56
1.1. Арифметика чисел................................................................................................ 57
1.2. Арифметика строк................................................................................................ 59
1.3. А теперь все смешаем........................................................................................... 61
1.4. Арифметика изображений................................................................................... 63
1.5. Арифметика логических значений...................................................................... 66
1.6. Смешанные операции с логическими значениями........................................... 67
1.7. Предикаты: знай свои данные.............................................................................. 69

2

Функции и программы. ............................................................................................. 72
2.1. Функции................................................................................................................. 72
2.2. Вычисления........................................................................................................... 76
2.3. Композиция функций........................................................................................... 80
2.4. Глобальные константы.......................................................................................... 83
2.5. Программы............................................................................................................ 85

3

Как проектировать программы................................................................................ 98
3.1. Проектирование функций.................................................................................... 99
3.2. Практические упражнения: функции.................................................................106
3.3. Знание предметной области...............................................................................106
3.4. От функций к программам..................................................................................107
3.5. О тестировании....................................................................................................108
3.6. Проектирование интерактивных программ......................................................110
3.7. Миры виртуальных питомцев.............................................................................120

4

Интервалы, перечисления и детализация.............................................................122
4.1. Программирование с условиями........................................................................122
4.2. Условные вычисления..........................................................................................124
4.3. Перечисления.......................................................................................................127
4.4. Интервалы............................................................................................................131
4.5. Детализация.........................................................................................................135
4.6. Проектирование с использованием детализации.............................................143
4.7. Миры с конечными состояниями........................................................................146

5

Добавляем структуру................................................................................................154
5.1. От позиций к структурам posn............................................................................154
5.2. Вычисления со структурами posn.......................................................................155
5.3. Программирование с