مدیریت حافظه
اغلب این زبان ها این توانایی را دارند که حافظه لازم را برای اشیائ داده به صورت پویا تخصیص دهند و در صورت عدم نیاز آنها را آزاد کنند. حافظه این اشیا از هرم می آید.در بسیاری از پیاده سازی ها، پشته از یک طرف حافظه کامپیوتر و هرم از طرف دیگر حافظه شروع می شود.اگر پشته و هرم به هم برسند برنامه با کمبود حافظه مواجهه می شود و متوقف می گردد.
عناصری که به حافظه نیاز دارند:
- سگمنت کد برنامه ترجمه شده کاربر: در هر سیستم یک بلوک از حافظه برای ذخیره سگمنت کد اختصاص می یابد.
- برنامه های زمان اجرای سیستم:در زمان اجرا بلوک دیگری از حافظه به برنامه های سیستم که اجرای برنامه های کاربردی را پشتیبانی می کنند اختصاص می یابد.مانند روالهای کتابخانه ای مثل Sin و Cos یا مترجم های نرم افزاری حین اجرا.
- ثوابت و ساختمان داده های تعریف شده توسط کاربر: فضای لازم برای داده های کاربر باید تخصیص یابد.
- نقاط برگشت زیر برنامه ها: اطلاعات کنترلی که به طور داخلی تولید شده اند، مثل نقاط برگشت، نقاط از سر گیری روال ها و… .
- محیط های ارجاع.
- حافظه های موقت در ارزیابی اطلاعات:در ارزیابی عبارات نیاز به حافظه های موقتی است که نتایج میانی را ذخیره کند.
- حافظه های موقت برای انتقال پارامتر ها: وقتی زیر برنامه ای فراخوانی می شود، تعدادی پارامتر ارزیابی می شوند و مقادیر حاصل باید در حافظه موقت ذخیره شوند تا زمانی که تمام پارامتر ها به طور کامل ارزیابی شوند.
- بافرهای ورودی – خروجی: عملیات ورودی – خروجی از طریق بافر ها انجام می شوند.
- داده های خراب سیستم: در هر سیستم حافظه ای برای نگهداری داده های مختلف سیستم وجود دارد.جدول ها، اطلاعات وضعیت و هر نوع اطلاعات زاید دیگر.