Связь с другими языками в Ada
Стандартным средством взаимодействия с другими языками в Ada83 является директива компилятора Interface, которая позволяет вызывать подпрограммы написанные на других языках программирования.
Предположим, что при работе в системе Unix, необходимо использовать команду kill.
Для осуществления этого, необходимо выполнить следующее:
function kill( pid : in Integer; sig : in Integer) return Integer;
pragma Interface(C, kill); |
В данном случае, первый параметр директивы компилятора Interface - это язык вызываемой подпрограммы, а второй - имя подпрограммы под которым она (подпрограмма) известна в программе на Аде.
Пример пакета который импортирует функции написанные на Фортране может иметь следующий вид.
package MATHS is
function sqrt(X : Float) return Float; function exp (X : Float) return Float; private pragma Interface(Fortran, sqrt); pragma Interface(Fortran, exp); end MATHS; |
Необходимо заметить, что директива компилятора Interface не может быть использована с настраиваемыми подпрограммами.
Стандарт Ada95 внес в средства взаимодействия Ады с другими языками программирования некоторые изменения, которые облегчают использование Ады совместно с программным обеспечением написанным на других языках.
Согласно стандарта Ada95, для организации взаимодействия с программным обеспечением, написанным на других языках программирования, можно использовать стандартные директивы компилятора Import, Export, Convention и Linker_Options.
Кроме того, для описания трансляции типов данных между Адой и другими языками программирования, можно использовать предопределенную библиотеку - стандартный пакет Interfaces
и его дочерние модули.