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

تسلط الورقة البحثية الجديدة الضوء على ثلاثة جوانب رئيسية تؤثر بشكل مباشر على جودة النتائج: 1) تأثير الحلقات الراجعة الآلية، 2) اختيار النموذج اللغوي الكبير (Large Language Model) المناسب، و3) تأثير التعديلات السلوكية للشيفرة. تركز الدراسة على تأثير هذه المتغيرات الثلاثة على نظام ترجمة الشيفرات من لغة C إلى Rust، وهو حالة استخدام جذابة في الصناعة بسبب ضمانات الأمان التي توفرها لغة Rust.

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

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