Результат анализа свойств модуля для комплексирования позволяет сделать
вывод о существовании двух больших групп задач для межмодульного интерфейса.
К первой относятся проблемы локального взаимодействия каждой пары модулей
(свойства 3, 4, 7, 9), ко второй – проблемы построения и обработки модульных
структур (свойства 1, 2, 5, 6, 8). Такое деление упорядочивает разработку меж-
модульного интерфейса, отделяя задачи сопряжения пар модулей от задач
управления модульными структурами в целом. В соответствии с этим в задачу
реализации межмодульного интерфейса входят разработка межъязыкового интерфейса
как программного компонента, автоматизирующего сопряжение пар модулей, и
управление построением и обработкой модульных структур программ.
Сопряжение пар разноязыковых модулей сводится к устранению отличий в:
1) языковых средствах ЯП;
2) описании отдельных модулей;
3) способах представления модулей системами программирования с ЯП.
1. Отличия в языковых средствах ЯП являются следствием неодинаковости
синтаксического и семантического представления типов данных ЯП, их
функциональных возможностей. К ним необходимо отнести:
механизм конструирования новых типов данных отсутствует в языках Фортран,
ПЛ/1, Кобол и имеется в языках Паскаль, Ада, Симула-67, Модула-2, Си, Альфард,
CLU [13, 37, 38, 69, 92];
некоторые предопределенные типы отсутствуют в определенных ЯП (например,
символьный тип в ЯП Фортран);
представление некоторых предопределенных типов отличается в разных ЯП
(логический тип в языке ПЛ/1 представлен как битовая строка);
динамические типы данных отсутствуют в Фортране и Коболе и имеются в
языках Паскаль, ПЛ/1, Ада, Симула-67 и др.;
организация внешних файлов различна (ПЛ/1 допускает последовательную,
индексно-последовательную и прямую организацию файлов, Фортран не
обеспечивает индексно-последовательной организации файлов);
дескрипторы для представления структурных типов данных имеются в
некоторых ЯП и не требуются в Фортране и Коболе;
представление некоторых структурных типов отличается в различных ЯП
(массивы в Фортране располагаются по столбцам, в других ЯП – по строкам).
2. Проблемы сопряжения, связанные с описаниями модулей, вызваны
несоответствием задания формальных и фактических параметров и состоят в
следующем:
описания типов данных, областей значений переменных, индексов массивов и т.
д. задаются неоднозначно;
с одним формальным параметром сопоставляется несколько фактических и
наоборот, что порождается отсутствием структурных типов данных в некоторых ЯП
и их обработкой в виде нескольких отдельных компонентов;
изменение порядка следования параметров.
3. К проблемам, связанным с реализацией систем программирования, относятся:
особенности передачи управления (наличие среды функционирования);
различия во внутреннем представлении однородных типов данных для различных
систем программирования;
различия в структуре и организации внешней памяти для однородных файлов.