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

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


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
- iii -

Глава 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 - iv - |

Глава 8. Минимизация структур управления

   | 237

Что же такого плохого в структурах управления | 237 Как устранять структуры управления | 242 Выбор структур управления | 248 Итоги | 275 Литература | 275

Эпилог: Воздействие Форта на мышление

       | 276

| Приложение А: Обзор Форта (для новичков) | 279 Приложение Б: Определение DOER/MAKE | 283 Приложение В: Другие утилиты, описанные в этой книге| 289 Приложение Г: Ответы на задачи «для дальнейшего размышления» | 291 Приложение Д: Свод стилистических соглашений | 293

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

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

Ссылки

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