8.2. ИМЕНОВАНИЕ ПРОЦЕДУР
371
Отмеченное ранее разграничение того, что делает модуль, и как он это дела-
ет, указывает на повышение уровня абстрактности при совместном описании
процедур в рамках единого модуля.
В
С/С++
средства модуляризации программ связываются с понятием за-
головочного (header) файла, в котором явно описывается, что предоставляет-
ся модулем (текстовым файлом), озаглавленным этим заголовочным файлом.
Все остальное является локальным для данного модуля
3
.
В стандартном языке
Pascal
средства модуляризации программ, позволя-
ющие объединять описания процедур и функций, отсутствуют. Можно ска-
зать, что язык предоставляет возможность модуляризации только на уровне
операционных единиц,т. е.он допускает лишь отдельные описания процедур
и функций. Это препятствует повышению уровня абстрактности программ,
делает невозможным осуществление контроля выполнения регламента ис-
пользования данных, имеет ряд других отрицательных следствий. Для улуч-
шения языка в данном отношении системы программирования расширяют
стандартный
Pascal
, вводя в него средства модуляризации. Что касается ис-
пользования стандартного языка
Pascal
, то он практически вышел из употре-
бления. Если же приходится его использовать, то модульность имитируется
при помощи организационных мер: выбор имен, специальное расположение
текстов программ при распечатке, комментирование. Впрочем, такого рода
моделирование — обычное дело программиста, когда нет желаемых средств
в используемом языке либо системе.
Для профессиональной разработки алгоритмов и реализации их на языке
необходимо научиться не только описывать свои подпрограммы, но и приме-
нять и перестраивать при необходимости чужие, овладеть практически все-
ми возможностями, предоставляемыми инструментальным языком в части
оперирования с процедурами.
§ 8.2. ИМЕНОВАНИЕ ПРОЦЕДУР
Одним из основных средств языка, без которого невозможно использо-
вание процедур, является именование, т. е. обозначение процедуры именем,
замещающим ее алгоритм при использовании.
Когда языки программирования были преимущественно машинными язы-
3
Вообще говоря, это противоречит определению в стандарте языка препроцессора, как
программы, встраивающей вместо
#include
текст включаемого файла; все становится на
свои места, когда в
С++
строго определяется понятие пространства имен
namespace
.