Вопрос

Ландшафт языка массива, в то время как увлекательно, сбивает с толку, не путающему. Есть ли причина, чтобы выбрать один из j или k или apl или a? Ни один из этих вариантов, кажется, не будет открытым - есть ли открытые версии? Я хотел бы расширить мой разум, но я остаюсь набережденным.

Это было полезно?

Решение

Различия между этими языками относительно тонкие. APL «Правильно» имеет преимущества и недостатки оригинального символического обозначения. (Есть незначительные изменения, которые были сделаны на символ, установленные в течение многих лет, но они все достаточно верны для оригинального видения.)

Язык A + доступен открытый источник. Он значительно отходит от «классических» APL, но это похоже на них в сохранении большей части основного набора символов. Моя смысл состоит в том, что он не был в курсе технологических изменений. Это был предшественник К.

Языки в семействе на массиве, которые вышли из отличительного набора символов APL, включают J, K и Nial. Nial использует английские слова вместо символов и имеет интерпретатор с открытым исходным кодом, называемый Q'nial. K и J полагается в основном на символах, но они набираются из набора символов ASCII. Слова могут использоваться вместо символов на этих языках, однако, просто путем назначения определений.

Семейство программированных языков APL было в первую очередь, поскольку начальный внешний вид APL в качестве продукта IBM в 1964 году. Запатентованные языки массива, похоже, имеют большую поддержку и более быструю эволюцию новых возможностей, чем альтернативы с открытым исходным кодом. Я не уверен, что все конкуренты составляют друг против друга, но Dyalog APL, безусловно, активно работает для содействия их реализации языка как текущие технологии. APL2000 предлагает продукты для Unix, Linux и Windows, включая VisualApl для .NET. MicroAPL Ltd предлагает APLX.

K - специализированный язык, который больше не продается самостоятельно. KX Systems вместо этого маркетинг базы данных KDB + и его язык Q (запрос), оба из которых записываются в K. Это мощный специализированный инструмент, предназначенный для высокоскоростной обработки потоковых данных. Это значительно отходит от оригинального подхода APL. Продукты системы KX дорогие, и их пользователи в основном работают в финансах.

Апл был представлен и в основном разработан Кен Иверсоном. После полной карьеры применения и переработки APL в коммерческих приложениях он повернулся к задаче создания «рационализированной» ревизии, которая исправила аспекты языка, которого он оказался недовольным с течениемиковыми годами. Эта свежая тема называется J. Различия между J и APL набросаны в бумаге на программном обеспечении J Wiki. Одним из заметных изменений является устранение синтаксиса индексации массива. Самая большая функция, однако, является молчаливой формой, в которой программы написаны путем составления функций без ссылки на их аргументы. Tacit J тесно связан с стилем «без точечного», найденного в языках функциональных программиров, но отличается тем, что эта форма имеет основополагающуюся для языка J. Символы на основе ASCII, используемые в J, могут быть сложнее читать, чем более отличительные символы APL.

Для человека, желающего выучить язык массива, мой совет должен выбрать среди Dyalog APL, APLX, J и Q'nial. Dyalog APL (ESP. Для Windows) или APLX (ESP. Для Linux), вероятно, лучше всего для тех, кто хочет использовать основную символику, которая настолько характерна для APL, и кто хочет сильную связь с сообществом APL в целом. J может быть лучшим для тех, кто хочет построить веб-приложения, или сосредоточиться на математике (например, проект EULER,) и особенно тех, кто очарован целостным стилем, он подчеркивает. Q'nial - это то, что я выбрал, если бы мой приоритет был на открытом исходном котеле, но только в том случае, если этот приоритет также не имел в виду ожидания поддержки активного сообщества ОС.


Обновление: J 7.01 был выпущен с открытым исходным кодом Под GPL 3. В дополнение есть Кона, Вариант на K. Они увеличивают параметры для языков массива с открытым исходным кодом.

