
بقلم: ليلى | محررة أدوات المطورين · صوت تحريري بإشراف بشري
ما الذي يحدث حين تكتب نماذج الذكاء الاصطناعي الكود وتتولى أنت مراجعته؟ المشكلة ليست الثقة العمياء بالمخرجات، بل غياب الأدوات اللغوية التي تجيب بدقة على سؤال: ماذا يمكن لهذا البرنامج أن يلمس، وما درجة يقيننا؟ Jacquard هو مشروع بحثي من FriendMachine يحاول الإجابة على هذا السؤال بجعله جزءاً من اللغة نفسها، لا من التعليقات أو السجلات أو ذاكرة المطوّر.
النسخة 0.1 متاحة الآن كنموذج أولي بحثي يعمل من البداية حتى النهاية (وفقاً للمستودع الرسمي)، وهي تحمل بصراحة لافتة ملف LIMITS.md الذي يضع الحدود الصادقة لما يستطيع وما لا يستطيع. الفكرة الجوهرية هي أن الإنسان المراجع للكود يحتاج إلى لغة تخبره بالتأثيرات المحتملة والشكوك الاحتمالية دون أن يقرأ كل سطر.
خمسة مكونات تُشكّل جوهر اللغة يمكن استعراضها على النحو التالي:
- التوقيعات تحمل التأثيرات مباشرةً. توقيع مثل
(text) ->{net} textيخبرك فوراً أن الدالة قد تنفّذ تأثير الشبكة. لا يقبل runtime جاكوار أي تأثيرات على العالم الخارجي دون تفويض صريح عبر--allow، وهذا تطبيق على مستوى اللغة، وليس بديلاً عن sandbox على مستوى نظام التشغيل. - تشغيل الكود ذاته على عوالم متعددة. يمكن تشغيل البرنامج الواحد على الشبكة الحقيقية أو على سيناريو مُعدّ أو تسجيل من الأسبوع الماضي أو نموذج احتمالي لسلوك الخادم — فقط بتبديل الـ handler. هذا يجعل سؤال “ماذا سيفعل العميل لو انقطع الـ API؟” اختباراً اعتيادياً بدلاً من تخمين.
- الاحتمالات بدقة رياضية لنماذج الحالات المحدودة. يمكن للبرنامج أخذ عينات مرجّحة وتسجيل أدلة، ثم سرد كل النتائج الممكنة بدقتها الاحتمالية. العرض التوضيحي للإصلاح يعالج اختباراً فاشلاً كدليل، ويحسب الرقعات الكودية المحتملة ونسب احتمالها — فيخلص إلى رقعتين ناجيتين: الإصلاح المقصود بنسبة 0.75 ورقعة تتحايل على مجموعة الاختبارات بنسبة 0.25، وإضافة اختبار واحد إضافي تحذف المتحايلة وتبقي الإصلاح الصحيح كـ diff أحادي السطر:
- sub + add. - الهوية الكنونية تتجاهل الشكل وتهتم بالبنية. جاكوار يحسب هاش للبنية المحلولة بعد حذف التعليقات والتنسيق وأسماء المتغيرات المحلية. معنى ذلك أن إعادة التسمية أو إعادة التنسيق لا تُغيّر هوية البرنامج، وأن الاختبارات النقية لا تُعاد إلا إذا تغيّر الكود الفعلي أو محتوى الاعتماديات.
- المعالجات متعددة الاستئناف تمكّن الاستدلال الدقيق. handler يمكنه استئناف continuation صفراً أو مرةً أو عدة مرات — هذه القدرة هي ما يجعل الاستنتاج البايزي الدقيق مجرد كود مكتبة لا ميزة runtime. المثال الحرفي: البرنامج يُشغَّل مرة مع
Trueومرة معFalseويجمع النتيجتين، فيطبع3.
على الصعيد التقني، يتضمن المشروع: صياغة سطحية بامتداد .jac، ومدققاً ومفسراً مكتوبَين بـ OCaml باستخدام أسلوب CPS، وmutated backend بياني يُصدر كود C عبر AOT، وأداة سطر أوامر، ومكتبة قياسية مكتوبة بجاكوار نفسها، وإطار اختبار اسمه Warp. النواة تتكون من 27 شكلاً فقط، كل منها triple بصيغة (head, meta, args). الإصدار RC1 مثبّت بـ 554 حالة Alcotest/QCheck و32 سجل cram و21 مثال توثيقي، مع مسارات sanitizer ومسارب fuzz أصلية (وفقاً للمستودع).
التثبيت لا يتطلب OCaml أو opam؛ أمر واحد يكفي على Linux x86-64 وmacOS Intel وmacOS Apple Silicon:
curl -fsSL https://raw.githubusercontent.com/jbwinters/jacquard-lang/jacquard-core-0.1-rc3/scripts/install.sh | shالمُثبِّت يكتشف نظامك ومعالجك تلقائياً، ويرفض التثبيت عند عدم تطابق SHA-256. الاختبار الأول هو تشغيل حساب المضروب الذي يُخرج 120، أما العرض الأشمل فهو تشغيل سياسة واحدة عبر عوالم احتمالية متعددة:
sh ~/.local/share/jacquard/demos/case-studies/release-risk/run.shالرهان الأساسي وراء كل هذا: حين يكتب الذكاء الاصطناعي غالبية الكود، يحتاج الإنسان المراجع إلى لغة تُجيب بنفسها على أسئلة “ماذا يمكن لهذا البرنامج أن يلمس وكيف” — دون الاضطرار لقراءة كل سطر. جاكوار يقترح أن حل هذه المعضلة يبدأ من تصميم اللغة ذاتها، وليس من الأدوات الخارجية المضافة لاحقاً. هل يصمد هذا الرهان على نطاق الإنتاج؟ ذلك ما ستكشفه المرحلة التالية بعد إزالة تصنيف “نموذج أولي”.
يمكن قراءة المقدمة المفصّلة للمشروع والاطلاع على أرشيف الإصدارات على GitHub.







