PHP Neden bu işlemler farklı?

  • Konuyu başlatan 533388
  • Başlangıç Tarihi
  • Mesaj 23
  • Görüntüleme 488
Hocam size stack ile ilgili bir şey sorabilir miyim?
Metotların isimleri stackte tutuluyor peki işlevleri nerede tutuluyor?
Dilden dile değişir. Her dil aynı değil. C'de bir yerde tutulmuyorlar. Makine koduna dönüşüp daha sonrasında execute ediliyor. Bellek data depolamak için kullanılıyor. Metot isimleri de stack de olmak zorunda değil yani. C ve benzeri compiled dillerde metot isimleri sadece semboliktir ve derleme sırasında kullanılır. Sonrasında bilgisayarın bu isimlere ihtiyacı yok. Code segmentten erişiyor zaten.

C++'ta da eğer polymorphismle uğraşıyorsan heapte bir vtable bulunuyor. Ondan referans alıyor function call sırası için dinamik olarak. Ama onda da normalde fonksiyon isimleri sembolik. Link sonrası discard ediliyor.
 
Dilden dile değişir. Her dil aynı değil. C++'de bir yerde tutulmuyorlar. Makine koduna dönüşüp daha sonrasında execute ediliyor. Bellek data depolamak için kullanılıyor. Metot isimleri de stack de olmak zorunda değil yani. C ve benzeri compiled dillerde metot isimleri sadece semboliktir ve derleme sırasında kullanılır. Sonrasında bilgisayarın bu isimlere ihtiyacı yok. Code segmentten erişiyor zaten.

C++'ta da eğer polymorphismle uğraşıyorsan heapte bir vtable bulunuyor. Ondan referans alıyor function call sırası için dinamik olarak. Ama onda da normalde fonksiyon isimleri sembolik. Link sonrası discard ediliyor.

Teşekkür ederim, son kısım dışında anladım.
 

Yeni konular

Geri
Yukarı