۱۳۹۸ فروردین ۱۹, دوشنبه

نکات تستی کنکور کامپایلر - بهینه سازی

انواع تبدیلات بهینه سازی:
۱. حذف زیر عبارت مشترک: افزایش سرعت و کاهش حجم برنامه
۲. انتشار کپی: تاثیری در حجم یا سرعت ندارد ولی برای انجام باقی موارد فایده دارد.
۳. حذف کد مرده : افزایش سرعت و کاهش حجم برنامه
۴.حذف کد غیر قابل دسترس: تاثیری در سرعت ندارد و کاهش حجم برنامه
۵. جایگذاری ثابت Constant folding : افزایش سرعت و کاهش حجم برنامه
۶. بازکردن حلقه : افزایش سرعت و افزایش حجم برنامه
۷. کشیدن به چپ و راست: در جملات شرطی کاربرد دارد. تغییری در سرعت ندارد اما حجم کم میشود.
۸. جانشینی رو به عقب: سرعت افزایش پیدا میکند اما حجم معلوم نیست(معمولا باعث افزایش میشود)
۹. کاهش پیچیدگی : افزایش سرعت و تاثیری در حجم ندارد
۱۰. انتقال کد: افزایش سرعت و تاثیری در حجم ندارد.
۱۱. استفاده از همانی جبری(زیر مجموعه کاهش پیچیدگی است.)
۱۲. حذف متغیرهای استقرایی: سرعت را افزایش میدهد و تاثیری در حجم ندارد.
در کامپایلر از روشهای نمایش کد میانی control flow graph(intermediate). Interference graph. Abstract syntax tree و directed acyclic graph استفاده میشود
بیشترین اصرار به بهینه سازی برروی حلقه هاست.
چیزهایی که باید از کتاب خوانده شود: کل تبدیلات بهینه سازی. تحلیل جریان داده و تحلیل جریان کنترل.

هیچ نظری موجود نیست:

ارسال یک نظر