DeepCode membawa tinjauan kod berkuasa AI ke C dan C ++

DeepCode, perkhidmatan cloud yang menggunakan pembelajaran mesin untuk menganalisis pangkalan kode untuk kelemahan keselamatan dan bug yang berpotensi, kini dapat menganalisis kod C dan C ++.

Dilatih dengan menganalisis ribuan projek sumber terbuka, DeepCode memberikan maklum balas untuk projek di platform hosting kod atau repositori tempatan. Pencipta DeepCode mendakwa ia memberikan maklum balas yang lebih baik dan terperinci daripada alat analisis kod tradisional kerana menganalisis kod dalam konteks — bukan hanya sebagai teks, tetapi juga sebagai perisian yang sedang berjalan.

Sebilangan besar kelemahan yang terdapat dalam perisian muncul di pangkalan data C atau C ++. Sekuat mana kedua bahasa itu, kedua-duanya memberikan sedikit perlindungan terhadap kesalahan pembangun, dan versi bahasa yang lebih baru ini dipaksa untuk mengekalkan keserasian ke belakang dan dengan itu tetap rentan. 

Pangkalan pengetahuan DeepCode mengenai isu merangkumi banyak masalah umum yang terdapat di C dan C ++ serta bahasa lain: masalah gaya, kebocoran sumber daya, masalah peruntukan memori, masalah pengendalian tarikh, dan ketidaksesuaian antara versi bahasa.

Dalam analisis kernel Linux, DeepCode menemui sejumlah masalah umum dalam pangkalan data C termasuk parameter yang tidak disanisasi yang dilewatkan dari argumen baris perintah atau pemboleh ubah persekitaran, masalah bebas selepas penggunaan, dan hilangnya pemeriksaan untuk petunjuk nol. Masalah lain dalam kod C lebih halus, seperti pembuatan fail sementara yang tidak selamat, atau kemungkinan arahan tertentu dapat dioptimumkan dalam penyusunan dan tidak memberikan kesan yang dimaksudkan.

Pada awalnya dilancarkan, DeepCode menyokong Java, JavaScript, TypeScript, dan Python, tetapi rancangan ada di meja untuk C, C ++, dan bahasa lain. Menurut catatan blog yang mengumumkan sokongan C / C ++, menambahkan analisis kod untuk C dan C ++ memerlukan tiga bulan kerja, kerana kerumitan yang melibatkan ciri tahap rendah C / C ++.