Обновление по Тобии: GNU APL. доступен под GPL. Следует внимательно новейшим опубликованным стандартом ISO на расширенном языке APL. Это отличный откровенный источник APL реализация и активно развивается и поддерживается. Есть и другие интересные реализации, например, например, NGN APL, удивительно хорошо известная и современная реализация APL, написанная в CoffeeScript (которое компилирует JavaScript.) Языки массива живы и хорошо в 2015 году.

Другие советы

Добавить дополнительную информацию ...

Есть версия открытой исходности K называется Kona https://github.com/kevinlawlawlover/kona.

За q/kdb+, есть пробная версия. http://kx.com/download/

Основными ограничениями являются 2 часа времени ожидания, 32-битная память, срок действия лицензии 3 месяца и сама лицензия. Они не должны быть слишком надоми, если вы просто хотите играть и узнать что-то.

Лично я нашел q быть самым удобным для пользователя, так как KX переведен монадический (единый аргумент) глаголы из K на английские слова и есть хорошая сумма документации @ http://code.kx.com.. Отказ Кроме того, система базы данных очень хорошо продумана и гибкая.

Что-то рассмотреть, это словарь операторов (функции высшего порядка).

Оригинал APL только имеет последнее и первое уменьшение оси (f/, f⌿), последнее и первое совокупное уменьшение оси (f\, f⍀), плюс внутренний и внешний продукт (f.g, ∘.g).

Наиболее расширенные APLS (например, GNU APL, APLX, APL + Win, APL2) только добавляют каждый петли () и спецификация кронштейна оси (f[...]).

J, добавил многословный (называемые наречиями и союзами), но удаленные кронштейны (обе оси, так и индексации), каждый оператор (в пользу более общего оператора ранга), так и в последней оси (совокупное) уменьшение.

Теперь несуществующий острый APL (SAX) сохранил как традиционные операторы последней оси и индексацию кронштейна, при добавлении многих новых операторов J.

Dyalog APL постепенно приближается к словаре Sharp APL, но также включил операторы J-эксклюзивных J, которые никогда не делали его в Sharp APL.

Приведенная ниже таблица сравнивается J, Sharp APL и Dyalog APL состав словари. Заявления серых изложений находятся в предложении.J, Sharp APL, and Dyalog APL compositions

J - исполняемая математическая запись, которая вводится и отображается с использованием символов ASCII.

Это также полноценный функционал, ориентирован на объект, язык программирования.

Реализация Jsoftware j (я не знаю ни о каких других), не является открытым исходным кодом, но это свободно использовать.

Хотя двигатель не является открытым исходным кодом, существует активная пользовательская библиотека J-кода, к которому люди могут внести свой вклад.

J имеет обширную и краткую документацию http://www.jsoftware.com/help.htm. И форумцы счастливо и быстро отвечают на любые вопросы или проблемы и стремятся помочь новым пользователям ориентироваться, а также с более продвинутыми проблемами.

В случае с открытым исходным кодом, кстати, документация (спецификация) для J является обширным, и кто-то может в теории создать проект с открытым исходным кодом, чтобы попытаться реализовать j, если они хотели.

Эфир Это недавно разработанная, свободно доступная, перекрестная платформа, языка программирования массива. Подобно J и K, это опирается на набор символов ASCII. Он реализует некоторые функции, которые (как я знаю) были уникальными для K / Q / KDB +, таких как временный тип данных и встроенный подмножество SQL.

Хотя A + появляется (к сожалению), станет мертвым проектом, есть новый интерпретатор APL с открытым исходным кодом: GNU APL..

Я также останусь безнадевленным (APL всегда смутил меня - к счастью, это было 20 или более лет, так как я в последний раз пытался что-нибудь с ним), но немного поиска нашла A +, версию с открытым исходным кодом A:

Я понятия не имею, что это будет соответствовать вашим (или чьи-либо) потребностям.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top