Bilgisayar Ve Bellek
Çalışan bir programın kullandığı ad uzayları, deyimler, nesneler, değişkenler, fonksiyonlar, metotlar vb. bilgisayarın belleğinde tutulur. Fiziksel olarak üç tür bellek vardır. Merkezi İşlem Birimi (CPU) içindeki register’lar, ana bellek (RAM) ve kayıt ortamları (harddisk, ssd, usb vb).
Registerlar
CPU’larin veri tutmaya yarayan hazır depolama bölgeleridir. CPU’ya göre değişiklik gösterebilirler. Programlama yapan kişi bu bölgeye erişemez. Bu bölge derleyici ve işletim sistemi arasında yönetilir.
Depolama Birimleri / Kayıt Ortamları
Programlar veya herhangi bir değişikliğin kayıt edildiği ortamlardır. Belleğe kıyasla kalıcı olarak veri tutabilir. Ayrıca bir programın RunTime esnasında belleği yetersiz kalırsa derleyici depolama birimlerinden birinin bir kısmını yardımcı bellek olarak kullanabilir. Literatürde Swap-Space olarak nitelendirilen bu alanı yönetmek derleyicinin ve işletim sisteminin kontrolündedir.
Bellek
Stack
Nesneye yönelik programlama dillerinde primitif data tipleri RAM’in bu bölümünde tutulur. Bellek’de en hızlı erişim sağlanan bölgelerden biridir. Stack’te veriler üst üste dizilir (LIFO) ve sırası gelmeden aradaki değer ile hiçbir şekilde işlem yapılmaz.
Heap
Nesneye yönelik programlama dillerinde referans tiplerin tutulduğu bölgedir. Oluşturulan nesneler de bu bölgede tutulur. Örneğin :
“codingtr.com” nesnesi bellekte oluşturulur. O adresi işaret eden referans(pointer) str’dir. Mevcut program bloğunda işlem bittiğinde str referansı silinir. Ancak “codingtr.com” nesnesi bellekteki heap bölgesinde varlığını korumaya devam edecektir.