Nasıl yığınsız bir dil işe yarıyor mu? | Netgez.com
SORU
19 HAZÄ°RAN 2009, Cuma


Nasıl yığınsız bir dil işe yarıyor mu?

Yığınsız diller duydum. Ancak böyle bir dil uygulanacağı hakkında hiçbir fikrim yok. Biri bana açıklayabilir mi?

CEVAP
27 HAZÄ°RAN 2009, CUMARTESÄ°


Biz modern işletim sistemleri (Windows, Linux) benim "ile çalışır"". büyük yığın modeli Ve bu model yanlış, bazen, "yığınsız" dil. gerek motive

"Büyük yığın modeli" varsayan derlenmiÅŸ bir program tahsis "yığın çerçeveler" için iÅŸlev çaÄŸrıları bir bitiÅŸik bölgenin bellek kullanarak makine talimatları için ayarlama kayıtları içeren yığın iÅŸaretçisi (ve isteÄŸe baÄŸlı yığın çerçeve iÅŸaretçi) çok hızlı. Bu hızlı fonksiyon için büyük, bitiÅŸik bir bölge yığını olmasının bedeli de iade/Ara yol açar. Tüm programlar bu modern Ä°ÅŸletim sistemleri altında çalışacak ™.99 iyi yığın büyük modeli ile çalışmak için kullanılan yükleyiciler ve OS bile "" bu alanda yığını. Tüm bu uygulamaları yaygın bir sorundur, "ne kadar büyük benim yığını gerekir?". Bellek olmak sudan ucuz, çoÄŸunlukla ne olur bir büyük parça olduÄŸunu bir kenara için yığın (MS varsayılan 1 MB) ve tipik uygulama yapısı hep aynı yere yakın kullanma. Ama eÄŸer bir uygulama mı kullanmak hepsi ölür ile yasadışı bir bellek baÅŸvurusu ("üzgünüm Dave, bunu yapamam", Erdem ulaÅŸtıktan sonunda kendi yığını.

En sözde "" dil gerçekten yığınsız değil. yığınsız denir Onlar sadece bu sistemler tarafından sağlanan bitişik bir yığın kullanmayın. Onlar yerine ne her birinde yığın yığın çerçevesi işlevi bir telefon tahsis edilir. İşlev çağrı başına maliyeti biraz artar; fonksiyonlar genelde karmaşıktır, ya da dil yorumlayıcı ise, bu ek maliyeti önemsİzdİr. (Bir de belirlemek çağrı Dag program araması grafik ve tahsis bir yığın segment için kapak tüm DAG; bu şekilde olsun hem yığın ayırma ve hız klasik büyük yığın işlev çağrıları için tüm aramalar içinde arama DAG).

Yığın yığın ayırma için çerçeveleri kullanmak için çeşitli nedenleri vardır:

Eğer programı derin özyineleme belirli soruna bağlı Değilse 1) çözme, çok zor bir "yığın gerekli boyutu bilinen değil, çünkü" önceden alan. büyük önceden ayır olur Biri beceriksizce düzenlemek işlev çağrıları için kontrol edin eğer orada yeterince yığın sol, ve eğer değilse, yeniden bir büyük yığın, yığın kopya eski ve yeniden ayarlamak tüm işaretçiler içine bir yığın; bu yüzden garip olduğunu bilmiyorum herhangi uygulamaları. Ayrılırken çerçeveler uygulama Hiç Yok kadar özür dilemek anlamına gelir yığını tam anlamıyla hiçbir ayrılamayan bellek bıraktı.

2) programın alt çatal. Her görevi kendi yığın gerektirir, ve bu nedenle "yığın" sağladı. büyük bir kullanabilirsiniz. Yani, her görev için yığınları ayırmak gerekiyor. Mümkünse alt görevler binlerce varsa, şimdi "büyük yığınları" ve bellek talebi birden bire çok saçma. binlerce gerekebilir Yığın çerçeveler ayrılırken bu sorunu çözer. Genellikle görevi "yığınları görevleri çatal, bir ağaç gibi" geri üst görevlere bakın sözlü kapsam uygulamak için; "" adı altında oluşturmuş olduğu bir "". kaktüs yığını substacks

3) dilinizi devamı vardır. Bu sözcük kapsamında geçerli işlev görebilir veriler bir şekilde daha sonra kullanmak için muhafaza edilmesi gerekir. Bu kopyalama üst yığın çerçeveler, tırmanma kaktüs yığını, ve devam etmeden uygulanabilir.

Ben de uygulanıyor. PARLANSE programlama dillerini yok 1) ve 2). 3 üzerinde çalışıyorum).

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKÄ°M 2012
  • habpsu

    habpsu

    25 Temmuz 2007
  • skiesofblack.net

    skiesofblack

    14 HAZÄ°RAN 2009