Documentação de Zero
Referência concisa e baseada em exemplos de Zero. Leia o conceito, veja o código e pratique em uma jornada da Coddy.
Primeiros passos
- O que é ZeroZero é uma linguagem de programação de sistemas experimental da Vercel Labs, projetada para que agentes de IA sejam usuários de primeira classe — não só os humanos. Veja o que é e por que existe.
- Instalar o ZeroInstale o compilador e a toolchain do Zero com um único comando curl. Veja como instalar, colocar no PATH e verificar a instalação com `zero --version`.
- Hello, WorldSeu primeiro programa em Zero — o que cada peça do hello-world canônico significa, como rodar com `zero run` e por que um programa de cinco linhas já usa `World`, `raises` e `check`.
- CLI do ZeroUm tour pela ferramenta de linha de comando `zero`: os subcomandos que você vai usar no dia a dia, o que cada um produz e como a flag `--json` transforma cada comando num feed legível por máquina para agentes.
- Pacotes ZeroComo um pacote Zero é organizado: o manifesto `zero.json`, o diretório `src/` e o sistema de targets que permite a um pacote produzir executáveis, bibliotecas e testes a partir da mesma árvore de código.
Fundamentos da linguagem
- Ligações letComo `let` funciona em Zero: declarar ligações locais, inferência de tipos e anotações explícitas, e por que Zero usa uma única forma de ligação em vez de várias palavras-chave.
- Tipos primitivosOs tipos embutidos que Zero te dá de saída: inteiros com e sem sinal de todas as larguras, floats, booleanos, caracteres, strings e o tipo vazio Void.
- FunçõesComo funções funcionam em Zero: a palavra-chave `fun`, parâmetros tipados, tipos de retorno, o modificador de visibilidade `pub` e o papel de `raises` na assinatura.
- If/ElseComo `if` e `else` funcionam em Zero: condições booleanas, corpos de cada ramo, a ausência de coerção de truthiness e como condicionais convivem com `match` para ramificações mais ricas.
- Laços whileComo laços `while` funcionam em Zero hoje: a condição, o corpo do laço, a ausência de `for` e `do-while` na linguagem inicial e o que laços têm a ver com efeitos explícitos.
Modelagem de dados
- Shape (Structs)Shapes são os tipos produto do Zero, parecidos com struct. Veja como declarar, construir valores, ler campos e passar adiante pelas funções — com exemplos das amostras oficiais.
- GenericsComo generics funcionam em Zero: declarar parâmetros de tipo em funções e shapes, chamar funções genéricas e o padrão de type alias que transforma parametrizações longas em nomes limpos.
- EnumsComo `enum` funciona em Zero: declarar um conjunto fixo de variantes nomeadas, comparar valores e a fronteira entre `enum` (rótulos simples) e `choice` (uniões marcadas).
- Choice e MatchComo `choice` declara uma união marcada em Zero e como `match` ramifica de forma exaustiva sobre as variantes — a versão Zero de tipos soma e pattern matching.
Efeitos e erros
- Capacidade WorldZero não tem stdout global, sistema de arquivos ambiente nem rede implícita. Tudo que toca o mundo externo flui por uma capacidade `World` passada para `main`. Veja por quê e como.
- Raises e CheckFunções Zero declaram seus modos de falha com `raises` e quem chama reconhece isso com `check`. Veja como o sistema funciona, por que não existe throw silencioso e como ele se conecta com a capacidade `World`.
Ferramentas para agentes
- Diagnósticos em JSONO compilador Zero emite diagnósticos em JSON legíveis por máquina, com códigos de erro estáveis e planos de reparo estruturados. Veja o formato, por que existe e como um agente consome.
- Design Agent-FirstZero é construído em torno de uma única pergunta: como fica uma linguagem de programação quando agentes de IA são usuários de primeira classe desde o dia um? Veja os princípios e os trade-offs.