Кроссплатформенность функций C ++ в APL

В настоящее время я пишу программы на C ++ для APL. До сих пор я занимался созданием в APL функции, которая запускает командную строку и вызывает исполняемый файл, с входными и выходными файлами, которые он создает в качестве параметров, и, в свою очередь, исполняемый файл C ++ запрограммирован для открытия входного файла. прочитайте ввод и сохраните вывод в выходном файле, который выбирается функцией APL и сохраняется в одной или нескольких переменных. Проблема этого метода заключается в том, что, когда я использую более простые функции, которые будут вызываться много раз, а иногда и рекурсивно, открытие и закрытие файлов все время для простых вычислений отнимает много времени обработки. То, что я пытаюсь выяснить, — это способ вызова функции, написанной на C ++, либо из решения, либо из библиотеки, и использования ее непосредственно в моем рабочем пространстве APL.

Например, у меня есть функция на C ++, написанная в этой форме:

Xadd(int x, int y);

и хочу написать это в APL, как это Xadd (x) (y) и сможет позже открыть его через APL используя ∇Xadd, Благодарю.

1

Решение

Я не совсем понял, если вы вызываете функции CPP из APL или наоборот. И вы не указали, какую версию APL вы кодируете, но вы можете проверить эти концепции:

  • Общая переменная: VSVO
  • Вспомогательный процессор
  • Вызов скомпилированных программ: ⎕NA
    • Проверьте главу 28 в Справочнике по системным сервисам: ССЫЛКА НА САЙТ для IBM APL2 / 370.
1

Другие решения

Сначала я скомпилировал бы функцию Xadd в DLL с одной точкой входа, а затем поэкспериментировал с [] NA. Полезным шагом может стать то, что сначала вызовите работу DLL-библиотеки с VBA в Excel (или Word или любом другом приложении MS Office, использующем VBA), а затем перейдите к APL.

1