← أحدث الأبحاث
🤖 AI

Specification-Based Code-Text-Code Reengineering for LLM-Mediated Software Evolution

تقترح هذه الورقة إطار عمل لإعادة الهندسة من نوع (Code2Text2Code) قائم على المواصفات، يعمل على الحد من الانحراف الدلالي وعدم الاتساق السلوكي في تطور البرمجيات بوساطة النماذج اللغوية الكبيرة، وذلك عبر تحويل الكود المصدري إلى مواصفات نصية محايدة للتحقق التكراري قبل إعادة توليد الكود المستهدف.

المؤلفون الأصليون: Oleg Grynets, Vasyl Lyashkevych, Arsen Dolichnyi, Roman Piznak, Taras Zelenyy, Volodymyr Morozov

نُشر 2026-05-26
📖 4 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Oleg Grynets, Vasyl Lyashkevych, Arsen Dolichnyi, Roman Piznak, Taras Zelenyy, Volodymyr Morozov

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك تحاول ترجمة وصفة معقدة، مكتوبة بخط اليد من مطبخ جدتك في أوكرانيا في الخمسينيات، إلى تطبيق وصفات رقمي حديث لفرن ذكي في عام 2024.

إذا طلبت من مترجم (ذكاء اصطناعي) ببساطة أن "يحول هذه الوصفة القديمة إلى واحدة جديدة"، فقد ينجح في نقل الكلمات لكنه سيفسد عملية الطهي. قد يحتفظ بتعليمات مثل "استخدم ملعقة خشبية" بينما يحتاج فرنك الجديد إلى "مستشعر رقمي"، أو قد يضيف بالخطأ "مكوناً سرياً" لم يكن موجوداً في الأصل. النتيجة ستكون وصفة تبدو صحيحة، لكنها قد تحرق كعكتك.

تقترح هذه الورقة البحثية طريقة أذكى للقيام بهذه الترجمة، ليس فقط للوصفات، بل لـ البرمجيات الحاسوبية. وهم يسمونها إعادة هندسة (الكود-النص-الكود).

إليك كيف يعمل ذلك، مقسماً إلى خطوات بسيطة:

1. المشكلة: فخ "الترجمة المباشرة"

عادةً، عندما يستخدم الناس الذكاء الاصطناعي لتغيير البرمجيات من لغة إلى أخرى (مثل الانتقال من Python إلى Java)، فإنهم يقومون بترجمة (كود-إلى-كود).

  • المخاطرة: قد ينسخ الذكاء الاصطناعي أسلوب الكود القديم بدلاً من معناه. الأمر يشبه ترجمة قصيدة كلمة بكلمة وفقدان العاطفة. قد يبدو الكود الجديد صحيحاً ولكنه يتصرف بشكل مختلف، أو قد يغفل عن قواعد خفية كان الكود القديم يعتمد عليها.

2. الحل: "المترجم المحايد" (الوسيط)

بدلاً من القفز مباشرة من الكود القديم إلى الكود الجديد، يضع المؤلفون خطوة وسيطة: مواصفات النص المحايد.

فكر في هذا كأنه مخطط تفصيلي باللغة الإنجليزية البسيطة يصف ماذا تفعل البرمجيات، دون ذكر كيف تم بناؤها في اللغة القديمة.

  • الخطوة 1 (من الكود إلى النص): يقرأ الذكاء الاصطناعي الكود القديم ويكتب وصفاً محايداً. يقول أشياء مثل: "هذه الدالة تأخذ قائمة من الأرقام، وتجمعها، ثم تحفظ النتيجة في قاعدة بيانات". إنه يتجاهل الحيل البرمجية المحددة المستخدمة في الكود القديم.
  • الخطوة 2 (التحقق): يقوم البشر أو أدوات أخرى بفحص هذا الوصف للتأكد من أنه يطابق الأصل تماماً. هل فاتتنا خطوة؟ هل اخترعنا خطوة جديدة؟
  • الخطوة 3 (من النص إلى الكود): يقرأ الذكاء الاصطناعي هذا الوصف النظيف والمحايد ويكتب الكود الجديد باللغة المستهدفة. ولأن الذكاء الاصطناعي لم يعد ينظر إلى الكود القديم، فإنه لن ينسخ الأسلوب القديم عن طريق الخطأ. إنه يبني الكود الجديد تماماً كما يصفه المخطط.

