HyperAIHyperAI
منذ 2 أشهر

SPoC: البحث عن الرموز الوهمية لتحويلها إلى رموز برمجية

Sumith Kulal; Panupong Pasupat; Kartik Chandra; Mina Lee; Oded Padon; Alex Aiken; Percy Liang
SPoC: البحث عن الرموز الوهمية لتحويلها إلى رموز برمجية
الملخص

نعتبر مهمة تحويل الرموز الوهمية إلى برامج طويلة وصحيحة وظيفيًا. مع وجود حالات الاختبار كآلية لتحقق من صحة البرامج، نقوم بالبحث في فضاء الترجمات الممكنة للرموز الوهمية لإيجاد برنامج يمر بالتحقق. ومع ذلك، بدون تخصيص الائتمان بشكل صحيح لتحديد مصادر فشل البرنامج، يكون من الصعب توجيه البحث نحو برامج أكثر وعودًا. نقترح إجراء تخصيص الائتمان بناءً على إشارات الأخطاء في التجميع، والتي تمثل 88.7٪ من حالات فشل البرنامج. بوضوح، نعالج تحويل كل سطر من الرموز الوهمية كجزء متقطع من البرنامج، وفي كل مرة يفشل فيها البرنامج المُصنَّع في التجميع، تحاول طريقة تحديد موقع الخطأ تحديد الجزء المسؤول عن الفشل. ثم نركز البحث على بدائل الترجمة للرموز الوهمية لتلك الأجزاء. للتقدير، جمعنا مجموعة بيانات SPoC (Search-based Pseudocode to Code) التي تحتوي على 18,356 برنامجًا مع رموز وهمية مكتوبة بواسطة البشر وحالات اختبار. تحت ميزانية قدرها 100 عملية تجميع للبرنامج، يؤدي أداء البحث إلى تحسين معدل نجاح التركيب من استخدام أفضل ترجمة واحدة للرموز الوهمية من 25.6٪ إلى 44.7٪.