Энциклопедия
Языков
Программирования

Предисловие
редакторов

ЭНЦИКЛОПЕДИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ — справочное издание по языкам программирования всех типов. Основу энциклопедии составляют обзорные статьи для кажого из существующих языков (по-возможности). Главное требование к статьям этой энциклопедии — краткое и лаконичное, желательно формальное, описание основных технических характеристик: 1) синтаксиса или грамматики, представленной в виде BNF-нотации; 2) внутреннего синтаксического дерева в виде типа-суммы; 3) семантики или внутренней логики языка, его вычислителя, типовыводителя, компилятора, экстрактора или валидатора моделей [представлено будет только для простых языков существующих в открытом доступе]. Также статьи содержат краткое нефорамальное описания языка, его мотивации, раскрытие контекстной информации, авторский комментарий от пользователя языка, достоинства и недостатки. Статьи классифицируются по размеру на три группы: краткие заметки, комментарии пользователей и исторические справки. Последние используются для языков с большим количеством реализаций и/или многими версиями синтаксисов.

Индекс первого уровня — главный каталог энциклопедии формировался на основании удобности ее чтения с мобильных устройств, поэтому количество языковых категорий кратно 2, 3 и 6 колонкам. Всего, в зависимости от выбранного набора категорий, директория энциклопедии содержит от 18 до 24 категорий. Принцип расположения статей энциклопедии — категорийный, внутри категории — алфавитный.

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

  • Александр Темерев
  • Максим Сохацкий

Выпуск 1: BSV, ARM, Rust

Поскольку, создание энциклопедии — это тяжёлый и долгий путь, статьи будут появляться последовательно, но в качестве исключения первый выпуск будет содержать сразу три языка из разных категорий: BSV, ARM и Rust. Объединяет их то, что все эти языки являются функциональными языками программирования, и их трех достаточно для полного цикла вывода микропроцессорной архитектуры на рынок: 1) Языка BSV для описания логических элементов, регистров, счетчиков, АЛУ и т.д; 2) Языка ассемблера для конкретной архитектуры команд — ARM. Существует работа 2018 года Пекридиса Георгиоса из Технического Университета Крита, посвящённая реализации архитектуры ARM посредством языка BSV; 3) Высокоуровневого языка для системного программирования Rust с продвинутыми гарантиями безопасности (который благодаря LLVM компилирует в том числе и в ARM).

Выпуск 2: Julia, Erlang, Mathematica

Этот выпуск немного академический, Математика тут выступает как исследовательский фронтэнд рисерчера, а Джулия и Эрланг как квантовая дуальность Стрим Процессинга и Пи калкулуса соединяет в себе и динамическую природу окрестратора (Эрланга) и статическую (LLVM) природу векторных кроссплатформенных оптимизаций (Джулия). Хотя Математика во многом противоречивый продукт (и язык) но ее главное достоинство в том, что она четко обозначивает направление языка который идеально подходит для блокнотов типа Jupyter, в которых удобно запускать сниппеты, делать визуализацию многомерных функций и проводить анализ данныз. В тоже время Mathematica и серия APL-подобных языков типа K разделяет родство по M-expressions [], второму типу скобочек в дополнение к лисповым S-expressions ().