Обучение J/K/APL

Я знаю, что все три связаны, и я видел довольно много ответов на проблемы в Project Euler, написанных на J, и несколько написанных на K. Что мне интересно, что бы вы предложили изучить, и куда бы вы предложили пойти о получении материалов, чтобы узнать это?

6 ответов

APL

Созданный Кеннетом Айверсоном как оригинальный язык программирования массива. Использует набор символов не ASCII, так как нет зарезервированных слов. Британская ассоциация APL ведет актуальный список переводчиков (как бесплатных, так и коммерческих), а также информацию о языках, основанных на APL, которые приведены ниже.

A +

Создано Артуром Уитни в качестве продолжения APL. Исходный код доступен под лицензией GPL и есть расширение XEmacs. Скачать с сайта.

J

Созданный Кеннетом Айверсоном и Роджером Хуэем, для этого требуются только символы ASCII. Источник имел обыкновение стоить денег, хотя недавно был выпущен под лицензией GPL. Скачать с сайта.

К

Другой язык Артура Уитни, в нем также используются символы ASCII. С тех пор компания, которая за этим стоит, списала язык, но есть Kona с открытым исходным кодом.

Q

Этот язык, построенный на основе K и включающий возможности SQL-запросов / объединений (таблицы представляют собой встроенный контейнер), основан на обработке большого количества данных. Некоммерческая лицензионная версия может быть загружена с веб-сайта.


Что касается того, что активно используется, Q довольно популярен в финансах, в то время как J имеет некоторую поддержку со стороны ученых и любителей. Эти два - ваш лучший выбор для программирования массивов в эти дни.

Посмотрите на часто задаваемые вопросы APL в разделе: Где я могу найти APL для машины X?

Есть также вики, которая имеет информацию на http://aplwiki.com/Frontpage

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

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

K кажется мертвым и заменен на Q. Все лицензии на нем кажутся проприетарными, и интерпретатора, кажется, труднее найти (поскольку они пытаются продать kdb, а не Q).

Я не могу найти версию APL для использования.

Вы всегда можете попробовать A+. Бесплатно с http://www.aplusdev.org/

Этот язык APL развился в J и Q

J теперь с открытым исходным кодом: http://www.jsoftware.com/source.htm

Существует бесплатный интерпретатор APL под названием NAS2000, но я считаю, что он полезен только для подтверждения концепции. Иногда я получаю неправильные результаты (я программировал в APL несколько лет назад на все, от 8K IBM 1130 до PC/XT, а иногда я думаю, что результаты неверны), в то время как в других случаях они просто ужасно медленные. В лучшем случае в J он работает так же быстро, как и все. Я никогда не использовал K, я пытался выполнить около 100 задач Эйлера в J, и я только начинаю по-настоящему понимать ранг. (Около 10 из них я сделал в D, один на Лиспе с поддерживающими вычислениями в J, и один в целочисленном линейном программном пакете, который я затем отбросил для D, когда обнаружил, что он не даст мне правильный ответ, несмотря на то, что я Считается, что это правильно закодированные ограничения.

По своей сути J является математическим языком, и он хорошо подходит для большинства задач Эйлера, поэтому лучшее, что вы можете сделать, это просто заняться поиском на сайте jsoftware.com и заняться им.

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