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

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

Сделаем еще три замечания, характеризующих некоторые тонкости мо­дульного программирования.

Во всех модульных расширениях языка Pascal возникает общая пробле­ма конфликта имен. Если один и тот же идентификатор описан в несколь­ких модулях, используемых программой, то транслятор должен разрешать конфликт имен. Конечно же, есть соглашение по умолчанию, какое по по­рядку описание считается главным, но им мы решительно не рекомендуем пользоваться. Любое имя, встретившееся в модуле, может быть однозначно специфицировано как

ThisUnit. Identifier

Этим лучше всего пользоваться, а для сокращения записи можно применить конструкцию

with ThisUnit do begin ... end;

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

Если два модуля разрабатываются совместно, то каждый из них может имет в своем оператореusesссылку на другой. Это не считается ошибкой, лишь если открытая структура зависимостей модулей остается сетью (гра­фом без циклов). Поэтому целесообразно обе перекрестные ссылки упрятать в разделimplementation.

Если обратиться к задаче спецификации предоставляемых модулем средств, то придется констатировать, что возможности TURBO Pascal^ вер­сии 5.0 в этом отношении очень ограничены. Нет никакой поддержки неза­висимого от реализации описания, и, как следствие, документация оказыва­ется отделена от программы. Впрочем, этим же недостатком страдают и все последующие языки линии TURBO Pascal и ObjectPascal. Единственное, что они могут предложить, — это рецепт использовать мнемоничные имена. А этого явно недостаточно. Из нашего примера видно, что если бы мы ре ализовывали не очередь, а стек, то интерфейсная часть модуля отличалась бы только именами. Чтобы можно было увидеть, что именно реализовано в модуле, программист должен позаботиться о соответствующем описании дополнительно. Здесь и ему, и пользователю его модуля придется обратить­ся к призракампеременным, призракампроцедурам или к иным призракам составляемой программы.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама