Непейвода Н.Н. Программирование. Раздел 2

Непейвода Н.Н. Программирование. Страница 143

Еще один возможный случай, когда часть, ясно осознанная програм­мистом, состояний внешней программы может быть интерпретирована как гомоморфный образ части (опять же, явно выделенной) состояний ком­поненты (серый ящик). Тогда компоненту можно даже модифицировать, т. е. возможно переиспользование как фрагмента либо шаблона. Но прие­мы установления гомоморфизма между состояниями — та высокоуровневая надстройка над программированием от состояний, которая пока еще не со­здана, и поэтому здесь программист в высшей степени зависит от качества содержательного концептуального анализа.

Как ни странно, немногим лучше приспособлено к сочетанию со стилем переиспользования структурное программирование. Требования к структу­ре информационного пространства задачи и к согласованию с ним других компонентов программы обеспечивают регламентированные связи между подзадачами, а значит, облегчается (но не исчезает) задача выделения са­мостоятельных компонентов. В дополнение к полностью самостоятельным переиспользуемым компонентам здесь можно указать на переиспользование, при котором в новом применении обеспечивается необходимая часть контек­ста (т. е. переиспользуется компонент и эта часть контекста; смотри модули языков Modula 2 и ObjectPascal). Модули можно рассматривать как серые ящики для структурного программирования. Возможности модуляризации достаточно хорошо исследованы и корректно реализованы в упомянутых выше языках.

Следует отметить, что для рассмотренных случаев задача переисполь­зования достаточно часто требует модификации того, что предоставляется. Рассмотрим простейший пример, который не выходит за рамки переисполь­зования черного ящика. Функция вычисления квадратного корня определена только для неотрицательных аргументов. Вопрос: нужна ли в переиспользу­емой подпрограмме вычисления этой функции проверка? С одной стороны, она повышает надежность программирования, но с другой — оказывается избыточной, когда точно известно (можно доказать), что аргумент боль­ше нуля. В рамках традиционной техники простых механизмов отключения проверки быть не может, поскольку все они нарушают принцип черного ящика. В императивных языках подобные многовариантные подпрограммы традиционно трактуются как нарушающие обозримость систем приказов.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама