Birkaç cevaba göz attıktan sonra Yığın Taşması, bazı doğal olarak derlenmiş dillerin çöp toplama olduğu açıktır . Ama bunun tam olarak nasıl işe yarayacağı bana açık değil.
Çöp koleksiyonunun yorumlanmış bir dille nasıl çalışabileceğini anlıyorum. Çöp toplayıcı, tercüman ile birlikte çalışır ve kullanılmayan ve erişilemeyen nesneleri programın hafızasından siler. İkisi birlikte koşuyorlar.
Bu derlenmiş dillerle nasıl çalışır? Anladığım kadarıyla, derleyici kaynak kodu hedef koda ( özellikle de yerel makine koduna) derledikten sonra yapılır. İşi bitti. Öyleyse, derlenen program nasıl çöp toplanabilir?
Program "çöp" nesnelerini silmek için çalıştırılırken derleyici bir şekilde CPU ile çalışıyor mu? Veya derleyici, derlenmiş programın çalıştırılabilirinde bazı asgari çöp toplayıcı içeriyor mu?
Yığın Taşması ile ilgili bu cevabın bu alıntıdan dolayı, ikinci ifademin eskisinden daha fazla geçerliliğe sahip olduğuna inanıyorum :
Böyle bir programlama dili Eyfel'dir. Çoğu Eiffel derleyicisi taşınabilirlik nedeniyle C kodu üretir. Bu C kodu, standart bir C derleyicisi tarafından makine kodu üretmek için kullanılır. Eiffel uygulamaları bu derlenmiş kod için GC (hatta bazen doğru GC) sağlar ve VM'ye gerek yoktur. Özellikle, VisualEiffel derleyicisi doğrudan tam GC desteği ile yerel x86 makine kodu üretti .
Son ifade, derleyicinin, program çalışırken bir çöp toplayıcı görevi gören son çalıştırılabilir programda bir program içerdiğini gösteriyor gibi görünüyor.
D dilinin web sitesinde , doğal olarak derlenmiş ve isteğe bağlı bir çöp toplayıcısına sahip olan çöp toplama sayfasındaki sayfa, bazı arka plan programlarının, çöp toplama işlemini gerçekleştirmek için orijinal çalıştırılabilir programla birlikte çalıştığını ima etmektedir.
D, çöp toplama desteği olan bir sistem programlama dilidir. Genellikle, belleği açıkça boşaltmak gerekmez. Sadece gereken şekilde tahsis edin ve çöp toplayıcı, kullanılmayan tüm bellekleri düzenli olarak kullanılabilir bellek havuzuna geri gönderir.
Yöntem yukarıda bahsedilen takdirde edilir kullanıldığı, tam olarak nasıl çalışacak? Derleyici bazı çöp toplama programının bir kopyasını depolar ve oluşturduğu her çalıştırılabilir dosyaya yapıştırır mı?
Yoksa düşüncelerime karşı kusurlu muyum? Öyleyse, derlenmiş diller için çöp toplama işlemini uygulamak için hangi yöntemler kullanılır ve bunlar tam olarak nasıl çalışır?
malloc()
.