Documentation Zero
Référence Zero concise et illustrée par des exemples. Lisez le concept, voyez le code, puis pratiquez-le dans un parcours Coddy.
Premiers pas
- C'est quoi ZeroZero est un langage de programmation système expérimental de Vercel Labs, conçu pour que les agents IA soient des utilisateurs de premier ordre — pas seulement les humains. Voici ce qu'il est et pourquoi il existe.
- Installer ZeroInstallez le compilateur Zero et sa chaîne d'outils avec une seule commande curl. Voici comment l'installer, l'ajouter à votre PATH et vérifier l'installation avec `zero --version`.
- Hello, WorldVotre premier programme Zero — ce que signifie chaque morceau du hello-world canonique, comment l'exécuter avec `zero run`, et pourquoi même un programme de cinq lignes utilise déjà `World`, `raises` et `check`.
- CLI ZeroUn tour de l'outil en ligne de commande `zero` : les sous-commandes que vous utiliserez au quotidien, ce que chacune produit, et comment le drapeau `--json` transforme chaque commande en un flux lisible par les agents.
- Packages ZeroComment un package Zero est organisé : le manifeste `zero.json`, le dossier `src/`, et le système de cibles qui permet à un même package de produire des exécutables, des bibliothèques et des tests depuis la même arborescence.
Bases du langage
- Liaisons letComment fonctionne `let` en Zero : déclarer des liaisons locales, l'inférence de types et les annotations explicites, et pourquoi Zero utilise une seule forme de liaison plutôt que plusieurs mots-clés.
- Types primitifsLes types intégrés que Zero vous offre d'emblée : entiers signés et non signés de toutes les largeurs, flottants, booléens, caractères, chaînes, et le type vide Void.
- FonctionsComment fonctionnent les fonctions en Zero : le mot-clé `fun`, les paramètres typés, les types de retour, le modificateur de visibilité `pub`, et le rôle de `raises` dans la signature.
- If/ElseComment fonctionnent `if` et `else` en Zero : conditions booléennes, corps des branches, absence de coercition vers la vérité, et comment les conditionnels s'articulent avec `match` pour un branchement plus riche.
- Boucles whileComment fonctionnent les boucles `while` en Zero aujourd'hui : la condition, le corps de la boucle, l'absence de `for` et de `do-while` dans le langage actuel, et le lien entre les boucles et les effets explicites.
Modélisation des données
- Shape (struct)Les shapes sont les types produit à la struct de Zero. Voici comment les déclarer, construire des valeurs, lire des champs et les passer à travers des fonctions — avec des exemples tirés des sources officielles.
- GénériquesComment fonctionnent les génériques en Zero : déclarer des paramètres de type sur les fonctions et les shapes, appeler des fonctions génériques, et le motif d'alias de type qui transforme de longues paramétrisations en noms propres.
- EnumsComment fonctionne `enum` en Zero : déclarer un ensemble fixe de variantes nommées, comparer des valeurs, et la frontière entre `enum` (étiquettes nues) et `choice` (unions étiquetées).
- Choice et matchComment `choice` déclare une union étiquetée en Zero et comment `match` branche de façon exhaustive sur ses variantes — la version Zero des types somme et du filtrage par motifs.
Effets et erreurs
- Capacité WorldZero n'a pas de stdout global, pas de système de fichiers ambiant, pas de réseau implicite. Tout ce qui touche au monde extérieur passe par une capacité `World` transmise à `main`. Voici pourquoi et comment.
- Raises et checkLes fonctions Zero déclarent leurs modes d'échec avec `raises` et les appelants les reconnaissent avec `check`. Voici comment le système fonctionne, pourquoi il n'y a pas de lancer silencieux, et comment ça interagit avec la capacité `World`.
Outils pour agents
- Diagnostics JSONLe compilateur Zero émet des diagnostics JSON lisibles par machine, avec des codes d'erreur stables et des plans de réparation structurés. Voici le format, pourquoi il existe et comment un agent les consomme.
- Conception agent-firstZero est construit autour d'une seule question : à quoi ressemble un langage de programmation quand les agents IA sont des utilisateurs de premier ordre dès le départ ? Voici les principes et les compromis.