Dyalog APL: как написать автономные файлы, которые могут быть выполнены? - PullRequest
3 голосов
/ 16 марта 2020

Теперь я знаю, как использовать интерпретатор APL, но я совершенно не понимаю, как записать APL в файл, а затем запустить указанный файл. В настоящее время я пишу Dyalog APL, используя ride IDE . Теперь я хочу:

  1. Использовать среду разработки для разработки программ (как еще получить доступ к сочетаниям клавиш?).
  2. Сохранить программу в файл.
  3. Запустите программу из командной строки с аргументами командной строки (как получить аргументы командной строки?)
  4. Распространите мою программу, чтобы другие могли их использовать.

Большая часть документации в Интернете относится к «сеансу APL», что заставляет меня думать, что, возможно, существует какая-то вещь, похожая на Smalltalk, где можно распространять только «живое изображение» или что-то подобное. Если это так, у меня другой набор вопросов:

  1. Как сохранить и загрузить эти файлы изображений?
  2. Как распространять файлы изображений?
  3. Можно ли выполнить такой код из командной строки, чтобы принимать аргументы командной строки?

В общем, я ' Я очень озадачен тем, как писать программное обеспечение в APL!

РЕДАКТИРОВАТЬ: Я нахожусь на Ubuntu, и я хотел бы нацелиться на Linux в целом. Поддержка Windows / macOS была бы плюсом, но в настоящее время я заинтересован в поддержке Linux.

Ответы [ 2 ]

3 голосов
/ 16 марта 2020

В настоящее время возможность создания автономного исполняемого файла (одного файла .exe) существует только на Windows, но Dyalog работает над созданием этой возможной кроссплатформенности. Тем не менее, вы можете получить довольно близко. Прежде чем мы перейдем к этому, позвольте мне ответить на ваши первоначальные вопросы:

  1. Используйте Ride IDE для разработки программ ( как еще получить доступ к сочетаниям клавиш? ).

Существует несколько удобных способов ввода глифов вне RIDE, как с помощью расширений редактора, так и с помощью отдельных общесистемных методов для ввода префикса и / или переключения клавиш. За подробностями обращайтесь к статье APL Wiki о наборе глифов .

Запустить программу из командной строки с аргументами командной строки ( как получить аргументы командной строки? )

⊢2⎕NQ#'GetCommandLineArgs' возвращает команду и аргументы команды, которая использовалась для запуска текущего приложения. Это работает кроссплатформенно. Попробуйте онлайн в Linux!


"Живое изображение", о котором вы говорите, будет тем, что APLers называют рабочим пространством . Как только ваше приложение работает так, как вам нужно, введите для переменной ⎕LX (Latent eXpression) значение оператора, который запускает ваше приложение, а затем закроет APL, когда это будет сделано, например, ⎕LX←'myApp.Run ⋄ ⎕OFF'.

Далее, сохраните ваше приложение как рабочее пространство с )save /tmp/myapp.

Теперь вы сможете запускать приложение с помощью dyalog /tmp/myapp -hello=world et c. Конечно, вы можете поместить это в сценарий оболочки для простоты использования.

То, что вы будете распространять среди своих клиентов, будет как минимум рабочим пространством и интерпретатором времени выполнения, но вы, вероятно, захотите упаковать некоторые сопутствующие файлы. / зависимости тоже. Однако, прежде чем зарабатывать деньги на своем приложении, посмотрите цены и лицензии Dyalog .

3 голосов
/ 16 марта 2020

Вот как я это делаю (не официальная рекомендация Dyalog):

Используйте Ride IDE для разработки программ (как еще я могу получить доступ к сочетаниям клавиш?).

RIDE - это круто (я предвзято), особенно в начале, когда вы хотите изучить язык в интерактивном режиме.

Но на практике я предпочитаю редактировать текстовые файлы с помощью Vim с помощью this плагин. Он обеспечивает связывание клавиш с настраиваемым префиксом ключа. Я думаю, что есть также способ настроить Vim или Emacs в качестве внешнего редактора для RIDE - таким образом, вы могли бы иметь и блестящий интерфейс сеанса, и брутально эффективный редактор, знакомый вашим пальцам.

В качестве альтернативы, для сочетаний клавиш, которые вы может сделать:

setxkbmap -layout us,apl -option grp:win_switch

Нажатие клавиши Windows и другой клавиши вместе вставляет символ APL в любое приложение X11 - удобно для электронной почты, чата и т. д. c.

Сохранить мою программу в файл. Запустите программу из командной строки,

Я поставлю это сверху:

#!/bin/bash
(echo ∇M;tail -n+3 $0;echo -e '∇\nM\n⎕off')|dyalog -script;exit $?
⎕io←0⋄⎕ct←0⋄⎕pw←32767 ⍝ opinionated :)

и сделаю

chmod +x file.dyalog
./file.dyalog

с аргументами командной строки (как мне взять аргументы командной строки?)

Это небольшая проблема. Есть 2⎕NQ#'GetCommandLineArgs' для Windows, но я не знаю рабочего решения для Linux.

См. Комментарии ниже и ответ Адама .

Распространите мою программу, чтобы другие могли ее использовать.

Любым способом - github, gitlab, bitbucket, ваш собственный сайт, голуби и т. Д. c

"Сессия APL"

Это просто традиционный термин APL для "REPL".

...