Как выбрать между компиляторами APL?

Я использую Dyalog APL, но обнаружил, что некоторые функции недоступны в gnu-apl. Есть ли большие различия между этими двумя реализациями APL и всеми другими реализациями APL? Какой компилятор APL наиболее часто используется?

2 ответа

Для всех практических целей все коммерческие реализации APL являются интерпретаторами.

Есть несколько поставщиков, APL2000, Dyalog, IBM и MicroAPL, возможно, другие. Три некоммерческие попытки APL, о которых я знаю сегодня, - это GNU APL, NARS2000 и NGN APL, которые работают в вашем браузере.

Я не думаю, что мог бы точно угадать, какая система используется чаще всего. Это может зависеть от того, какую систему APL вы использовали в (далеком) прошлом - разделение времени STSC или пользователи APL*Plus\PC могут быть склонны использовать APL2000, разделение времени Sharp может идти с Dyalog, а пользователи APL2 мэйнфрейма IBM могут придерживаться APL2 для ПК. Часто существует ряд важных функций, которые могут сделать разные APL более или менее привлекательными для разных пользователей.

Хотя существует такая вещь, как основной язык APL, поставщики обычно добавляют языковые расширения и очень существенные проприетарные улучшения в свои версии, которые включают, но не ограничиваются ими, файловую систему APL, интерфейсы к системным средствам, таким как файлы.DLL или.SO, .Net, Java, Windows и улучшения дизайна форм, объектно-ориентированные функции и так далее.

Так что да, между разными реализациями APL есть большие различия. Это вопрос того, что вам нужно.

Я проделал профессиональную работу, используя как Dyalog APL, так и серии apl2000 APL+, но больше о последней. Возможно, из-за этого мне, как правило, нравится больше, но это очень дело вкуса. У каждого есть несколько собственных расширений основного языка. Некоторые, такие как управляющие структуры, реализованы очень похожим образом, некоторые, такие как определенные операторы, являются уникальными для одной системы. Но я обнаружил, что практически любую последовательность или алгоритм можно довольно легко перевести с одного на другой, и мне еще предстоит найти что-либо, что можно сделать в одном, что не так легко сделать в другом, возможно, с немного другой подход. Я никогда не работал профессионально над IBM APL2, но это не так уж и отличается.

Другие вопросы по тегам