Cтраница 2
Скрытые типы из модуля определений должны быть объявлены в соответствующем модуле реализации. [16]
Определение процедуры в модуле определений содержит просто заголовок процедуры ( см. разд. Заголовок определяет параметры процедуры, а также тип результата для процедур-функций. [17]
В этом приложении находятся модули определения из модулей библиотек Standard и Utility фирмы Volition Systems. Эти модули составляют библиотечные программы, совпадающие с рекомендациями Вирта для стандартных элементов библиотеки. [18]
Естественно, если изменяется модуль определений, то должен перекомпилироваться и соответствующий модуль реализации. [19]
В предыдущей главе представлен модуль определений для кольцевого буфера. [20]
Эта информация находится в модуле определений для InOut ( разд. Он информирует нас, что имеется процедура UriteCard, что первый параметр WriteCard - выводимое число типа CARDINAL, а второй параметр - длина выводимого текста. [21]
Эти данные используются в модуле определения категории ( МК) нештатной ситуации для установления факта, является ли данная НшС аварийной или нет. [22]
Все, что определено внутри модуля определений, автоматически экспортируется. Этот экспорт перебрасывается во внешний мир, в непредсказуемое море имен. Таким образом, автоматический экспорт действует как квалифицируемый экспорт. [23]
Далее приводится синтаксическая диаграмма для модуля определений. [24]
Это обсуждение подводит нас к модулям определения и модулям реализации. Библиотечные модули, как выясняется, на самом деле состоят из двух частей. Первая представляет собой модуль определения. Именно здесь определяются и объявляются списки экспорта и идентификаторы экспортируемых объектов. Откомпилированный модуль определения - это то, что должно быть доступно программе-клиенту, когда она компилируется. Вторая часть библиотечного модуля называется модулем реализации. В этом модуле содержится собственно текст программы, реализующий экспортированные процедуры и функции. [25]
Иногда информации, содержащейся в модуле определений, недостаточно. Если возможно, вы можете обратиться к модулю реализаций, чтобы понять, как в действительности он работает. Однако часто коммерческие системы Модулы-2 поставляются без исходных текстов модулей реализаций. Первоначально я считывал числа, используя процедуру Readlnt из модуля InOut. К сожалению, оказалось, что знаки плюс н минус, стоящие перед выражениями в скобках, пропадали. [26]
Каждый заголовок процедуры, входящий в модуль определения, должен встречаться в модуле реализации. Это означает, в частности, повторение списка формального параметра в точности в том же виде, в каком он входил в модуль определения. Для программиста, писавшего на Паскале, это будет изменением, поскольку он имел дело с размещаемыми ранее объявлениями или знаком с разницей в заголовках процедур между разделами интерфейса и реализации объектов в некоторых расширениях Паскаля. Наоборот, никакие другие объявления модуля определения не могут повторяться в модуле реализации. [27]
Очевидно, что заголовок процедуры в модуле определений должен согласовываться с ее полным описанием в модуле реализации. Если параметры ( или результат) экспортируемой процедуры имеют локально определенные типы, то такие типы должны экспортироваться раздельно. [28]
Корректность реализации функций, объявленных в модуле определений, следует рассматривать двояким образом. [29]
Остается еще одна требующая рассмотрения уникальная черта модулей определения. Обычно объявление типа будет соответствовать обычному синтаксису объявления, который встречался нам до сих пор. [30]