GAP-Gen: توليد تلقائي موجه لرمز بايثون

يمكن أن يكون إنشاء الشفرة التلقائي من وصفات اللغة الطبيعية مفيدًا للغاية أثناء عملية تطوير البرمجيات. في هذا العمل، نقترح منهج GAP-Gen، وهو منهج مُوجَّه لإنشاء شفرة بايثون تلقائيًا، يعتمد على قيود بنائية (Syntactic Constraints) وقيود معنوية (Semantic Constraints) لبايثون. نقدم أولًا قيودًا بنائية لبايثون على شكل "Syntax-Flow"، وهو نسخة مبسطة من شجرة التركيب المجردة (Abstract Syntax Tree - AST)، حيث تقلل من الحجم والتعقيد العالي لشجرة التركيب المجردة مع الحفاظ على المعلومات البنائية الأساسية للشفرة بايثون. وبالإضافة إلى Syntax-Flow، نقدّم Variable-Flow، الذي يُمثّل أسماء المتغيرات والدوال بشكل متسق عبر الشفرة بأكملها. في هذا العمل، بدلًا من التدريب المسبق (pretraining)، نركّز على تحسين عملية التدريب الدقيق (fine-tuning)، مما يقلل من المتطلبات الحسابية مع الحفاظ على أداء عالٍ في مهام إنشاء الشفرة بايثون تلقائيًا. يقوم GAP-Gen بتعديل نماذج لغة قائمة على المحولات (Transformer-based language models) T5 وCodeT5 باستخدام مجموعات بيانات تحويل الشفرة إلى وصف (Code-to-Docstring) المتمثلة بـ CodeSearchNet، وCodeSearchNet AdvTest، وCode-Docstring Corpus من EdinburghNLP. تُظهر تجاربنا أن GAP-Gen يحقق نتائج أفضل في مهمة إنشاء الشفرة بايثون تلقائيًا مقارنة بالعمل السابق.