Ana içeriğe geç
Programlama

Valen programlama dili bellek denetimini tersine tarama ile yapıyor

Öne çıkanlar

  • Valen, bellek güvenliği denetimini fonksiyonları sondan başa doğru tarayarak yürütüyor.
  • Tersine tarama yaklaşımı, döngülerdeki referans yenilemelerini ve son kullanım noktalarını tespit etmeyi kolaylaştırıyor.
  • Projede kontrol akış grafiğine geçiş ve Rust benzeri tam çıkarım yetenekleri planlanıyor.

Valen programlama dilinin geliştiricisi Evan Ovadia, bellek güvenliğini sağlamak için fonksiyonları sondan başa doğru tarayan yeni bir ödünç alma denetleyicisi mimarisi geliştirdiğini açıkladı. Geleneksel derleyiciler analizleri çoğunlukla yukarıdan aşağıya yürütürken Valen, dördüncü derleme aşamasında fonksiyonun son satırından ilk satırına doğru ilerleyen bir tersine tarama yöntemi izliyor. Bu yaklaşım, kullanım sonrası serbest bırakma hatalarını tespit etmede kolaylık, döngü analizi ve hız avantajı sağlıyor.

Sistem, üçüncü aşamada referansların işaret ettiği yerleri belirleyen statik gruplama adımından elde edilen verileri kullanıyor. Dördüncü aşamada tersine yürütülen denetleyici; kullanım, bildirim ve mutasyon olaylarını izleyerek bekleyen referanslar listesi oluşturuyor. Aşağıda kullanılan bir referans yukarıda henüz bildirilmeden ilgili veri yapısı mutasyona uğrarsa derleyici hata veriyor. Geliştirici, bu modelin referansın son kullanım noktasını bulmayı kolaylaştırdığını ve döngülerdeki karmaşık durumları sadeleştirdiğini belirtti.

Henüz 3 bin 600 satırdan oluşan Valen ödünç alma denetleyicisinde döngü kırılmaları, ilişkili gruplar ve kapatmalar gibi özellikler üzerinde çalışmalar devam ediyor. Geliştirici, gelecekte denetleyiciyi tipleştirilmiş soyut sözdizim ağacı yerine kontrol akış grafiği üzerinde çalışacak şekilde yeniden yapılandırmayı ve statik gruplama aşamasını Rust benzeri tam bir çözümleyiciye dönüştürmeyi hedefliyor.

Kaynak

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