КнигоПровод.Ru22.11.2024

/ИТ-книги

Этюды для программистов — Уэзерелл Ч.
Этюды для программистов
Уэзерелл Ч.
год издания — 1982, кол-во страниц — 288, тираж — 75000, язык — русский, тип обложки — твёрд. 7Б тканев., масса книги — 350 гр., издательство — Мир
КНИГА СНЯТА С ПРОДАЖИ
Сохранность книги — хорошая

Etudes for programmers
Charles Wetherell
Computing Science Group
Dept. of Applied Science
University of California, Davis

Prentice-Hall, Inc.
Englewood Cliffs, New Jersey
1978


Пер. с англ. Н. И. Вьюковой, В. А. Галатенко, А. О. Лациса, А. Н. Полюдова, А. Б. Ходулева

Формат 60x90 1/16. Бумага типографская №2. Печать высокая
ключевые слова — программирован, моделирован, вычислен, интеллект, компилятор, суперкомпьютер, cray, мегабайт, операционн, интерпретатор, макропроцессор, программис, клеточн, автомат, машинн, раскрашиван, поиск, эвристическ, автоматическ, избыточност, файл, тьюринг, шифр

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

Для всех, кто преподаёт и изучает программирование.

Своим внешним видом новый суперкомпьютер CRAY-1 мало похож на привычную всем нам вычислительную машину. Это круглый диван с высокой спинкой и мягкими кожаными сиденьями. До предела набитый электроникой, самый дорогой в мире «диванчик» вправе претендовать на включение в «Книгу рекордов Гиннеса». Но, конечно, дело не в форме, а в содержании. Машина выполняет сотни миллионов операций в секунду, и разговор о миллиардах операций уже не воспринимается как лишённая здравого смысла фантазия.

А как изменилось программирование! Никого теперь не удивить программой из одной-двух тысяч команд, когда счёт идёт на мегабайты. Операционные системы, разного рода АСУ — поистине монументальные произведения, настоящие симфонии из мириад нулей и единиц. И в такой симфонии не должно прозвучать ни одной фальшивой ноты, а ведь пишут её порой сотни людей — программирование становится массовой профессией.

Как же в этих новых условиях учить и как учиться программировать? Существуют, конечно, задачники по программированию, в которых в достатке найдётся примеров-миниатюр. Но, написав программу для вычисления квадратного корня, можно ли браться за разработку компилятора? Уготовано ли блестящее музыкальное будущее тому, кто преодолел только гаммы и сольфеджио? В 1978 г. издательство «Мир» выпустило два учебных пособия по программированию (Ламуатье Ж.-П. Упражнения по программированию на Фортране IV; Дрейфус М., Ганглоф К. Практика программирования на Фортране), совершенно не похожих на прежние задачники. В них демонстрируется работа над небольшими программами с подробным обсуждением всех этапов работы. Книги оказались чрезвычайно полезными для начального обучения и в ряде вузов были немедленно использованы в учебном процессе. Но как далёк ещё путь от камерной пьесы к симфонии!

Книга Ч. Уэзерелла призвана заполнить ещё одну «экологическую нишу» в учебной литературе по программированию. В книге в живой и увлекательной форме ставится 27 вполне реальных (или близких к реальным) задач-этюдов. Напомним, как определяется этюд в энциклопедическом словаре: «Этюд — музыкальная пьеса, основанная на определённом приёме исполнения и предназначенная для развития технического мастерства исполнителя. Создаются и высокохудожественные виртуозные сочинения этого жанра, предназначенные для концертного исполнения (фортепианные этюды Ф. Листа, Ф. Шопена, Р. Шумана и др.)». Действительно, почти каждый представленный здесь этюд несёт в себе свою «изюминку»: структуры данных или управляющие структуры, обработку текстов или рекурсию… И почти каждый из них может служить заданием для курсовой работы. Есть, однако, столь «высокохудожественные» этюды (компилятор для алгебраического языка или интерпретатор-макропроцессор), что не всякий преподаватель осмелится предложить их даже в качестве дипломной работы.

Разумеется, не только студенты, но и опытные программисты с пользой и интересом прочтут книгу, обнаружив в ней немало советов, соображений, приёмов. Я уже не говорю о том, что этюды будут хорошим подспорьем для преподавателей программирования. По манере изложения книгу можно было бы отнести к разряду научно-популярных. Эта особенность, несомненно, привлечёт к ней внимание многих читателей, далёких от программирования. Рекомендуя книгу Ч. Уэзерелла для перевода, чл.-корр. АН СССР А. П. Ершов отметил ещё один важный момент: «Перевод этой книги полезен и сам по себе, и как побудительное средство к дальнейшему составлению подобного рода сборников задач по программированию».

