О Топазе

Философия языка

Принципы Топаза: единообразный синтаксис, явные эффекты, поддержка Unicode и переносимое поведение.

Топаз рассматривает программу как исполняемое выражение намерения, достаточно понятное для проверки человеком и достаточно точное для выполнения. Цель языка — не количество синтаксических вариантов, а прямой и единообразный код.

Одна понятная форма

Для типовой задачи предусмотрена одна предпочтительная форма. Имена предметной области можно писать в Unicode, эффекты и ошибки остаются видимыми, а незавершённые идеи не попадают в примеры. Поэтому написанный человеком код и сгенерированный код читаются одинаково.

Предсказуемое выполнение

Если выбранная целевая платформа поддерживает программу, один и тот же исходный код должен сохранять предсказуемое поведение при прямом выполнении, сборке в нативное приложение и генерации кода Python. Текущая SPEC определяет значения, порядок вычислений, ошибки и освобождение ресурсов, не навязывая внутреннее устройство реализации. Целевая платформа, которая не может обеспечить обязательное поведение, должна явно отклонить программу.

Несколько полезных форматов вывода

Форматы Rust, Python и Web решают разные задачи доставки, не создавая отдельных диалектов Топаза. После проверки программа передаётся только поддерживающей её целевой платформе. Неподдерживаемая форма отклоняется, а не получает особый смысл. Расхождения между целевыми платформами, принявшими один и тот же исходный код, считаются ошибками компилятора.

Согласованная грамматика, явная семантика

Лаконичная грамматика и стандартная библиотека дают читателям, инструментам и реализациям единый ориентир. Новая возможность считается готовой, когда определено её поведение, действуют реализации и опубликована документация с примерами.

Развитие на основе реальных программ

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

Текущий статус продукта

Документация представляет возможности текущего релиза, особенности поведения для целевых платформ и планируемые дополнения в соответствующем контексте, сохраняя внутренние процессы разработки в инженерных записях, а не в публичных правилах языка.

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