Карта возможностей «Глагола»

Карта возможностей «Глагола»

Правда из реальных прогонов бэкендов — не ручная табличка. Каждая мишень — свой столбец. Генерируется тестом КартаПаритетаTest.

27возможностей языка
135 / 139Компилятор JVM
по примерам
118 / 139Транспилятор JS
4 долг · 17 вне платформы
0 / 139Компилятор WASM
планируется · WebAssembly (#110)
23 / 139Компилятор МК
Глагол→C · 97 долг подмножества
0 / 139Компилятор Эльбрус
планируется · CPU Эльбрус/Байкал
13%демо на «Глаголе»
цель 100% · вкладка «Демо-пример»
Возможность языка ИнтерпретаторJVMКомпиляторJVM · байткод Транспиляторбраузер · JSКомпиляторWASM · WebAssembly КомпиляторМК · Глагол→CКомпиляторЭльбрус · CPU РуководствоНавык
Арифметика и связывание10-арифметика.гл✓✓✓◻⚠◻✓—
Условия (если…то…иначе)9-условия.гл✓✓✓◻✓◻✓—
Рекурсия13-рекурсия.гл✓✓✓◻✓◻✓—
Списки14-списки.гл✓✓✓◻⚠◻✓—
Свободный порядок (падеж = роль)4-свободный-порядок.гл✓✓✓◻⚠◻✓—
Локальные связывания («где»)54-где.гл✓✓✓◻⚠◻✓✓
Предикаты (да/нет)48-предикаты-да-нет.гл✓✓✓◻✓◻✓—
Составные имена (ёлочки, синонимы)42-имена-составные.гл✓✓✓◻⚠◻——
Ленивость (вид глагола)6-строго-и-лениво.гл✓✓✓◻⚠◻✓—
Функции высшего порядка74-функции-высшего-порядка.гл✓✓✓◻⚠◻✓✓
Типы данных (АТД)25-типы-данных.гл✓✓✓◻⚠◻✓—
Обработка ошибок (может быть/итог/попытка)76-итог.гл✓✓✓◻⚠◻✓—
Паника («брось»)78-паника.гл⚠✓✓◻⚠◻✓—
Модель выполнения (подъём определений)79-модель-выполнения.гл✓✓✓◻✓◻✓✓
Родные тесты («проверь»)17-тесты.гл✓✓⚠◻⚠◻✓—
Ввод с клавиатуры23-ввод.гл⚠✓⚠◻⚠◻✓—
Статические типы («типа»)68-статические-типы.гл✓✓✓◻⚠◻✓✓
Java-интероп52-ява.гл✓✓⊘⊘⊘⊘✓✓
Записи (JVM-POJO)53-запись.гл✓✓⊘⊘⊘⊘✓✓
Методы записи (§4)56-метод-с-параметром.гл✓✓⊘⊘⊘⊘✓✓
Веб-возврат (сущность/список)81-веб-возврат.гл✓✓⊘⊘⊘⊘✓✓
Сущности + JPA (хранилище)57-хранилище.гл✓✓⊘⊘⊘⊘✓✓
Связи сущностей (@OneToMany…)60-связи.гл✓✓⊘⊘⊘⊘✓✓
Контроллеры (Spring REST)59-родной-контроллер.гл✓✓⊘⊘⊘⊘✓—
Модульность (раздел/библиотека/служба)63-модуль-библиотека.гл✓✓✓◻⚠◻✓✓
Слои (архитектура)66-слои.гл✓✓✓◻⚠◻✓✓
Договор (DbC)65-договор.гл✓✓✓◻⚠◻✓✓

✓ — поддержано · ⚠ — долг реализации (закрываемо на этой платформе, наведи — причина) · ⊘ — вне платформы (природа мишени: нет JVM/Spring — не долг) · ◻ — планируется (бэкенд ещё не реализован) · — — отсутствует.
Возможности — статус по показательному примеру. Мишени независимы: паритет требуется ВНУТРИ платформы (интерпретатор↔компилятор JVM); между платформами (JVM↔браузер↔МК) — только там, где возможность в природе мишени.
Столбец «МК» — единый (Глагол→C, ядро-независимо): один эмиттер, а конкретное ядро — деталь сборки. Проверен QEMU-дифф-тестом на Cortex-M0/M3/M4/M7/M33, RISC-V rv32 и ESP32-C3. Пока покрыто скалярное подмножество (числа, условия, печать) — оно расширяется вместе с типизацией.