Введение

Язык программирования J, разработанный в начале 1990-х годов Кеннетом Иверсоном и Роджером Хуэй, является языком программирования массивов, основанным преимущественно на APL (также разработанном Иверсоном). Чтобы избежать проблемы со специальными символами, характерной для APL, J использует только базовый набор символов ASCII, прибегая к использованию точки и двоеточия для образования коротких слов, аналогичных диграфам. Большинство таких первичных (или примитивных) слов J служат математическими символами, при этом точка или двоеточие расширяют значение базовых символов. Кроме того, многие символы, которые в других языках обычно используются в парах (например, [] {} "" `` или <>), в J рассматриваются как самостоятельные слова или, при использовании с точкой или двоеточием, как односимвольные корни многосимвольных слов. J – это очень лаконичный язык программирования массивов, наиболее подходящий для математического и статистического программирования, особенно при выполнении операций с матрицами. Он также применяется в экстремальном программировании и анализе производительности сетей. Подобно языкам FP и FL, разработанным Джоном Бэкусом, J поддерживает функциональное программирование благодаря своим возможностям неявного программирования. В отличие от большинства языков, поддерживающих объектно-ориентированное программирование, гибкая иерархическая схема пространства имен J (где каждое имя существует в определенной области видимости) может эффективно использоваться как основа для объектно-ориентированного программирования, основанного на классах и прототипах. С марта 2011 года J распространяется как свободное и открытое программное обеспечение под лицензией GNU General Public License версии 3 (GPLv3). Также возможна покупка исходного кода по индивидуальной лицензии.

Очистка

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

Документация

Документация к J включает словарь, в котором слова J идентифицируются как существительные, глаголы, модификаторы и так далее. Основные слова перечислены в лексиконе, где их части речи указаны с помощью разметки. Следует отметить, что глаголы имеют две формы: монадическую (аргументы только справа) и диадическую (аргументы слева и справа). Например, в выражении ' 1' дефис является монадическим глаголом, а в '3 2' – диадическим глаголом. Монадическое определение в основном не зависит от диадического определения, независимо от того, является ли глагол примитивным или производным.

Структуры управления

J предоставляет структуры управления (подробности здесь), аналогичные другим процедурным языкам. Основные управляющие слова в каждой категории включают: assert, break, continue, for, goto label, if, else, elseif, return, select, case, throw, try, catch, while, whilst.