Tài liệu Zero
Tài liệu tham khảo Zero ngắn gọn, đi kèm ví dụ. Đọc khái niệm, xem code, rồi luyện tập trong một hành trình Coddy.
Bắt đầu
- Zero là gìZero là ngôn ngữ lập trình hệ thống thử nghiệm của Vercel Labs, được thiết kế để agent AI là người dùng hạng nhất, không chỉ con người. Đây là Zero là gì và vì sao nó ra đời.
- Cài đặt ZeroCài trình biên dịch và bộ công cụ Zero chỉ với một lệnh curl. Đây là cách cài đặt, thêm vào PATH và kiểm tra bằng `zero --version`.
- Hello, WorldChương trình Zero đầu tiên của bạn: ý nghĩa từng phần của chương trình hello world chuẩn, cách chạy nó bằng `zero run`, và vì sao chỉ năm dòng code đã dùng đến `World`, `raises` và `check`.
- Zero CLITìm hiểu công cụ dòng lệnh `zero`: các lệnh con bạn sẽ dùng hằng ngày, đầu ra của từng lệnh, và cách cờ `--json` biến mọi lệnh thành luồng dữ liệu máy đọc được cho agent.
- Package trong ZeroCấu trúc của một package Zero: tệp manifest `zero.json`, thư mục `src/` và hệ thống target cho phép một package tạo ra tệp thực thi, thư viện và bài kiểm thử từ cùng một cây mã nguồn.
Kiến thức cơ bản về ngôn ngữ
- Binding letCách `let` hoạt động trong Zero: khai báo binding cục bộ, suy luận kiểu và chú thích kiểu tường minh, và vì sao Zero chỉ dùng một dạng binding thay vì nhiều từ khóa.
- Kiểu nguyên thủyCác kiểu có sẵn trong Zero: số nguyên có dấu và không dấu với mọi độ rộng, số thực, boolean, ký tự, chuỗi và kiểu rỗng Void.
- HàmCách hàm hoạt động trong Zero: từ khóa `fun`, tham số có kiểu, kiểu trả về, từ khóa phạm vi truy cập `pub` và vai trò của `raises` trong chữ ký hàm.
- If/ElseCách `if` và `else` hoạt động trong Zero: điều kiện boolean, thân nhánh, không có ép kiểu truthy, và cách câu lệnh điều kiện kết hợp với `match` để rẽ nhánh phong phú hơn.
- Vòng lặp whileCách vòng lặp `while` hoạt động trong Zero hiện nay: điều kiện, thân vòng lặp, việc chưa có `for` và `do-while` trong phiên bản đầu, và mối liên hệ giữa vòng lặp với hiệu ứng tường minh.
Mô hình hóa dữ liệu
- Shape (struct)Shape là kiểu tích (product type) giống struct của Zero. Đây là cách khai báo shape, tạo giá trị, đọc trường và truyền chúng qua các hàm, kèm ví dụ từ các mẫu chính thức.
- GenericCách generic hoạt động trong Zero: khai báo tham số kiểu cho hàm và shape, gọi hàm generic, và mẫu type alias biến những kiểu tham số hóa dài dòng thành tên gọn gàng.
- EnumCách `enum` hoạt động trong Zero: khai báo một tập cố định các biến thể có tên, so sánh giá trị, và ranh giới giữa `enum` (nhãn thuần) với `choice` (tagged union).
- Choice và matchCách `choice` khai báo một tagged union trong Zero và cách `match` rẽ nhánh đầy đủ theo các biến thể của nó: phiên bản kiểu tổng và so khớp mẫu của Zero.
Effect và lỗi
- Capability WorldZero không có stdout toàn cục, không có hệ thống tệp có sẵn ở khắp nơi, không có mạng ngầm. Mọi thứ chạm tới thế giới bên ngoài đều đi qua một capability `World` được truyền vào `main`. Đây là lý do và cách hoạt động.
- Raises và checkHàm trong Zero khai báo các trường hợp thất bại bằng `raises`, còn nơi gọi xác nhận chúng bằng `check`. Đây là cách cơ chế này hoạt động, vì sao không có lỗi bị ném ngầm, và nó kết hợp với capability `World` ra sao.
Công cụ cho AI agent
- Chẩn đoán JSONTrình biên dịch Zero xuất chẩn đoán dạng JSON mà máy đọc được, kèm mã lỗi ổn định và kế hoạch sửa lỗi có cấu trúc. Đây là định dạng, lý do nó tồn tại và cách agent sử dụng nó.
- Thiết kế agent-firstZero được xây dựng quanh một câu hỏi duy nhất: một ngôn ngữ lập trình sẽ trông thế nào nếu AI agent là người dùng hạng nhất ngay từ ngày đầu? Đây là các nguyên tắc và những đánh đổi của nó.