Cтраница 3
Еще многое будет сказано о специфике синтаксиса модуля определения. Чтобы помочь в этом описании, на распечатке 8.12 приведен пример модуля определения. [31]
В обычных ситуациях единственно возможные ошибки в модуле определений - синтаксические или ошибки проектирования. Модули определений не содержат алгоритмов и обычно не являются источниками ошибок. В больших проектах задача разбивается на отдельные подзадачи, и между ними разрабатывается интерфейс. Затем этот интерфейс переводится в модули определений и компилируется перед началом реализации проекта. Эти модули определений могут быть неполными или плохо спроектированными, но, по всей вероятности, они не содержат неуловимых ошибок, которые проявятся лишь много времени спустя, когда авторы программ приступят к возделыванию новой целины. [32]
Мы, программисты, могли бы быть удовлетворены модулями определений, содержащими только комментарии, указывающие на сервис, доступный в соответствующем модуле реализации. Все, что мы реально желаем знать, - это как можно использовать сервис модуля реализации. Однако компилятор требует точного определения, какие процедуры, типы, переменные и константы экспортируются. Включение точных определений позволяет компилятору проверить использование экспортируемых объектов. [33]
Модуль реализации должен разрабатываться в соответствии с его модулем определений. Константы, переменные и прозрачные типы, объявленные в модуле определений, становятся автоматически доступны в соответствующем модуле реализаций глобального модуля. [34]
Константы, переменные и типы, объявленные в модуле определений, должны использоваться в модуле реализации в соответствии с их описаниями. [35]
Сервис, предоставляемый модулем InOut, описан в модуле определений InOut. [36]
Любая переменная, константа или тип, определенные внутри модуля определений, автоматически становятся частью соответствующего модуля реализации. С другой стороны, объект, импортированный в модуль определений, не становится автоматически доступен внутри соответствующего модуля реализации. Если объект, импортированный в модуль определений, требуется и в соответствующем модуле реализации, он должен быть явно импортирован в оба модуля. [37]
Как вы, вероятно, догадались, основная роль модуля определений - определить общедоступные элементы данного модуля. [38]
Если модуль А импортирует что-нибудь из модуля Б, то модуль определений для Б должен компилироваться перед модулем А. Очевидно, что модули определений должны компилироваться вначале, поскольку, пока не скомпилированы модули определений, невозможна обработка модулей реализации. [39]
Причина состоит в том, что процесс компиляции включает объявления модуля определения в модуле реализации. [40]
Чтобы проиллюстрировать типы необходимых функций, мы представляем на распечатке 9.5 модуль определения для небольшого библиотечного модуля процедур электронно-лучевой трубки. Этот набор функций не составляет даже необходимого минимума, но показателен. Эти функции были выбраны из модуля, содержащего более 40 экранных операций, и применяются в процессе обработки текстов программы, представленной в гл. Модуль на распечатке 9.5 имеет достаточное количество комментариев, чтобы быть понятным. [41]
Напомним, что, когда мы рассматривали списки экспорта в разделе модуля определения, экспорт с описанием QUALIFIED был обязателен для модулей определения и необязателен для локальных модулей. Локальный модуль А использует неуточненную форму экспорта для экспорта обеих своих переменных. [42]
Давайте начнем с того, что отметим, какие из допустимых элементов модуля определения отсутствуют на распечатке 8.12. Во-первых, нет списка импорта. С целью минимизации взаимосвязей между программами и тем самым повышения надежности программы модуль определения должен импортировать лишь те объекты, которые ему нужны. В нашем примере модулю определения не требуется доступ к элементам какого-либо другого модуля. [43]
Рассмотрение модулей реализации значительно упрощается, ведь уже были рассмотрены программные модули и модули определения. [44]
Если значение этого вектора соответствует появлению аварийной ситуации, то в работу включается модуль определения состава неблагоприятных факторов ( МНФ), также входящий в состав БФСП. Для учета зависимости состава неблагоприятных факторов от источника появления аварийной ситуации из ВВП в указанный модуль вводятся значения векторов / Vmy p вероятностей появления неблагоприятных факторов аварийных ситуаций при условии, что их источником является источник PJ. Результатом работы МНФ является значение вектора Ф ( т неблагоприятных факторов АС. [45]