Языки программирования. Практический сравнительный анализ


Языки программирования. Практический сравнительный анализ - стр. 251


 

 


Московский государственный университет им. М.В.Ломоносова    Факультет вычислительной математики и кибернетики

 

"ЯЗЫКИ ПРОГРАММИРОВАНИЯ"

Часть 2. ОСНОВНЫЕ КОНЦЕПЦИИ И ПРИНЦИПЫ.

 

4.19. Раздельная компиляция

Раздельная трансляция (компиляция) - одна из критичных технологических потребностей индустриального программирования.

ТРАНСЛЯЦИОННЫЙ МОДУЛЬ - это программный сегмент, пригодный для раздельной трансляции. Это фрагмент текста, который можно физически отделить от контекста и применять посредством трансляционной библиотеки.

Мы затронули одну из важнейших концепций ЯП - концепцию модульности. Здесь ограничимся следующим определением.

Модуль - это (материализованная) абстракция, доведенная до воплощения в отдельном физическом объекте.

 

4.19.1. Аппарат связывания трансляционных модулей

Трансляционные модули связываются для того, чтобы взаимодействовать как части единой программы. Для этого приходится называть имена партнеров по связыванию.

Выделим два основных вида связывания, которые назовем односторонним и двусторонним соответственно. При одностороннем связывании лишь один из двух связываемых модулей называет имя своего партнера. При двустороннем - оба. В Алголе, Фортране и Бейсике применяется только одностороннее связывание (в процедуре не указывается вызов, при объявлениях объекта  не указываются все его использования и т. д.). В Аде для трансляционных модулей применяются оба вида связывания.

Трансляционный модуль в Аде - это такой программный сегмент, все внешние связи которого оформлены как связи с трансляционной библиотекой.

Как же оформить эти связи?

С односторонним связыванием мы уже фактически познакомились, когда применяли указание контекста (with).

Например, трансляционными модулями были: спецификация пакета управление_сетью (в ней вообще нет внешних связей, кроме предопределенных имен типов), процедура построение_сети (она связана только с пакетом управление_сетью и эта связь оформлена односторонним связыванием - с помощью указания контекста), родовой сегмент "очередь" - также трансляционный модуль.


- Начало -  - Назад -  - Вперед -