اینتل ControlFlag 1.2 را منتشر کرد، ابزاری برای تشخیص ناهنجاری ها در کد منبع

اینتل نسخه ControlFlag 1.2 را منتشر کرده است، ابزاری که به شما امکان می دهد خطاها و ناهنجاری ها را در کد منبع با استفاده از یک سیستم یادگیری ماشینی آموزش دیده بر روی مقدار زیادی کد موجود شناسایی کنید. برخلاف تحلیلگرهای استاتیک سنتی، ControlFlag قوانین آماده ای را اعمال نمی کند، که در آن ارائه همه گزینه های ممکن دشوار است، بلکه بر اساس آمار استفاده از ساختارهای مختلف زبان در تعداد زیادی از پروژه های موجود است. کد ControlFlag به زبان C++ نوشته شده است و تحت مجوز MIT منبع باز است.

نسخه جدید به دلیل اجرای پشتیبانی کامل از تشخیص ناهنجاری و یادگیری بر اساس الگوهای کد رایج برای زبان C++ قابل توجه است. در نسخه های قبلی، پشتیبانی مشابهی برای زبان های C و PHP ارائه شده بود. این سیستم برای شناسایی انواع مختلف مشکلات در کد، از شناسایی اشتباهات تایپی و عدم تطابق نوع، شناسایی ناهنجاری‌ها در عبارات if و بررسی‌های از دست رفته NULL در اشاره‌گرها مناسب است. این سیستم با ساخت یک مدل آماری از آرایه کد موجود پروژه های منبع باز در C، C++ و PHP، که در GitHub و مخازن عمومی مشابه منتشر شده است، آموزش داده شده است.

در مرحله آموزش، سیستم الگوهای معمولی را برای ساخت ساختارها در کد تعیین می کند و یک درخت نحوی از اتصالات بین این الگوها ایجاد می کند که جریان اجرای کد را در برنامه منعکس می کند. در نتیجه، یک درخت تصمیم گیری مرجع تشکیل می شود که تجربه توسعه همه کدهای منبع تحلیل شده را ترکیب می کند. کد مورد بررسی تحت فرآیند مشابهی برای شناسایی الگوهایی است که در برابر درخت تصمیم مرجع بررسی می شوند. اختلاف زیاد با شاخه های همسایه نشان دهنده وجود یک ناهنجاری در الگوی در حال بررسی است.

اینتل ControlFlag 1.2 را منتشر کرد، ابزاری برای تشخیص ناهنجاری ها در کد منبع


منبع: opennet.ru

اضافه کردن نظر