Ana içeriğe geç
Programlama

Goose bellek güvenliğini yığın tabanlı yapıyla C++ ve Rust'tan hızlı sağlıyor

Öne çıkanlar

  • Goose, 16 başarım testinde Clang altında güvenli Rust'tan 1,12 kat, optimize C++'tan 1,19 kat daha yüksek hıza ulaştı.
  • Mimaride bellek ayırıcı, çöp toplayıcı ve açık yaşam süresi söz dizimi yer almıyor; tüm veriler veri yığınlarında tutuluyor.
  • Proje tek bir C dosyası üretiyor ve TinyCC eklentisiyle harici derleme adımı olmadan doğrudan çalışabiliyor.

Wouter van Oortmerssen ve yapay zeka tabanlı Claude Fable, yığın bellek (heap) tahsisi içermeyen ve derleyici yönetimli veri yığınları kullanan Goose adlı yeni bir sistem programlama dili yayımladı. Geliştiricilerin paylaştığı 16 farklı başarım testine göre Goose, Clang derleyicisi altında güvenli Rust'tan 1,12 kat, elle optimize edilmiş C++'tan ise 1,19 kat daha hızlı çalıştı. Yeni dil bu hız avantajını yüzde 20 ila 30 oranında daha az bellek tüketimiyle sağladı.

Goose mimarisi, çöp toplayıcı (GC), bellek ayırıcı (allocator), referans sayımı veya açık yaşam süresi (lifetime) söz dizimi kullanmadan bellek güvenliği sunuyor. Dil, programdaki dinamik verileri derleyicinin statik olarak atadığı sabit veri yığınlarında sıralı olarak tutuyor ve dinamik büyüme yalnızca bir işaretçi kaydırma işlemiyle gerçekleşiyor. Değişken boyutlu yapılar ile diziler tek bir bitişik bellek bloğu olarak saklandığı için önbellek verimliliği artıyor ve referanslar yeniden tahsis nedeniyle geçerliliğini kaybetmiyor.

Dil, kaynak kodunu tek bir C dosyasına dönüştürerek çalışıyor ve dahili TinyCC desteği sayesinde harici bir derleme aşamasına ihtiyaç duymadan süreç içinde doğrudan çalıştırılabiliyor. Eşzamanlılık tarafında ise paylaşılan değiştirilebilir bellek bulunmuyor; bağımsız çalışan iş parçacıkları verileri tip güvenli kuyruklar üzerinden bellek kopyalama yöntemiyle iletiyor. Apache 2.0 lisansıyla sunulan projenin C++ tabanlı derleyicisi, örnek programları ve test paketi GitHub üzerinde açık kaynak olarak erişime açıldı.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.