Инструменты пользователя

Инструменты сайта


ru:literature:способ_мышления_-_форт

Способ мышления -- Форт

Язык и философия для решения задач

Лео Броуди

Перевод с английского С.Н.Дмитренко МОСКВА 1993

Предисловие

Программирование компьютеров может свести с ума. Другие профессии дают Вам прекрасные возможности наблюдать осязаемые результаты Ваших усилий. Часовщик может смотреть на свои зубчики и колесики, швея - на швы, ровно ложащиеся после каждого взмаха иглы. Но программист проектирует, строит и ремонтирует нечто воображаемое, призрачные механизмы, ускользающие от восприятия органами чувств. Наша работа происходит не в ОЗУ, не в программе-редакторе, а внутри нашей головы.

Построение моделей в воображении привлекает и доставляет удовольствие программисту. Как же лучше к этому подготовиться? Вооружиться самыми хорошими отладчиками, декомпиляторами и дизассемблерами? Они помогают, однако самые существенные из технологий и инструментов - умственные. Нам нужна последовательная и практическая методология для мышления на тему задач программирования. Это и составляет суть того, что я попытался выразить в моей книге. «Способ мышления …» предлагается всем, кто заинтересован в написании программ для решения конкретных задач. Книга рассматривает вопросы проектирования и применения: принятие решений о том, что Вам нужно сделать, разработка компонентов системы и, наконец, построение системы.

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

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

Если Вы хотите узнать больше о Форте, другая моя книга - «Начальный курс программирования на языке Форт» - содержит сведения об этом языке. Кроме того, такие сведения приводятся в приложении А данной книги.

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

Многие мысли в этой книге не являются научными. Они основаны на субъективном опыте и наблюдениях за самим собой. По этой причине я привел в книге интервью с большим количеством профессионалов, работающих на Форте, и не все из них полностью согласны друг с другом или со мной. Все эти мнения могут изменяться изготовителем без специального уведомления. В книге вносятся также предложения, называемые «советами». Подразумевается, что им следует внимать лишь тогда, когда они соответствуют Вашей ситуации. В Форт-мышлении нет нерушимых правил. Для обеспечения возможно большего соответствия возможным Форт-системам все примеры программ в книге соответствуют стандарту Форт-83.

Личность, в сильной степени повлиявшая на эту книгу - это человек, придумавший Форт - Чарльз Мур. В дополнение к нескольким дням, проведенным за интервьюированием его для книги, я имел возможность понаблюдать его за работой. Он - хозяин своего дела, двигающийся в нем быстро и искусно так, как будто он физически реализует концептуальные модели внутри машины - строя, оттачивая, обыгрывая. Он обходится минимумом инструментов (результат продолжающейся борьбы против внутренней сложности) и немногими ограничениями, дополняющими те, которые накладываются его собственной технологией. Я надеюсь, что эта книга уловила что-то из его мудрости. Пользуйтесь!

Оглавление

Глава Стр
Содержание ii
Список примеров программ iv
От переводчика v
Предисловие viii
Глава 1. Философия Форта 1
Сказание об истории элегантности программ 1
Поверхностность структуры 16
Взгляд назад, вперед и на Форт 17
Программирование на уровне компонентов 19
От кого прятать? 23
Упрятывание конструкции структур данных 24
Но высокоуровневый ли это язык? 26
Язык проектирования 28
Производительный язык 29
Итоги 31
Литература 32
Глава 2. Анализ 33
Девять фаз цикла программирования 33
Итеративный подход 34
Объем планирования 36
Ограничения планирования 39
Фаза анализа 42
Определение интерфейсов 45
Определение правил 50
Определение структур данных 59
Достижение простоты 59
Соблюдение бюджета и графика 64
Смотрины для концептуальной модели 66
Литература 66
Глава 3. Предварительный проект / декомпозиция 67
Декомпозиция по компонентам 67
Пример: Крошечный Редактор 70
Поддержка задачи, основанной на компонентах 74
Проектирование и поддержка задачи при традиционном подходе 76
Интерфейсный компонент 81
Разбиение по последовательным уровням сложности 85
Ограниченность мышления по уровням 87
Резюме 92
Для дальнейшего размышления 93
Глава 4. Детализированная разработка/решение задачи 96
Техника решения задач 97
Интервью с изобретателем-программистом 103
Детализированная разработка 105
Синтаксис Форта 106
Алгоритмы и структуры данных 115
Расчеты или структуры данных или логика 116
Решение задачи: вычисление римских цифр 118
Итоги 132
Литература 132
Глава 5. Разработка: элементы Форт-стиля 133
Организация листингов 134
Оформление блока 144
Соглашения по комментариям 149
Вертикальный формат записи против горизонтального 161
Выбор имен: искусство 164
Стандарты при выборе имен: наука 170
Еще советы по читабельности 171
Итоги 173
Литература 173
Глава 6. Фрагментация 174
Техника факторизации 174
Критерии для фрагментации 181
Факторизация при компиляции 193
Итеративный подход при реализации 198
Итоги 202
Литература 202
Глава 7. Работа с данными: стеки и состояния 203
Шикарный стек 203
Шикарный стек возвратов 213
Проблема переменных 214
Локальные и глобальные переменные / инициализация 217
Сохранение и восстановление состояния 218
Внутренние стеки программ 220
Совместное использование компонентов 221
Таблица состояния 223
Векторизованное исполнение 228
Использование DOER/MAKE 232
Итоги 235
Литература 236
Глава 8. Минимизация структур управления 237
Что же такого плохого в структурах управления 237
Как устранять структуры управления 242
Выбор структур управления 248
Итоги 275
Литература 275
Эпилог: Воздействие Форта на мышление 276
Приложение А: Обзор Форта (для новичков) 279
Приложение Б: Определение DOER/MAKE 283
Приложение В: Другие утилиты, описанные в этой книге 289
Приложение Г: Ответы на задачи «для дальнейшего размышления» 291
Приложение Д: Свод стилистических соглашений 293

СПИСОК ПРИМЕРОВ ПРОГРАММ

ПРОГРАММА N СТРАНИЦЫ
Яблоки 24 - 26
Телефонные тарифы
Крошечный редактор
Цвета
Римские числа
Рисование квадратиков
Банкомат

Ссылки

ru/literature/способ_мышления_-_форт.txt · Последнее изменение: 2015-08-25 17:53 — kzagradskiy