Неординарность книги создала определённые трудности при её переводе. В каждой главе — своя тема, своя ситуация. Рассматривая ситуации, автор не связывает себя формальными рамками, да и самим ситуациям, заимствованным из американской жизни, не всегда находятся аналоги в нашей действительности. Переводчикам Н. И. Вьюковой, В. А. Галатенко, А. О. Лацису, А. Н. Полюдову и А. Б. Ходулеву помимо обычной переводческой деятельности пришлось заняться исполнительской практикой: некоторые этюды были проиграны, у некоторых проверены приведённые ответы. Там, гдe это необходимо, были даны примечания или добавлены партии переводчика, а библиография дополнена изданиями, доступными советскому читателю.

А вы ноктюрн сыграть могли бы?
или… ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Февраль 1982 г.
Ю. Баяковский

ОГЛАВЛЕНИЕ

А вы ноктюрн сыграть могли бы?
или Предисловие редактора перевода5
 
Предисловие9
 
1. Что бы это значило?
или Как читать книгу12
 
2. Жизнь диктует свои законы,
или Клеточные автоматы и машинная графика19
 
3. Папочка, а почему море синее?
или Раскрашивание карты методом исчерпывающего поиска23
 
4. Печатник-подмастерье,
или Автоматическое форматирование текста27
 
5. Победителей судят,
или Составление и оценка турнира40
 
6. Финансовые воротилы,
или Управление предприятиями и машинное моделирование46
 
7. Крисс-кросс,
или Эвристическое составление головоломки55
 
8. Тезей,
или Автоматическое построение лабиринтов57
 
9. Познай самого себя,
или Программа, печатающая собственный исходный текст59
 
10. Не прячьте ваши денежки,
или Расчёт дохода от вложенного капитала60
 
11. Меньше сору — меньше и вздору,
или Избыточность текста и сжатие файла63
 
12. В духе добрососедства,
или Домашняя бухгалтерия69
 
13. Тур по Тьюрингу,
или Моделирование машины Тьюринга71
 
14. Машинные забавы,
или Стратегия компьютера при игре в калах76
 
15. Проще простого,
или Поиск узоров из простых чисел88
 
16. Горючие слёзы,
или Учёт расхода бензина92
 
17. Тише едешь — дальше будешь,
или Моделирование движения на автостраде95
 
18. Читаем, пишем, считаем,
или Конструирование интерпретатора форматов99
 
19. Пиковое положение,
или Статистика пасьянсов107
 
20. Квадратный трёхчлен,
или Пакет для алгебраических вычислений114
 
21. Превратное обратное,
или Ошибки при работе с плавающей точкой121
 
22. πэр Квадрат,
или Арифметические вычисления с высокой точностью125
 
23. Великий комбинатор,
или Оптимальные стратегии для игры с угадыванием140
 
24. Секрет фирмы,
или Математический подход к раскрытию шифров144
 
ТЕМЫ ДЛЯ КУРСА ПО КОМПИЛЯТОРАМ158
 
25. Уча — учимся,
или Моделирование большого компьютера159
 
26. Пища для УМа,
или Связывающий загрузчик188
 
27. Мал золотник…,
или Компилятор для алгебраического языка220
 
28. Новый атТРАКцион,
или Построение интерпретатора языка Трак220
 
РЕШЕНИЯ237
 
29. Красьте с нами,
или Полное решение задачи238
 
30. Сжатые строки,
или Программа уплотнения текстов257
 
Именной указатель284
Предметный указатель285

Книги на ту же тему

  1. Дисциплина программирования, Дейкстра Э., 1978
  2. Введение в теоретическое программирование (беседы о методе), Ершов А. П., 1977
  3. История информатики в России: учёные и их школы, Захаров В. Н., Подловченко Р. И., Фет Я. И., сост., 2003
  4. Жемчужины программирования. 2-е издание, Бентли Д., 2002
  5. Отъявленный программист: лайфхакинг из первых рук, Савчук И., 2016
  6. Практика программирования на Фортране: Упражнения с комментариями, Дрейфус М., Ганглоф К., 1978
  7. Начальный курс C и C++, Березин Б. И., Березин С. Б., 2001
  8. Индивидуальная отладка программ, Безбородов Ю. М., 1982
  9. Язык программирования Эль-76. Принципы построения языка и руководство к пользованию. — 2-е изд. испр. и доп., Пентковский В. М., 1989

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru