کامپایلر: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
MahdiBot (بحث | مشارکت‌ها)
Amjadima (بحث | مشارکت‌ها)
برچسب‌ها: نیازمند بازبینی ویرایش همراه ویرایش از وبگاه همراه
خط ۸۵:
# '''تحلیل کامپایلر''': این پروسه برای بدست آوردن اطلاعات بیشتر از نمایش میانی فایل‌های ورودی می‌باشد. تحلیلگر نوعی تعاریف مختلفی دارد همچون تحلیلگر حلقوی، تحلیلگر وابسطه، تحلیلگر مستعار، تحلیلگر اشاره‌ای یا غیره می‌باشد. تحلیل دقیق زیر بنای هر کامپایلرهای بهینه‌است. [[گراف]] فراخوانی و نمودار جریان کنترل معمولاً در فاز تجزیه تولید می‌گردد.
# '''بهینه سازی''': نمایش میانی زبان به معادل‌های پر سرعت تر با شکل‌های کوتاه تری تبدیل می‌گردد. از بهینه سازهای محبوبتر می‌توان به موارد زیر اشاره نمود: توسعه درون خطی، حذف کدهای مرده، انتشار ثوابت، تبدیل [[حلقه|حلقه‌ها]]، تخصیص‌های ثباتی و موازی سازی خودکار.
# تولید کننده کد: زبان میانی تغییر کرده به زبان خروجی مثل [[زبان ماشین]] ترجمه می‌شود. این شامل تخصیص منابع و تصمیمات ذخیره سازی است، مثلاً اینکه کدام متغیر به رجسترهارجیسترها یا [[حافظه]] اختصاص یابد و گزینش و زمانبندی دستورات مناسب ماشین.
 
«البته در ابتدای امر که در مورد زبانهای تفسیری و کامپایلری گفته بودند باید خاطر نشان کرد که زبانهای تفسیری خط به خط خوانده شده و اجرا می‌گردد در حالیکه در کامپایلری ابتدا تمام برنامه ترجمه شده و سپس اجرا می‌گردد پس در زمان اجرا سرعت اجرا شدن زبانهای کامپایلری بیشتر است. اما کشف و تصحیح خطا در تفسیری بهتر و راحت تر است.»