تأمل لعبة طفل مكتوبة في نظام سكراتش: تظهر الشخصية في منتصف الشاشة ثم تقفز فوراً إلى الزاوية. الحركة الأولى لم يرها أحد — لقد اختفت بين الإطارات. إزالتها تعني ألا يلحظ اللاعب شيئاً، لكن كيف نضمن ذلك تلقائياً؟ تعتمد أدوات التحسين الحالية لمثل هذه اللغات البصرية على التحليل والاختبار دون تقديم ضمانات شكلية. وفي الوقت نفسه، يحتوي مستودع سكراتش على عشرات ملايين المشاريع التي كتبها أطفال وهواة — جمهور لا يستطيع ملاحظة أو تصحيح خطأ يُدخله مُحسِّتٌ آلي. وهنا تبرز الثقة كعاملٍ جوهري: فالمُحسِّن الذي يُغير لعبة الطفل بصمت هو أسوأ من لا شيء. يصطدم النهج الكلاسيكي من عالم المُصرِّفات المُوثَّقة — إثبات صحة التحويلات مرة واحدة وإلى الأبد — بالتعددية التعاونية ونموذج الأحداث والتصيير المُلازمين لسكراتش. وهنا تظهر فجوة: تعرف المناهج الصورية كيف تتعامل مع C التسلسلية، بينما تحتاج الكودات الحية النابضة لرسوم متحركة مدرسية إلى أسس جديدة.
قسَّم مطورو CertiBlock النظام إلى جزأين غير متكافئين: مُحسِّن غير خاضع للتدقيق ومُراقب موثوق. يمسح المُحسِّن المشروع ويبني غراف التبعيات ويقدم اقتراحاً بحذف أمر ميت أو زي غير مستخدم مثلاً. يُرفق بالاقتراح «شهادة» — بيان يذكر نوع التعديل، والمجموع الاختباري للبرنامج الأصلي والمُعدَّل، وعدسة المراقبة. العدسة مفهوم معلم يُحدد ما يراه اللاعب بالضبط: الإطارات، الأصوات، قيم المتغيرات على الشاشة، وليس التعليقات الداخلية. أما المُراقب، فيعمل كمفتش جمركي دقيق، فيُفكك نسختي البرنامج من جديد، ويتأكد من المجاميع الاختبارية، ويُعيد حساب كل شرط تتوقف عليه سلامة التغيير. لا يُصدق أي ادعاء من المُحسِّن، حتى لو قدم حساباته بأمانة. الآلية المركزية هي مبرهنة الإطار التعاوني المُمَيْكَنَة في مساعد البراهين لين. وتنص على أن الكتابة في مورد يُعاد الكتابة فوقه في نفس المسار دون تسليم السيطرة للمجدول ودون مراقبة من الخارج يمكن حذفها. المبرهنة معلمة بنوع المورد وحد المراقبة؛ ويغطي برهان واحد حذف المتغيرات الميتة وحذف تحركات الكائنات غير المرئية. يطبق المُراقب في بايثون خوارزميتين حاسمتين تم توثيق نسختين مرجعيتين لهما في لين وتصريفهما إلى كود تنفيذي. وهناك تأمين إضافي: الأوراكل التفاضلي؛ فبعد قبول التعديل يُشغِّل كلا النسختين على آلة سكراتش الافتراضية الحقيقية تحت ظروف حتمية متطابقة ويُقارن الأثر المرئي للاعب.
أظهرت التجربة على 300 مشروع اختيرت عشوائياً من المستودع العام أن المُراقب قبل تعديلاً واحداً على الأقل يحافظ على السلوك في 94.3% من الحالات (283 من 300). وكانت الغالبية لتنظيف الموارد غير المستخدمة والتعليقات، لكن تحسينات دلالية أعمق — كحذف كتابات ميتة بصرية — نجحت على 17 مشروعاً. بلغ متوسط زمن الفحص لكل مشروع عشرات الميلي ثانية، وبلغ حجم البيانات المُوفَّرة مئات الكيلوبايتات. النتيجة الجوهرية تتعلق بالسلامة: كشف تدقيق مستقل للنظام المُدمج عن ثماني حالات قبول خاطئ لم تكتشفها اختبارات الفصائل المنفردة. نشأت جميعها من قنوات مراقبة مفقودة — فمثلاً، كان كائن آخر يقرأ فهرس الزي، وكان الحذف يزيحه. تم إصلاح الأخطاء، وأُغلقت كل منها باختبار تراجعي. حملة تضاد بين الفصائل من 4278 تعديلاً مُشوِّشاً — مع إضافة تغييرات دخيلة — لم تُسفر عن أي تسرب خاطئ. كان من شأن دراسة استئصالية أُسقِطت فيها الشروط الدلالية أن تؤدي إلى قبول عشرات الاستبدالات غير الآمنة، لكن المُراقب الكامل رفضها كلها. لم يسجل الأوراكل التفاضلي على الآلة الافتراضية أي انحراف سلوكي بين التعديلات المقبولة.
تعني هذه النتيجة أنه قد بُني للمرة الأولى للغة موازية مدارة بالأحداث نظام إعادة كتابة يحمل كل تغيير فيه شهادة تُدقق بواسطة نواة موثوقة مدمجة. وهذا ينقل انضباط المُصرِّفات المُوثَّقة إلى ميدان المستخدم النهائي حيث ثمن الخطأ باهظ. استعارة الجمارك تنجح عملياً: لا يحتاج المُراقب أن يفهم كيف وجد المُحسِّن المرشح للحذف؛ إنما يُطابق «الحمولة» مع «التصريح»، والحمولة هنا هي البرنامج نفسه. تعيير العدسة يسمح بمعالجة موحدة للتعديلات الآمنة للاعب دون المحرر. تعتمد المبرهنة المُؤطْره للتعاون والمُمَيْكَنَة على فرضيتين فقط من آلة النموذج، ولا ترتبط بفصيل محدد من التعديلات، مما يجعلها صارمة وقابلة للتمديد في آن. القاعدة الموثوقة نحو عشرة آلاف سطر بايثون ونحو ستة آلاف سطر لين — حجم يمكن لفرق صغيرة تدقيقه.
يُرجَّح أن يُنقل الإطار إلى لغات أحداث أخرى ذات تعددية تعاونية، لأن المبرهنة التعاونية لا تتطلب سوى مُجدول يُثبت الملاحظات صراحة. الهدف القريب: سد الفجوة بين المرجع المُوثَّق على لين والمُراقب المنشور على بايثون عبر استخلاص آلي للكود، وكذلك توسيع النهج ليشمل التعددية الإزاحية. دمج ذلك في محرر سكراتش الحقيقي قد يُظهر للمؤلف في الزمن الحقيقي تبسيطات آمنة لا تُخِل بتصميم اللعبة. وفي الأفق: أنظمة هجينة يقترح فيها نموذج لغوي كبير تعديلات، ويُراجعها المُراقب بتجرد كما يُراجع الآن التحسينات الآلية.
تطال المنهجية تطوير بيئات البرمجة التعليمية، وأدوات إعادة الهيكلة، والمُصرِّفات المُوثَّقة. كما تقدم نموذجاً لبناء مساعدات ذكاء اصطناعي موثوقة تولد الكود: يُنتج مُولِّد غير خاضع للتدقيق اقتراحاً، ويقبله أو يرفضه مُراقب صوري مدمج.
يجب استكمال جسر التوثيق بين النموذج المُبرهَن في لين والمُراقب الصناعي في بايثون، وتوسيع نطاق تغطية فصائل التعديلات، مثلاً لدمج السكربتات. وموازاةً لذلك، دراسة سلوك النظام مع مشاريع ضخمة جداً تحوي آلاف الكائنات.
يتصل العمل مباشرة بمشكلة المعالجة الآلية المضمونة للبرامج التي يكتبها غير المتخصصين — وهو تحدٍّ قديم على تقاطع المناهج الصورية والتفاعل الإنساني الحاسوبي. كما يُجسِّد كيف يمكن للبراهين المعلمة أن تُخفِّض كلفة التوثيق لفئة كاملة من التحسينات، متوجهاً إلى أسئلة أساسية حول كفاية المعلومات الشرطية للصحة.
هذا القسم موجَّه إلى مؤلف العمل وزملائه. الأعمال المجاورة عثر عليها بحثٌ دلالي في أرشيفنا، لا بتطابق الكلمات. نحن لا نقيّم العمل: نعرض الحقل من حوله.
ماذا يفعل هذا العمل
تقدم هذه الورقة نظام CertiBlock للتحسين الآمن لمشاريع Scratch: حيث يقترح مُحسِّن غير موثوق إزالة الكود الميت، بينما يتحقق مُراقِب موثوق من كل تعديل بالاعتماد على نظرية الإطار المُبرهَنة آليًا في Lean. أظهرت التجارب على 300 مشروع عشوائي أن المُراقِب قبل تعديلًا واحدًا على الأقل يحافظ على السلوك في 94.3% من الحالات.
أين تكمن قوته
تكمن القوة في الضمان الرسمي للحفاظ على السلوك الملاحَظ أثناء التحسين، والمُكيَّف ليتوافق مع تعدد المهام التعاوني ونموذج الأحداث في Scratch، مما يسد الفجوة بين التحقق التقليدي للمُصرِّفات ولغات البرمجة المرئية الفعلية.
إلى أين يمكن المضي
يستحق التجربة
أعمال قريبة في أرشيفنا
الأرشيف خالٍ حول هذا العمل: أقرب تحليل عند 0.57 فقط، مقابل 0.64 المعتادة. يبدو أن الحفر بجواره كان نادرًا.
كما كتبه المؤلفون، بالإنجليزية arXiv:2607.00563
Block-based end-user languages such as Scratch run tens of millions of programs. Existing tools establish behavior preservation through program analysis and testing without a checked guarantee. We turn optimization into certificate-carrying source-to-source rewriting. An untrusted optimizer proposes a rewrite; a trusted, fail-closed checker accepts it only after recomputing every side condition that the rewrite's behavior preservation depends on under an explicit observation lens. The checker is the sole authority: given a correct checker and a small, explicitly stated set of model-to-VM assumptions, an optimizer bug cannot mint an unsound acceptance. The observation lens is a parameter, and the central soundness argument is a cooperative-frame refinement theorem: a write overwritten before any thread observes it, within a window in which no thread yields, can be removed. We mechanize this theorem in Lean and show that one parametric statement covers two concrete rewrite families instantiated to variable state and renderer state. We build a checker for six rewrite families and evaluate it on 300 real Scratch projects. The checker accepts a behavior-preserving rewrite on 94.3% of projects (283 of 300); certification costs under one tenth of a second per project; and a cross-family adversarial campaign of 4,278 perturbed rewrites produces zero false accepts. An audit found eight false accepts the per-family test suites missed; each is now rejected. An ablation that strips the semantic side conditions, leaving analysis and testing alone, ships rewrites the virtual machine confirms change behavior; the full checker rejects every one. The result shows how to provide behavior-preservation guarantees for a concurrent, event-driven, end-user language. The checker recomputes every required condition instead of trusting optimizer claims, keeping the trusted base small.
كشف تدقيق النظام على يد متخصص مستقل عن ثماني حالات قبول خاطئ فاتت اختبارات تقليدية على كل فصيل تعديل. ارتبطت جميعها بأن كائناً كان يتلصص على آخر عبر قنوات غير متوقعة — مثلاً بقراءة رقم زي كان يتغير عند حذف مورد غير مستخدم. بعد الإصلاح، ثُبِّتت الأخطاء إلى الأبد بواسطة اختبارات تراجعية.