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