مقاله به بررسی ایده استفاده از تخصیص ایستا (Static Allocation) در کامپایلرها میپردازد. نویسنده با الهام از رویکرد TigerBeetle که از این تکنیک استفاده میکند، به دنبال یافتن راهی برای پیادهسازی آن در کامپایلرها است. تخصیص ایستا در TigerBeetle به این معناست که تمام تخصیص حافظه در زمان راهاندازی انجام میشود و هیچ تخصیص حافظهای در طول اجرای برنامه وجود ندارد. این امر به دلیل ماهیت ورودی و خروجی محدود سیستم (پیامها با حداکثر اندازه 1 مگابایت) امکانپذیر است.
نویسنده توضیح میدهد که در سیستمهای توزیعشده، اگر ورودی و خروجی محدود باشند، تخصیص حافظه اضافی دشوار است. این رویکرد به طور شگفتانگیزی قابل ترکیببندی است و میتوان سیستمهای مختلف را بدون نگرانی زیاد در مورد تخصیص حافظه با هم ترکیب کرد. با این حال، چالش اصلی در مورد کامپایلرها این است که اندازه ورودی (کد منبع) و خروجی (فایل اجرایی) میتواند به صورت نامحدود بزرگ باشد.
نویسنده اشاره میکند که کامپایلرها برخلاف TigerBeetle نمیتوانند به راحتی از دیسک برای ذخیره دادهها استفاده کنند و در نتیجه، پیادهسازی تخصیص ایستا در کامپایلرها با چالشهای جدی مواجه است. در نهایت، نویسنده به این نتیجه میرسد که به دلیل ماهیت نامحدود ورودی و خروجی کامپایلرها، پیادهسازی تخصیص ایستا به طور کامل ممکن نیست.
مشاهده مطلب اصلی