Bend: زبونی که نمیذاره AI باگ بده
خلاصهٔ کاملتر
تیم Bend توی معرفی این زبان میگه فرضشون اینه که آدمها کمکم دیگه کد نمینویسن و نمیخونن، ولی هنوز به یه زبون بدون ابهام احتیاج داریم تا به AI بگیم دقیقاً چی میخوایم. Bend قراره همون باشه و روی سه پایه میایسته: قانون برای دقیقتر بودن از زبون طبیعی، اثبات برای بررسی ماشینی اینکه AI درست پیاده کرده، و یه کامپایلر سریع.
قلب ماجرا فایلیه به اسم LAWS.bend. توش قانونهایی مینویسی که برنامه هیچوقت نباید بشکنه، مثل «مجموع همهٔ موجودیها باید صفر باشه» یا «بازیکن نباید از دیوار رد شه». بعدش کامپایلر هر بار که کد ویرایش شد، اثبات ریاضی میخواد. یعنی اگه AI موقع اضافه کردن یه فیچر قانونو بشکنه، بهجای اینکه باگش مرج شه، مجبوره دوباره تلاش کنه:
law you_cant_win:
for moves: List<Game.Move>
board = Game.replay(Game.start(), moves)
{Game.is_won(board) == False{} : Bool}به گفتهٔ سازندهها این یعنی LAWS.bend در واقع همون AGENTS.md هست، منتها پشتش اثبات خوابیده. کار عملیش هم سادهست: از ایجنت میخوای قانونها رو فرموله کنه و بعد از هر ویرایش bend PROOF.bend رو اجرا کنه.
سمت اجرا، هدف اینه که روی CPU به سرعت C برسه و روی GPU به سرعت CUDA. به لطف تایپهای قوی و خلوص و خطی بودن مقادیر، کل زبون روی GPU اجرا میشه. موازیسازی هم بدون thread و lock و کرنلنویسی انجام میشه: کار رو دو تیکه میکنی و Bend خودش پخشش میکنه بین هستهها و آخر جمعشون میکنه. چک کردن اثباتها هم ادعاشون اینه که زیر یه ثانیهست، جایی که بقیهٔ ابزارها دقیقهها وقت میبرن.
خود تیم بخش بزرگی از متن رو گذاشته برای محدودیتها. Bend 2 با Bend 1 و HVM سازگار نیست، هیچی استنتاج نمیشه و همهچیز باید annotate شه، type class و trait و ماکرو نداره، رشتهها لیست پیوندی کاراکترن، پس پردازش متن کنده، عدد فقط Nat و U32 و F32 داره و ویندوز هم پشتیبانی نمیشه. جالبتر اینکه خودشون میگن ۹۹٪ کامپایلر (نه کرنلش) رو AI نوشته و هنوز کامل ممیزی نشده.
نکات کلیدی:
- LAWS.bend قانونها رو نگه میداره و bend PROOF.bend اثباتشون رو چک میکنه
- هدف عملکرد: همسرعت C روی تکهسته و همسرعت CUDA روی GPU، با اجرای کامل زبون روی GPU
- موازیسازی از جنس تقسیم و غلبهست و به تعادل فراخوانیها نیاز داره؛ موازیسازی منعطف بعداً میاد
- تارگتها: C و Metal و CUDA و JavaScript؛ تارگت JS تکهستهست و گرافیک و صدا نداره
- بدون تاکتیک و جستوجوی اثبات، بدون دیباگر و پروفایلر و LSP، و بدون ویندوز (روی WSL کار میکنه)




