Documentación de Zero
Referencia concisa y basada en ejemplos de Zero. Lee el concepto, mira el código y practícalo en un recorrido de Coddy.
Primeros pasos
- Qué es ZeroZero es un lenguaje experimental de programación de sistemas de Vercel Labs diseñado para que los agentes de IA sean usuarios de primera clase, no solo los humanos. Esto es lo que es y por qué existe.
- Instalar ZeroInstala el compilador y las herramientas de Zero con un solo comando curl. Aquí tienes cómo instalarlo, añadirlo al PATH y verificar la instalación con `zero --version`.
- Hola, mundoTu primer programa en Zero: qué significa cada pieza del clásico hello world, cómo ejecutarlo con `zero run` y por qué hasta un programa de cinco líneas ya usa `World`, `raises` y `check`.
- CLI de ZeroUn recorrido por la herramienta de línea de comandos `zero`: los subcomandos que usarás a diario, qué saca cada uno y cómo el flag `--json` convierte cualquier comando en una fuente legible por máquinas para los agentes.
- Paquetes de ZeroCómo se organiza un paquete de Zero: el manifest `zero.json`, el directorio `src/` y el sistema de destinos que permite a un mismo paquete producir ejecutables, bibliotecas y tests desde el mismo árbol de fuentes.
Fundamentos del lenguaje
- Ligaduras letCómo funciona `let` en Zero: cómo declarar ligaduras locales, inferencia de tipos y anotaciones explícitas, y por qué Zero usa una única forma de ligadura en lugar de varias palabras clave.
- Tipos primitivosLos tipos integrados que Zero te da de fábrica: enteros con signo y sin signo de cualquier ancho, flotantes, booleanos, caracteres, cadenas y el tipo vacío Void.
- FuncionesCómo funcionan las funciones en Zero: la palabra clave `fun`, parámetros tipados, tipos de retorno, el modificador de visibilidad `pub` y el papel de `raises` en la firma.
- If/ElseCómo funcionan `if` y `else` en Zero: condiciones booleanas, cuerpos de cada rama, la ausencia de coerción a verdadero/falso y cómo encajan los condicionales junto a `match` para ramificaciones más ricas.
- Bucles whileCómo funcionan los bucles `while` en Zero hoy: la condición, el cuerpo, la ausencia de `for` y `do-while` en la versión temprana del lenguaje y lo que tienen que ver los bucles con los efectos explícitos.
Modelado de datos
- Shape (structs)Los shapes son los tipos producto al estilo struct de Zero. Aquí tienes cómo declararlos, construir valores, leer campos y pasarlos por funciones, con ejemplos de las muestras oficiales.
- GenéricosCómo funcionan los genéricos en Zero: declarar parámetros de tipo en funciones y shapes, llamar a funciones genéricas y el patrón de alias de tipo que convierte parametrizaciones largas en nombres limpios.
- EnumsCómo funciona `enum` en Zero: declarar un conjunto fijo de variantes nombradas, comparar valores y la línea entre `enum` (etiquetas planas) y `choice` (uniones etiquetadas).
- Choice y MatchCómo `choice` declara una unión etiquetada en Zero y cómo `match` ramifica de forma exhaustiva sobre sus variantes — la versión de Zero de los tipos suma y el pattern matching.
Efectos y errores
- Capacidad WorldZero no tiene stdout global, ni sistema de archivos ambiental, ni red implícita. Todo lo que toca el mundo exterior fluye a través de una capacidad `World` pasada a `main`. Aquí tienes el porqué y el cómo.
- Raises y CheckLas funciones de Zero declaran sus modos de fallo con `raises` y quienes las invocan los reconocen con `check`. Cómo funciona el sistema, por qué no hay throw silencioso y cómo interactúa con la capacidad `World`.
Herramientas para agentes
- Diagnósticos JSONEl compilador de Zero emite diagnósticos JSON legibles por máquinas con códigos de error estables y planes de reparación estructurados. Aquí tienes el formato, por qué existe y cómo lo consume un agente.
- Diseño agent-firstZero se construye en torno a una sola pregunta: ¿cómo es un lenguaje de programación cuando los agentes de IA son usuarios de primera clase desde el primer día? Aquí tienes los principios y las concesiones.