انٽيل اوپن سورس ڪنٽرول فلاگ مشين لرننگ سسٽم ڪوڊ جي غلطين کي سڃاڻڻ لاءِ

Intel دريافت ڪيو آهي ControlFlag تحقيقي منصوبي سان لاڳاپيل ترقيات جنهن جو مقصد ڪوڊ جي معيار کي بهتر بڻائڻ لاءِ مشين لرننگ سسٽم ٺاهڻ آهي. پروجيڪٽ پاران تيار ڪيل ٽول کٽ، موجوده ڪوڊ جي وڏي مقدار تي تربيت يافته ماڊل جي بنياد تي، اعليٰ سطحي ٻولين جهڙوڪ C/C++ ۾ لکيل ماخذ متنن ۾ مختلف غلطين ۽ بي ضابطگين جي نشاندهي ڪرڻ جي اجازت ڏئي ٿي. سسٽم موزون آهي ڪوڊ ۾ مختلف قسم جي مسئلن جي نشاندهي ڪرڻ لاءِ، ٽائپس ۽ غلط قسم جي مجموعن کي سڃاڻڻ کان وٺي، پوائنٽر ۽ ياداشت جي مسئلن ۾ غائب NULL قدر چيڪن جي نشاندهي ڪرڻ لاءِ. ControlFlag ڪوڊ C++ ۾ لکيل آهي ۽ MIT لائسنس تحت کليل ذريعو آهي.

GitHub ۽ ساڳين عوامي ذخيرن ۾ شايع ٿيل اوپن سورس منصوبن جي موجوده ڪوڊ ايري جي شمارياتي ماڊل جي تعمير ڪندي سسٽم خود سکيا آهي. ٽريننگ اسٽيج تي، سسٽم ڪوڊ ۾ جوڙجڪ جي تعمير لاء عام نمونن جو تعين ڪري ٿو ۽ انهن نمونن جي وچ ۾ ڪنيڪشن جو هڪ نحوي وڻ ٺاهي ٿو، پروگرام ۾ ڪوڊ جي عمل جي وهڪري کي ظاهر ڪري ٿو. نتيجي طور، ھڪڙو حوالو فيصلو ڪرڻ وارو وڻ ٺاھيو ويو آھي جيڪو سڀني تجزياتي ماخذ ڪوڊ جي ترقي جي تجربي کي گڏ ڪري ٿو.

جائزو هيٺ ڏنل ڪوڊ نمونن جي سڃاڻپ جي ساڳئي عمل مان گذري ٿو جيڪي حوالن جي فيصلي واري وڻ جي خلاف چڪاس ڪيا ويا آهن. پاڙيسري شاخن سان وڏيون تفاوت ظاهر ڪن ٿا ته نمونن جي چڪاس ۾ بيضابطگي جي موجودگي. سسٽم توهان کي نه صرف ٽيمپليٽ ۾ غلطي جي نشاندهي ڪرڻ جي اجازت ڏئي ٿو، پر هڪ اصلاح جو مشورو پڻ ڏئي ٿو. مثال طور، OpenSSL ڪوڊ ۾، تعمير "(s1 == NULL) ∧ (s2 == NULL)" جي سڃاڻپ ڪئي وئي، جيڪا نحو جي وڻ ۾ صرف 8 ڀيرا ظاهر ٿي، جڏهن ته ويجھي شاخ "(s1 ==) سان NULL) || (s2 == NULL)" اٽڪل 7 هزار ڀيرا ٿيو. سسٽم پڻ هڪ انوملي کي ڳولي ٿو "(s1 == NULL) | (s2 == NULL)" جيڪو وڻ ۾ 32 ڀيرا ظاهر ٿيو.

انٽيل اوپن سورس ڪنٽرول فلاگ مشين لرننگ سسٽم ڪوڊ جي غلطين کي سڃاڻڻ لاءِ

جڏهن ڪوڊ جي ٽڪري جو تجزيو ڪيو "جيڪڏهن (x = 7) y = x؛" سسٽم اهو طئي ڪيو آهي ته "متغير == نمبر" تعمير عام طور تي استعمال ڪيو ويندو آهي "جيڪ" آپريٽر ۾ عددي قدرن جي مقابلي لاءِ، تنهنڪري اهو تمام گهڻو امڪان آهي ته اشارو "متغير = نمبر" ۾ "جيڪڏهن" اظهار جو سبب آهي. ٽائيپ روايتي جامد تجزيه نگار اهڙي غلطي کي پڪڙي ها، پر انهن جي برعڪس، ڪنٽرول فلاگ تيار ڪيل ضابطن کي لاڳو نٿو ڪري، جنهن ۾ سڀني ممڪن اختيارن لاء مهيا ڪرڻ ڏکيو آهي، پر وڏي تعداد ۾ مختلف ساختن جي استعمال جي انگن اکرن تي ٻڌل آهي. منصوبن جي.

هڪ تجربي جي طور تي، CURL يوٽيلٽي جي سورس ڪوڊ ۾ ControlFlag استعمال ڪندي، جيڪو اڪثر ڪري اعليٰ معيار ۽ آزمائشي ڪوڊ جي مثال طور حوالو ڏنو ويندو آهي، جامد تجزيه نگارن طرفان اڻ ڄاتل هڪ غلطي جي نشاندهي ڪئي وئي جڏهن ساخت جي عنصر ”s->keepon“ استعمال ڪندي، جنهن جو هڪ عددي قسم هو، پر ان جو مقابلو بوليان قدر سان ڪيو ويو TRUE. OpenSSL ڪوڊ ۾، "(s1 == NULL) ∧ (s2 == NULL)" سان گڏ مٿي ڄاڻايل مسئلي کان علاوه، "(-2 == rv)" (مائنس هو هڪ ٽائپو) ۽ "BIO_puts(bp, ":")

جو ذريعو: opennet.ru

تبصرو شامل ڪريو