Yeni teknolojiler geliştirmekle sorumlu ABD askeri ajansı, güvenliğe odaklanan Rust dilinde yazılmış işlevleri olan eski C kodlarını dönüştürebilen otomatik bir çevirici oluşturmak için yeni bir araştırma projesine fon sağlayarak önemli miktarda C kodunu yeniden yazma çabasına girişmeyi planlıyor.
Savunma İleri Araştırma Projeleri Ajansı (DARPA), 26 Ağustos’ta, Teklif Sahipleri Günü olarak bilinen bir çalıştay düzenleyerek vizyonunu açıklayacak. Tüm C’yi Rust’a Çevirme (TRACTOR) projesi. Bu çaba, akademik ve endüstriyel araştırma gruplarının C kodunu deyimsel hale getirebilen bir sistem yaratmak için rekabet etmesini gerektiriyor; yani yerel özellikleri kullanarak – Rust kodu. Projenin nihai hedefi, C’de yazılmış büyük miktarda yazılıma sahip herhangi bir kuruluşun bu kodu Rust’a dönüştürebilmesi ve yazılım güvenlik açıklarının büyük bir kaynağı olan bellek güvenliği hatalarını ortadan kaldırabilmesi için araçlar sağlamaktır.
DARPA Bilgi İnovasyon Ofisi’nde (I2O) program yöneticisi olan Dan Wallach, otomatik bir sistem olmadan geliştiricilerin bu görevi üstlenme olasılığının düşük olduğunu söylüyor.
“Günümüzde kodu yeniden yazmak pahalı ve emek yoğun bir iştir ve [organizations] büyük eski kod tabanları çoğu durumda bunu karşılayamaz,” diyor. “Bugünkü en iyi tavsiye, ‘Ne olursa olsun başlayın ve kademeli olarak yapın.’ Ancak yüksek derecede otomasyon yaratabilirsek, bu sorunun ekonomisini değiştirir ve kodu daha hızlı iyileştirmeyi mümkün kılar.”
Teknoloji şirketleri ve ABD hükümeti, bellek güvenliği açıklarını yaygın bir sorun olarak tanımladılar. ama tamamen önlenebiliryazılım güvenlik açıkları sınıfı. Aralık 2022’de Google, Android’in en son sürümü için yazılımda yeni kodun çoğunun bellek açısından güvenli diller olan Java, Kotlin ve Rust’ta yazıldığını ve bunun çok daha az bellek güvenliği güvenlik açığına yol açtığını açıkladı — 2019’daki 223’e kıyasla 2022’de 85.
Pas Kurtarmaya Geliyor
Çünkü hafıza güvenliği sorunları — arabellek taşmaları ve çift serbest bırakma hataları gibi — genellikle C ve C++ kodlarında meydana gelir, teknik uzmanlar bu dillerle aynı gereksinimlerin çoğunu karşılayan bellek açısından güvenli bir dil olan Rust’a geçmeyi önermiştir. Örneğin Google, Chrome için QR kod üretecinin Rust’ta yeniden yazılmasının geliştiricilerin bunu uygulamanın deneme alanından taşımasına ve performansı hızlandırmasına olanak sağladığını bulmuştur. Microsoft, bazı işletim sistemi işlevlerini Rust’ta yeniden yazmıştır ve %5 ila %15 arasında bir performans iyileştirmesi bulundu.
Aslında Rust, geliştiricilerin en çok çalışmak istediği dil olmaya devam ediyor; geliştiricilerin %82’si programlama diline “hayranlık duyuyor”, dili şu anda yoğun olarak kullananların oranı ise %29. StackOverflow’un “2024 Geliştirici Anketi”ne göre.
Synopsys Yazılım Bütünlüğü Grubu Ürün Yönetimi Kıdemli Direktörü Beth Linker, birçok kuruluşun Rust’ı zaten kullandığını veya kullanmaya başladığını söylüyor.
“ABD hükümetinin bellek açısından güvenli programlama dilleri konusundaki duruşu nedeniyle son 12-18 ayda Rust etrafında büyük bir ivme gördük” diyor.
LLM’ler Gereklidir Ancak Yeterli Değildir
Rust’ı yaygın olarak kullanmak için şirketlerin Rust kodunun programlama dilinin özelliklerini kullandığından ve hala C veya C++ ile yazılmış olabilecek diğer bileşenlerle birlikte çalışabildiğinden emin olmaları gerekir. Bu nedenle, Linker, C’den Rust’a kodu tamamen doğru bir şekilde çeviremeseler bile büyük dil modellerinin (LLM’ler) muhtemelen gerekli olacağını söylüyor.
“LLM’leri Rust kodu üretmek için kullanma deneyimimizde, bunun birçok LLM için hala bir büyüme alanı olduğunu gördük çünkü Rust için daha yerleşik dillere göre daha az eğitim verisi mevcut,” diyor. “TRACTOR iddialı bir proje ve başarılı olursa çok etkili olacak.”
Yapay zeka (AI) proje için bir gereklilik olmasa da, DARPA’dan Wallach LLM’lerin çözümlerin neredeyse kesinlikle bir parçası olacağını düşünüyor. Çeviriden kod değerlendirmesine ve süreç kontrolüne kadar birçok farklı alanda katkıda bulunabilirler – bunu yapmanın tek bir doğru yolu yoktur, diyor.
Wallach, yapay zeka inovasyonunun hızının çok hızlı olması nedeniyle herhangi bir çözümün belirli bir uygulamaya dayanmaması gerektiğini de sözlerine ekliyor.
“Bugün LLM’ler için son durum ne olursa olsun, size dört yıl içinde daha iyi bir şey olacağına söz veriyorum. Bunun ne olduğunu bilmiyorum, kimin başaracağını bilmiyorum ama o dünyanın kendi kendine geliştiğini biliyorum,” diyor. “Bu yüzden hedefimiz diğer insanların yapay zekaya yaptığı yatırımlardan faydalanabilmek.”
Üstesinden Gelinmesi Gereken Önemli Zorluklar
Daha eski LLM’leri daha yeni, daha verimli modellerle kolayca değiştirme çözümüne duyulan ihtiyaç muhtemelen sorunlara yol açacaktır. Synopsys’in Yazılım Bütünlüğü Grubu’nun otomotiv sistemleri mimarı Chris Clark, AI modelleriyle birlikte gelen fikri mülkiyet zorluklarının şimdiden önemli olduğunu söylüyor.
“Bu, IP, kullanım, analiz ve model geliştirme hakkında birçok soru ortaya çıkarıyor. Zorluk, bir AI motorunun geliştirilip geliştirilemeyeceği olmayacak; zorluk, yasal alanda ve lisanslamada olacak,” diyor Clark. “Kodumun nasıl kullanıldığı ve bundan ne türetildiği sorusunun yanıtlanması gerekecek. Gömülü için bu özellikle önemlidir.”
Genel olarak DARPA, TRACTOR’un yaratılmasının LLM teknolojisindeki ve kaynak kodu çevirisindeki önemli yeniliklere dayanacağını ve tüm bu çalışmanın, örneğin, C koduyla eşleşen Rust kodu yaratmanın kriter olup olmadığı veya sistemin programcının amacını ölçmeye çalışması gerekip gerekmediği gibi bazı dikenli sorunları ortaya çıkaracağının farkındadır.
“Bunun zor bir sorun olduğuna şüphe yok ve DARPA kolay sorunlarla uğraşmaz. DARPA zor sorunlarla uğraşır,” diyor Wallach. “Sadece güvenli ama okunamayan ve kullanılamayan Rust kodu üretmek yeterli değil. Bunun asıl amacı geliştiricileri C’den Rust’a taşımak… dolayısıyla mümkün olduğunca, üretilebilecek en yüksek kaliteli Rust olmasını istiyoruz.”