Математика

Физика

Химия

Биология

Техника и    технологии

Дисциплина программирования-Э.Дейкстра Москва 1978 стр.275
Дисциплина программирования-Э.Дейкстра Москва 1978 стр.275

Книга написана одним из крупнейших зарубежных специалистов в области программирования, известным советскому читателю по переводам его книг на русский язык (например, «Структурное программирование», «Мир», 1972). Она посвящена фундаментальным вопросам конструирования корректных и изящных программ для ЭВМ. В ней предлагается методика формального вывода программы из математической постановки задачи. При этом прослеживается развитие алгоритмов вплоть до создания программ. Материал излагается в форме остроумных и поучительных задач по программированию.
Книга представляет значительный интерес для широкого круга программистов.
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Программирование богато и многообразно. Ведь кажется нет такой сферы человеческой деятельности, где нельзя было бы с пользой применить вычислительную машину для оценки, информационно-справочного обслуживания, планирования, моделирования и т. п. И это многообразие задач переходит в многообразие программ, которые должны разрабатывать программисты. Они пытаются справиться с этим многообразием, «заключив» его в проблемно-ориентированные языки программирования. Языки вбирают в себя специфические черты конкретных сфер программирования — характерные структуры данных, принципы организации типичных процессов, соответствующую терминологию — и таким образом делают сам процесс программирования более универсальным. Одновременно они освобождают программистов от необходимости детализировать программы до уровня слишком мелких машинных команд и даже от необходимости знать особенности конкретных вычислительных машин. Более того, операционные системы призваны превратить вычислительные машины из предмета постоянного беспокойства в «существа», которые сами заботятся о программисте и готовы оказывать всяческие услуги ему и его программе.
И тем не менее, после того, как любая более или менее сложная задача сформулирована (пусть даже в адекватных и удобных терминах) и машина выбрана (пусть даже в самом деле готовая к всевозможным услугам), каждый программист снова и снова остается один на один со своей собственной задачей: ему нужно составить программу! Выбрать, как именно следует расположить и связать данные в памяти, понять, какая именно последовательность операторов, — способных сделать все что угодно и оттого одновременно и податливых и опасных — выполнит поставленную задачу. И как организовать эти операторы в цикл, который будет с каждым шагом приближать машину к намеченной цели. Выбрать, понять, изобрести, проверить, усомниться и повторить все сначала.
ОГЛАВЛЕНИЕ
Предисловие редактора перевода .................. 5
Предисловие.......... .'................. 8
От автора............................. "
0. Абстракция исполнения.................... 17
1. Роль языков программирования................. 24
2. Состояния и их характеристика................. 27
3. Характеристика семантики................... 34
4. Семантическая характеристика языка программирования . . . '1-5
5. Две теоремы.......................... 62
6. О проектировании правильно завершаемых конструкций..... 66
7. Пересмотренный алгоритм Евклида............... 70
8. Формальное рассмотрение нескольких небольших примеров ... 77
9. Когда недетерминированность ограничена ,........... Ю4
- 10. Размышлений на тему. «Область действия переменных» . . . .111
11. Векторные переменные..................... 131
12. Теорема о линейном просмотре................. 145
13. Задача о следующей перестановке................ 147
14. Задача о голландском национальном флаге........... 151
15. Обновление последовательного файла.............. 1?8
16. Еще раз о задачах слияния................... 165
17. Упражнение, приписываемое Р. У. Хэммингу........ 172
18. Задача поиска по образцу................... 178
19. Представление числа в виде суммы двух квадратов....... 184
20. Задача о наименьшем простом множителе большого числа . . . 187
21. Задача о самых удаленных селениях............. 194
22. Задача о кратчайшем покрывающем дереве........... 199
23. Алгоритм Рема выделения классов эквивалентности....... 208
24. Задача о выпуклой оболочке в трехмерном пространстве .... 217
25. Нахождение максимально сильных компонент в ориентированном графе.............................. 245
26. О руководствах и реализациях................. 256
27. Ретроспективы......................... 265

Цена: 150руб.

Назад

Заказ

На главную страницу

Hosted by uCoz