Otomatik Semantik Koruyucu Dönüşümler: Kodlar İçin Yeni Bir Çözüm

Otomatik Semantik Koruyucu Dönüşümler (Auto-SPT)
Makine öğrenimi (ML) modelleri, kod klon tespiti için kullanılır ve iki kod parçasının semantik olarak eşdeğer olup olmadığını belirler. Bu da yazılım mühendisliği görevleri için önemli bir yapı taşıdır. Ancak, bu modeller genellikle temiz ve yapılandırılmış kod veri setleri üzerinde eğitilirken, gerçek dünyadaki kodlar çeşitli semantik koruyucu dönüşümlere maruz kalır.
Bu kritik boşluğu doldurmak için, Auto-SPT adlı yeni bir çerçeve öneriyoruz. Auto-SPT, programın işlevselliğini korurken sözdizimsel yapısını değiştiren Semantik Koruyucu Dönüşümler (SPT'ler) üretmek için Büyük Dil Modelleri'ni (LLM'ler) kullanır. Özel olarak, LLM'leri çeşitli SPT'ler oluşturmak, güçlü uygulamalar geliştirmek ve bunları birleştirerek güçlü dönüşümler elde etmek için kullanıyoruz.
Dönüşüm Çeşitliliğinin Önemi
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 fazla çeşitli SPT'ler ürettiğini ve bunların güncel kod klon dedektörlerinin performansını önemli ölçüde düşürdüğünü ampirik olarak gösteriyoruz.
Pratik Uygulamalar
Ek deneyler, Auto-SPT'nin kod veri setlerini eğitim için güçlendirmek ve gerçek dünyadaki, düşmanca kod dönüşümlerine karşı dayanıklı kod klon tespit modellerini üretmek için kullanılabileceğini gösteriyor.
Kaynaklar ve Referanslar
- Auto-SPT: Automating Semantic Preserving Transformations for Code
- Makine Öğrenmesi Tabanlı Kod Klon Tespiti
Sonuç
Auto-SPT, gerçek dünyadaki kodlar için daha dayanıklı ve güçlü kod klon tespit modelleri geliştirmek için önemli bir adım. Bu çözüm, yazılım mühendisliği ve güvenlik görevlerinde kritik bir rol oynayabilir.