отображения.
3. При анализе преобразований между простыми типами было отмечено, что
с вещественными типами возможны только преобразования вида вещественный – в
вещественный. Это очень сильное ограничение, так как часто в практике
программирования возникает преобразование типов вида целый – в вещественный и
наоборот. Строгий анализ таких преобразований не может быть проведен ввиду от-
сутствия изоморфного соответствия между множествами значений этих типов –
одному целому числу будет соответствовать некоторое множество вещественных
чисел. Анализ преобразований для этих типов должен производиться следующим
образом. Отображения между множествами целых и вещественных чисел являются
частичными мульти отображениями. Пусть φ – отображение множества Х
r
на X
i
, где
Х
r
и X
i
– множества вещественных и целых чисел соответственно. Для каждого
х
i
X
i
определим прообраз φ
-1
(х
i
)
Х
r
. Различным х
i
будут соответствовать
различные прообразы. Введем фактор-множество Х
r
/φ, элементами которого
являются прообразы элементов х
i
. В алгебраической системе U
r
, описывающей
вещественный тип, заменим множество Х
r
фактор-множеством Х
r
/φ. В этом случае
отображение между алгебраическими системами сохраняет линейный порядок,
но корректность арифметических операций не выполняется. Так, если
преобразование вещественного числа в целое состоит в отбрасывании дробной
части, то 1,6 + 1,6 = 3,2 и φ(3,2)=3. В то же время φ(1,6)+ φ(1,6) = 1 + 1 = 2 ≠ 3. Эти
особенности необходимо учитывать при практической реализации подобных
преобразований.
Данный пример относится к анализу преобразований, при которых отсутствует
изоморфное соответствие между основными множествами алгебраических систем,
описывающих преобразуемые типы. Анализ подобных преобразований должен
проводиться в частном порядке.
4. Среди преобразований, рассмотренных в п. 3.7, не рассматривался случай,
когда строка символов, содержащая последовательность цифр, должна
преобразовываться в объект целого типа с соответствующим значением.
Как известно, в теории структурной организации данных строка символов
описывается в виде массива символьных элементов. Поэтому такое преобразование
переводит весь массив (структурный тип) в целое число (простой тип).
Аналогичные преобразования, связанные с отображениями структурного типа в
простой и наоборот, не входят в задачи межъязыкового интерфейса и поэтому не
рассматриваются. Четыре приведенных выше примера показывают многообразие
проблем и задач сопряжения модулей. Часть из них удается свести к строгому
анализу с помощью дополнительных ограничений. Другие задачи не входят в состав
функций межъязыкового интерфейса. Однако рассматриваемый подход с
соответствующими дополнениями может использоваться для построения любых
межъязыковых интерфейсов, предназначенных для комплексирования модулей.
Формальный подход к построению межъязыковых интерфейсов, рассмотренный в
данной главе, позволяет упорядочить разработку МЯИ, выделить основные процессы
его создания и особые ситуации, возникающие при его построении.
Аспекты практической реализации МЯИ
1. Выделены два основных процесса в построении МЯИ:
разработка множества интерфейсных функций (операций преобразования,