Haskell gibi saf bir dilde, tüm veriler değişkendir ve hiçbir şekilde mevcut veri yapısı değiştirilemez
Aslında bu genel olarak doğru değil. Saf diller kesin olmayan (tembel) bir değerlendirme kullanır, böylece potansiyel olarak tüm alt ifadelerin değerlendirilmesi ertelenir. Ortalanmamış ifadeler genellikle bir "thunk" olarak tahsis edilen yığınlardır. Gerektiğinde ifade değerlendirilir ve parça var mutasyona uğramış elde edilen değer olarak.
Çöp toplayıcılar saflık karşısında başka türlü kullanamayacakları stratejileri ve teknikleri kullanıyor?
Aklıma gelen tek şey kara delikler . Haskell araştırma raporlarında GC tarafında yeni bir şey gördüğümü hatırlamıyorum.
Saf bir dilin GC'sinde saf bağlamda olmayan çok iyi çalışan nedir?
GC yazma engeli. Saf olmayan diller işaretçilere daha çok işaretçi yazma eğilimindedir, bu nedenle yazma engellerini daha yoğun bir şekilde optimize etme eğilimindedirler.
Marka-bölge gibi diğer GC algoritmaları saf olmayan diller bağlamında çok daha uygundur çünkü saf dillerden çok daha düşük tahsis oranlarına sahip olabilirler.
Saf diller GC'ler için başka hangi yeni problemleri yaratır?
Saf diller çok nadirdir, bu nedenle, saf programların belleği nasıl kullandığı hakkında çok daha az veri vardır ve bu nedenle, saf bir dil için bir GC yazmaya çalışırken daha kötü bir pozisyonda başlarsınız.