Простота программы обычно связана с ее функциональностью, устойчивостью, скоростью и объемом. Деннис Ритчи (Dennis Ritchie) и Кеп Томпсон (Кеп Thompson) разработали операционную систему Unix па компьютере с памятью объемом 8192 18-битных слов. В их статье о новой системе было сказано: «На систему и программное обеспечение были наложены весьма жесткие ограничения.
Учитывая противоречивые стремления к разумной эффективности и выразительности средств, ограничение на размер системы стимулировало не просто экономию памяти, но определенную элегантность и стройность схемы».
Фред Брукс почувствовал эффективность простых решений, когда писал программу расчета заработной платы для крупной компании в середине 50-х. Узким местом программы было представление данных о подоходном налоге в штате Кентукки. В законе тарифы определялись с помощью таблицы, в которой по вертикали откладывался доход, а по горизонтали — льготы. Хранение таблицы в явном виде требовало тысячи слов памяти, что превосходило возможности компьютера.
Сначала Брукс попробовал решить проблему, попытавшись подобрать математическую функцию, которая описывала бы зависимость тарифа от аргументов, но данные изменялись настолько неравномерно, что никакая простая функция тут бы не подошла. Зная, что таблица была составлена членами законодательного собрания, у которых не могло быть пристрастия к заумным математическим функциям, Брукс обратился за сведениями к одному из них, чтобы понять, каким именно образом была составлена эта хитрая таблица. Он обнаружил, что налог штата Кентукки представлял собой простую функцию дохода, остававшегося после отчисления федерального налога. Тогда он написал программу, которая вычисляла федеральный налог по имевшимся таблицам, а затем использовала оставшийся доход и таблицу из нескольких десятков машинных слов для вычисления требуемого налога штата Кентукки.
Изучив контекст возникновения задачи, Брукс смог заменить исходную задачу более простой. На решение исходного варианта требовалось несколько тысяч слов, тогда как упрощенная задача была решена с использованием минимального объема памяти.
Простота может уменьшить и объем кода. В главе 3 приведены примеры больших программ, которые были заменены маленькими с более подходящими структурами данных. В этих примерах упрощение программы позволило уменьшить объем кода с тысяч до сотен строк, причем исполняемый модуль, вероятно, также уменьшился в объеме где-то на порядок.
Опубликовал vovan666
April 17 2013 00:01:31 ·
0 Комментариев ·
4103 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.