Kod için Otomatik Semantik Koruyucu Dönüşümler: Auto-SPT

Kod için Otomatik Semantik Koruyucu Dönüşümler: Auto-SPT
Kod klon tespiti için makine öğrenimi (ML) modelleri, iki kod parçasının semantik olarak eşdeğer olup olmadığını belirler. Bu, yazılım mühendisliği görevleri gibi refaktörleme ve güvenlik görevleri gibi güvenlik açığı ve kötücül yazılım tespiti için temel bir yapı taşıdır. Bu modeller genellikle temiz, yapılandırılmış kod veri setleri üzerinde eğitilirken, gerçek dünyadaki kod çoğu zaman yeniden düzenleme, küçültme, otomatik biçimlendirme ve derleyici optimizasyonları gibi çeşitli semantik koruyucu dönüşümlere maruz kalır. Eğitim ve test verileri arasındaki bu kritik boşluğu gidermek için, kod için sentetik veri üreteçleri oluşturmak üzere tasarlanmış yeni bir çerçeve olan Auto-SPT'yi öneriyoruz.
Semantik Koruyucu Dönüşümler (SPT'ler)
Auto-SPT, Büyük Dil Modelleri (LLM'ler) üzerine kurulmuş ve bir programın sözdizimsel yapısını değiştirirken işlevselliğini koruyan Semantik Koruyucu Dönüşümler (SPT'ler) üretmeyi amaçlayan yeni bir çerçevedir. Özellikle, LLM'leri çeşitli SPT'ler oluşturmak, bu SPT'ler için güçlü uygulamalar üretmek ve bunları sonuç olarak güçlü dönüşümlere bileştirmek için kullanıyoruz.
Çeşitlilik ve Güç
Formal analizimiz, SPT'lerin çeşitliliğinin bileşimlerinin gücünü etkilediğini gösteriyor. Ardından, Auto-SPT'nin mevcut yaklaşımlardan daha çeşitli SPT'ler ürettiğini ve bu SPT'lerin en son kod klon detektörlerinin performansını önemli ölçüde düşürdüğünü ampirik olarak gösteriyoruz. Ek deneyler, Auto-SPT'nin eğitim için kod veri setlerini geliştirmek ve gerçek dünyadaki, saldırgan kod dönüşümlerine karşı dayanıklı kod klon tespit modellerini üretmek için kullanılabileceğini gösteriyor.
Sonuç
Auto-SPT, gerçek dünyadaki kod dönüşümlerine karşı daha dayanıklı makine öğrenimi modelleri geliştirmeye yardımcı olur. Bu, yazılım mühendisliği ve güvenlik görevleri için kritik öneme sahiptir.