وثائق 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كيف تُنظَّم حزمة Zero: بيان `zero.json`، ومجلد `src/`، ونظام الأهداف الذي يسمح لحزمة واحدة بإنتاج ملفات تنفيذية ومكتبات واختبارات من شجرة المصدر نفسها.
أساسيات اللغة
- ربط letكيف تعمل `let` في Zero: الإعلان عن روابط محلية، استنتاج النوع والشروح الصريحة، ولماذا تستخدم Zero شكل ربط واحدًا بدلًا من كلمات مفتاحية متعدّدة.
- الأنواع الأوّليةالأنواع المضمَّنة التي تُعطيك إيّاها Zero جاهزة: أعداد صحيحة بإشارة وبدون إشارة بكل عرض، وكسور عشرية، وقيم منطقية، ومحارف، ونصوص، والنوع الفارغ Void.
- الدوالكيف تعمل الدوال في Zero: كلمة `fun`، المعاملات بأنواعها، أنواع الإرجاع، مُعدِّل الرؤية `pub`، ودور `raises` في توقيع الدالة.
- If/Elseكيف تعمل `if` و`else` في Zero: الشروط المنطقية، أجسام الفروع، غياب التحويل الضمني لقيم الصدق، وكيف تنسجم الشروط مع `match` لتفرّع أغنى.
- حلقات whileكيف تعمل حلقات `while` في Zero اليوم: الشرط، جسم الحلقة، غياب `for` و`do-while` في اللغة المبكّرة، وما علاقة الحلقات بالتأثيرات الصريحة.
نمذجة البيانات
- Shape (Structs)البِنى shapes هي الأنواع المنتجة الشبيهة بـ struct في Zero. إليك كيفية تعريفها، وبناء قيم منها، وقراءة الحقول، وتمريرها عبر الدوال — مع أمثلة من العيّنات الرسمية.
- Genericsكيف يعمل التعميم في Zero: إعلان معاملات النوع على الدوال والبِنى، استدعاء الدوال العامة، ونمط اسم النوع المستعار الذي يحوّل التعميمات الطويلة إلى أسماء نظيفة.
- Enumsكيف تعمل `enum` في Zero: إعلان مجموعة ثابتة من المتغيِّرات المُسمّاة، مقارنة القيم، والخطّ الفاصل بين `enum` (تسميات بسيطة) و`choice` (اتّحادات موسومة).
- Choice & Matchكيف يُعلن `choice` اتّحادًا موسومًا في Zero وكيف يتفرّع `match` بشكل شامل على متغيِّراته — نسخة Zero من أنواع المجموع ومطابقة الأنماط.
التأثيرات والأخطاء
- قدرة WorldZero ليس فيها stdout عمومي، ولا نظام ملفات محيط، ولا شبكة ضمنية. كل ما يمسّ العالم الخارجي يتدفّق عبر قدرة `World` تُمرَّر إلى `main`. إليك السبب والكيفية.
- Raises & Checkتُعلن دوال Zero أوضاع فشلها بـ `raises` ويُقرّ المستدعون بها بـ `check`. إليك كيف يعمل النظام، ولماذا لا يوجد رمي صامت، وكيف يتفاعل مع قدرة `World`.
أدوات الوكلاء
- تشخيصات JSONيُصدر مترجم Zero تشخيصات JSON قابلة للقراءة آليًا برموز أخطاء مستقرّة وخطط إصلاح مهيكلة. إليك الصيغة وسبب وجودها وكيف يستهلكها الوكيل.
- تصميم موجَّه للوكلاءZero مبنية حول سؤال واحد: كيف تبدو لغة برمجة عندما يكون وكلاء الذكاء الاصطناعي مستخدمين من الدرجة الأولى منذ اليوم الأول؟ إليك المبادئ والمقايضات.