تفاوت بین فاز و پاس در کامپایلر

تفاوت بین فاز و پاس در کامپایلر
تفاوت بین فاز و پاس در کامپایلر

تصویری: تفاوت بین فاز و پاس در کامپایلر

تصویری: تفاوت بین فاز و پاس در کامپایلر
تصویری: چهار دلیل مهم، چرا نباید هیچ وقت به آمریکا بری؟! مقایسه با آلمان 🇩🇪🇺🇸 2024, جولای
Anonim

Phase vs Pass در کامپایلر

به طور کلی، کامپایلر یک برنامه کامپیوتری است که برنامه ای را که به یک زبان نوشته شده است، که به آن زبان مبدأ می گویند، می خواند و آن را به زبان دیگری که به آن زبان مقصد می گویند، ترجمه می کند. به طور سنتی، زبان مبدأ یک زبان سطح بالا مانند C++ و زبان مقصد یک زبان سطح پایین مانند زبان اسمبلی بود. بنابراین، به طور کلی کامپایلرها را می توان مترجمانی دانست که از زبانی به زبان دیگر ترجمه می کنند. Pass و Phase دو اصطلاحی هستند که اغلب با کامپایلرها استفاده می شوند. تعداد پاس های یک کامپایلر تعداد دفعاتی است که از منبع (یا نوعی نمایش آن) عبور می کند.یک کامپایلر برای راحتی ساخت به قطعات تقسیم می شود. فاز اغلب برای فراخوانی چنین بخش مستقلی از یک کامپایلر استفاده می شود.

گذر در کامپایلر چیست؟

یک راه استاندارد برای طبقه بندی کامپایلرها بر اساس تعداد "گذر" است. معمولاً کامپایل یک فرآیند نسبتاً فشرده منابع است و در ابتدا رایانه ها حافظه کافی برای نگهداری چنین برنامه ای که کار را کامل انجام می دهد نداشتند. با توجه به این محدودیت منابع سخت افزاری در کامپیوترهای اولیه، کامپایلرها به برنامه های فرعی کوچکتری تقسیم شدند که کار خود را با مرور کد منبع (یک "گذر" از منبع یا شکل دیگری از آن انجام دادند و تجزیه و تحلیل کردند. ، تبدیل ها و وظایف ترجمه به طور جداگانه. بنابراین، بسته به این طبقه بندی، کامپایلرها به عنوان کامپایلرهای یک گذر یا چند گذری شناسایی می شوند.

همانطور که از نام پیداست، کامپایلرهای یک گذری در یک پاس کامپایل می شوند. نوشتن یک کامپایلر تک پاس آسان تر است و همچنین عملکرد آنها سریعتر از کامپایلرهای چند گذره است.بنابراین، حتی در زمانی که محدودیت منابع داشتید، زبان‌ها به گونه‌ای طراحی شده بودند که بتوان آن‌ها را با یک گذر کامپایل کرد (مثلاً پاسکال). از سوی دیگر، یک کامپایلر چند گذری معمولی از چند مرحله اصلی تشکیل شده است. مرحله اول اسکنر (همچنین به عنوان تحلیلگر واژگانی شناخته می شود). اسکنر برنامه را می خواند و آن را به رشته ای از توکن ها تبدیل می کند. مرحله دوم تجزیه کننده است. رشته توکن ها را به درخت تجزیه (یا درخت نحو انتزاعی) تبدیل می کند که ساختار نحوی برنامه را به تصویر می کشد. مرحله بعدی تفسیر معنایی ساختار نحوی است. مراحل بهینه سازی کد و مرحله تولید کد نهایی به دنبال این است.

فاز در کامپایلر چیست؟

اصطلاح فاز اغلب زمانی مطرح می شود که در مورد ساخت کامپایلر صحبت می کنید. در ابتدا، کامپایلرها هر قطعه ساده از نرم افزار منفرد و یکپارچه بودند که توسط یک نفر برای جمع آوری یک زبان ساده نوشته می شد. اما زمانی که کد منبع زبانی که باید ترجمه شود پیچیده و بزرگ می شود، کامپایلر به چند فاز (نسبتا مستقل) تقسیم می شود.مزیت داشتن فازهای مختلف این است که توسعه کامپایلر می تواند بین تیمی از توسعه دهندگان توزیع شود. علاوه بر این، ماژولار بودن و استفاده مجدد را با اجازه می دهد تا فازها با فازهای بهبود یافته جایگزین شوند یا فازهای اضافی (مانند بهینه سازی های بیشتر) به کامپایلر اضافه شوند. فرآیند تقسیم کامپایل به فازها توسط PQCC (پروژه کامپایلر-کامپایلر کیفیت تولید) در دانشگاه کارنگی ملون معرفی شد. آنها اصطلاحات front end، end end و back end را معرفی کردند. اکثر کامپایلرها حداقل دو فاز دارند. اما معمولاً قسمت پشتی و قسمت جلویی این مراحل را کپسوله می‌کنند.

تفاوت بین Phase و Pass در کامپایلر چیست؟

Phase و Pass دو اصطلاحی هستند که در حوزه کامپایلرها استفاده می شوند. پاس تنها زمانی است که کامپایلر از کد منبع یا نمایش دیگری از آن عبور می کند (از آن عبور می کند). به طور معمول، اکثر کامپایلرها حداقل دو فاز به نام‌های front end و back end دارند، در حالی که می‌توانند یک گذر یا چند گذر باشند. Phase برای طبقه‌بندی کامپایلرها بر اساس ساختار استفاده می‌شود، در حالی که pass برای طبقه‌بندی کامپایلرها بر اساس نحوه عملکرد آنها استفاده می‌شود.

توصیه شده: