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

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

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

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

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

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


К первому выпуску

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