Документация по Zero
Краткий справочник по Zero с примерами. Прочитай концепцию, посмотри код, а затем потренируйся в курсе Coddy.
Первые шаги
- Что такое ZeroZero — экспериментальный системный язык программирования от Vercel Labs, спроектированный так, чтобы ИИ-агенты были полноправными пользователями наравне с людьми. Разбираемся, что это такое и зачем он нужен.
- Установка ZeroУстанавливаем компилятор и тулчейн Zero одной командой curl. Как поставить, прописать PATH и проверить установку через `zero --version`.
- Hello, WorldВаша первая программа на Zero — что означает каждый кусочек канонического hello-world, как запустить его через `zero run` и почему даже пятистрочная программа уже использует `World`, `raises` и `check`.
- Zero CLIОбзор команды `zero`: подкоманды, которые встретятся каждый день, что каждая выводит и как флаг `--json` превращает любую команду в машинно-читаемый поток для агентов.
- Zero PackagesКак устроен пакет Zero: манифест `zero.json`, каталог `src/` и система целей (targets), позволяющая из одного дерева исходников собирать исполняемые файлы, библиотеки и тесты.
Основы языка
- Let-привязкиКак работает `let` в Zero: объявление локальных привязок, вывод типов и явные аннотации, и почему Zero использует одну форму привязки вместо нескольких ключевых слов.
- Примитивные типыВстроенные типы, которые Zero даёт из коробки: знаковые и беззнаковые целые любых разрядностей, плавающие, булевы, символы, строки и пустой тип Void.
- FunctionsКак работают функции в Zero: ключевое слово `fun`, типизированные параметры, возвращаемые типы, модификатор видимости `pub` и роль `raises` в сигнатуре функции.
- If/ElseКак работают `if` и `else` в Zero: булевы условия, тела веток, отсутствие truthy-коэрсии и как условия соседствуют с `match` для более богатого ветвления.
- While LoopsКак сегодня работают циклы `while` в Zero: условие, тело цикла, отсутствие `for` и `do-while` в раннем языке и какое отношение циклы имеют к явным эффектам.
Моделирование данных
- Shape (Structs)Shapes — это struct-подобные product-типы Zero. Как их объявить, конструировать значения, читать поля и пропускать через функции — с примерами из официальных образцов.
- GenericsКак работают дженерики в Zero: объявление параметров типа на функциях и shapes, вызов дженерик-функций и паттерн псевдонимов типов, который превращает длинные параметризации в чистые имена.
- EnumsКак работает `enum` в Zero: объявление фиксированного набора именованных вариантов, сравнение значений и разница между `enum` (просто метки) и `choice` (tagged union).
- Choice и MatchКак `choice` объявляет в Zero tagged union и как `match` исчерпывающе ветвится по его вариантам — Zero-вариант sum-типов и pattern matching.
Эффекты и ошибки
- World capabilityВ Zero нет глобального stdout, нет ambient файловой системы, нет неявной сети. Всё, что трогает внешний мир, идёт через capability `World`, переданный в `main`. Зачем и как.
- Raises и CheckФункции Zero объявляют свои режимы отказа через `raises`, а вызывающие подтверждают их через `check`. Как работает система, почему нет тихих выбросов и как это взаимодействует с capability `World`.
Инструменты для агентов
- JSON-диагностикаКомпилятор Zero выдаёт машинно-читаемые JSON-диагностики со стабильными кодами ошибок и структурированными планами починки. Вот формат, зачем он существует и как агент его потребляет.
- Agent-First дизайнZero построен вокруг одного вопроса: как выглядит язык программирования, когда ИИ-агенты с первого дня — полноправные пользователи? Вот принципы и компромиссы.