3. أدوات "شبكة الأمان"

تشرح الورقة أن هذا لا يقت pula للأمر بمجرد كتابة النصوص؛ بل يتعلق ببناء نظام سلامة حول العملية:

  • "مدقق الحقائق" (الاسترجاع): قبل أن يكتب الذكاء الاصطناعي أي شيء، يبحث عن الحقائق في مكتبة من المستندات، والرسوم التوضيحية، ومقتطفات الكود ليتأكد من أنه لا يخمن. إنه مثل طباخ يراجع كتاب طبخ قبل إضافة الملح.
  • استراتيجية "التقطيع" (Chunking): لا يمكنك قراءة مكتبة كاملة في لقمة واحدة. يقوم النظام بتقسيم الكود إلى "قطع" صغيرة ومنطقية (مثل الفصول) حتى لا يرتبك الذكاء الاصطناعي أو يفقد الروابط.
  • "المخطط" (الرسوم البيانية والأنطولوجيا): يبني النظام خريطة (رسم بياني) توضح كيفية اتصال الأجزاء المختلفة للبرمجيات. إذا كان لدى البرنامج القديم جسر بين جزيرتين، فيجب أن يحتوي البرنامج الجديد على نفس الجسر. تساعد هذه الخريطة في قياس ما إذا كانت الترجمة ناجحة.

4. قياس النجاح: هل فقدنا أي شيء؟

كيف تعرف أن البرمجيات الجديدة هي نفسها البرمجيات القديمة؟ ابتكر المؤلفون "حاسبة الفقد".
تخيل أنك تنقل الأثاث من منزل قديم إلى منزل جديد.

  • الحفاظ على الهيكل: هل نقلت جميع الغرف؟ (نعم/لا)
  • استقرار الواجهة: هل لا يزال بإمكانك فتح الباب الأمامي بنفس الطريقة؟ (نعم/لا)
  • التشابه الإجمالي: درجة تخبرك بمدى بقاء "المنزل" الأصلي بعد عملية النقل.

5. ماذا وجدوا؟

اختبر الباحثون هذه الطريقة على أنواع مختلفة من الكود (قواعد بيانات SQL، سكربتات الويب، البرمجة العامة).

  • النتيجة: استخدام الوسيط "النص المحايد" كان أفضل من محاولة ترجمة الكود مباشرة. لقد قلل من الأخطاء وجعل الكود الجديد يتصرف بشكل أكثر تشابهاً مع القصد الأصلي.
  • العائق: في بعض الأحيان، يحتاج الذكاء الاصطناعي إلى تدخل بشري لتوضيح جزء غامض من الكود القديم. إنها ليست عملية آلية بالكامل بعد؛ بل هي عملية "بشر في الحلقة" (human-in-the-loop).

الصورة الكبيرة

تجادل هذه الورقة بأننا لا ينبغي أن نعامل تحديثات البرمجيات كمجرد مهمة "نسخ ولصق". بدلاً من ذلك، يجب أن نتعامل معها كـ إعادة هندسة.

  • الطريقة القديمة: "إليك الكود القديم؛ أعطني الكود الجديد." (خطيرة، وغير شفافة).
  • الطريقة الجديدة: "إليك الكود القديم. أولاً، اشرح ما يفعله باللغة الإنجليزية البسيطة. تحقق من هذا الشرح. ثم ابنِ الكود الجديد بناءً على هذا الشرح." (آمنة، شفافة، وقابلة للتحكم).

باختاً، هم يعلمون الذكاء الاصطناعي التوقف عن ترجمة الكلمات والبدء في ترجمة المعنى، باستخدام مخطط محايد وواضح لضمان عدم ضياع أي شيء في الزحام.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →