Документы спецификации
-
1
Обзор языка
Центральная идея Nova и обзор возможностей языка.
-
2
Синтаксис
Синтаксис языка с минимальными примерами.
-
3
Система эффектов
Введение в систему алгебраических эффектов.
-
4
Конверсии типов
Все правила преобразования типов на одной странице.
-
5
Революционные возможности
Чем Nova отличается от других системных языков.
-
6
Открытые вопросы дизайна
Вопросы, которые обсуждались, но ещё не зафиксированы как решения.
Решения по дизайну (D-блоки)
Каждое значимое решение по дизайну языка зафиксировано как нумерованный D-блок: вопрос, рассмотренные варианты, принятое решение и обоснование. Спецификация так становится читаемой историей языка, а не просто справочником. Всего зафиксировано более 120 D-блоков.
- D1 — Парадигма:
protocol+data, без классов - D2 — Эффекты вместо
async/throws/unsafe - D52 — Объявления типов: newtype,
alias, сумма-типы - D53 — Унификация:
protocolкак kind-токен подtype - D7 — Один язык, три режима компиляции
- D6 — Память: управляемая по умолчанию, регионы — опционально
- D14 — Файбер-рантайм — невидимая инфраструктура
История
-
↺
Эволюция решений
Как решения пересматривались со временем и почему.
-
✗
Отвергнутые альтернативы
Идеи, которые рассматривались, но не вошли в дизайн.