Topazdocs
Проект

Язык и совместимость

Как Topaz определяет язык, проверяет цели и записывает ограниченные свидетельства интеграции Lispex.

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

Определение языка

Справочник языка определяет синтаксис, типы, порядок вычисления, ошибки, модули и стандартную библиотеку. Метаданные covers помогают авторам синхронизировать страницы, но читателю не нужны внутренние документы разработки, чтобы понять язык.

Проверка программы

Используйте topaz check для статической проверки и topaz run для непосредственного выполнения. Для развёртывания соберите Rust-, Python- или web-цель, описанную для вашей среды.

Совместимость целей сборки

Поддерживаемые цели сравниваются с непосредственным выполнением для тех возможностей языка, которые они принимают. Если цель не может сохранить поведение функции, она должна явно отклонить сборку. Актуальный список целей и ограничений находится на странице Состояние инструментария.

Свидетельства интеграции Lispex

Репозиторий также использует интерпретатор Lispex, написанный на Topaz, как требовательную программу для сравнения целей. Это свидетельства интеграции, а не отдельный продукт Topaz или выпуск языка.

Проверки этапов реализации

Граница реализацииСвидетельства выполнения и replayОтклонённые мутации checker
Лексическая, числовая и хвостовая machine; 100 000 шагов self-, mutual- и apply-рекурсии с максимальной глубиной continuation 3, 3 и 466 случаев, 396 выполнений, 198 replay-проверок, 66 совпадений трёх hosts17 классов
Единая передача управления26 случаев, 156 выполнений, 78 replay-проверок, 26 совпадений трёх hosts23 класса
Версионированная основа primitives и общий dispatcher guest-вызовов40 случаев, 240 выполнений, 120 replay-проверок, 40 совпадений трёх hosts, 200 сравнений профилей32 класса
Независимые raw-byte UTF-8 reader и normalizer с ограниченным явным стеком64 случая, 384 выполнения, 192 replay-проверки, 64 совпадения трёх hosts, 192 проверки projection, 320 сравнений профилей66 классов: 46 result и 20 projection
Source-only путь backend без kernel producer и fallback к host apply/eval/control144 случая, 864 выполнения, 432 replay-проверки, 144 совпадения трёх hosts, 720 сравнений профилей49 классов

Это поэтапные поверхности реализации; их количества случаев не складываются в более крупный denominator соответствия языка.

Измеренная поверхностьТочный инвентарьЗаписанный результат
Полная трёххостовая конструкция LIT144 случая для интерпретатора, generated Rust и generated Python864 свежих выполнения, 432 replay-проверки, 144 полных побайтных совпадения трёх hosts и ноль host fallback
Четырёххостовая запись интеграции LITОдин канонический исходник для интерпретатора, generated Rust, generated Python и WebВнутренние свидетельства фиксируют ограниченную четырёххостовую поверхность проверки
Граница primitive capabilities205 строкПоддержаны 84 строки, включая 31 детерминированную delegation и 53 реализации machine; 121 завершается явно; поддержаны шесть из 18 guest-calling
Общее наблюдение Lispex v1.5Rust, LIL и один установленный маршрут LIT на 144 случаях432 выполнения; 59 совпадений всех семейств; 253 совпадения пар и 179 расхождений; Rust/LIL 61/83, Rust/LIT 65/79 и LIL/LIT 127/17

Четыре маршрута Topaz — варианты host одного канонического исходника LIT, а не независимые реализации, и независимость исходного кода LIT не заявляется. Общее наблюдение ограничено заявленными случаями и сохраняет измеренные расхождения; оно не устанавливает семантическую эквивалентность всего языка. Интеграционная запись остаётся внутренним свидетельством и не является публичным бэкендом Topaz.

Границы версий

Руководство следует последней языковой политике. Номер версии указывается там, где от него зависят установка, пакеты, создаваемые файлы или миграция. Подробные тематические руководства доступны в Классике.

Основные команды

topaz check main.tpz
topaz run main.tpz
topaz build main.tpz --out-dir build

Связанная документация