۱۳۸۸ اسفند ۲۷, پنجشنبه

کامپایلر Compiler

نرم افزار ها توسط زبان های برنامه نویسی ساخته می شوند.زبان های برنامه نویسی انواع مختلفی دارند که برخی از آن ها عبارتند از:
1- زبان ماشین: زبانی که در آن داده ها و دستورالعمل ها به صورت کد های باینری(صفر و یک) نمایش داده می شوند و تنها زبانی است که کامپیوتر درک می کند،هر برنامه باید قبل از اجرا به زبا ماشین ترجمه شود.
2- زبان اسمبلی: زبان اسمبلی به جای کد های باینری از کلمات اختصاری استفاده می کند.خوانایی برنامه های زبان اسمبلی بیشتر از برنامه های زبان ماشین است.برای تبدیل برنامه ی اسمبلی به زبان ماشین از نرم افزار مترجمی به نام اسمبلر استفاده می شود.
3- زبا ن های سطح بالا: زبان های سطح بالا به زبان محاوره ای نزدیک ترند و دارای ساختارها و دستورات بیشتر و قدرتمندتر نسبت به زبان اسمبلی هستند.برنامه های نوشته شده با این زبان ها مستقیما قابل اجرا روی ماشین نیستند.برنامه های زبان های سطح بالا توسط کامپایلر هابه زبان ماشین ترجمه می شوند یا به وسیله ی مفسرها اجرا می شوند.
برنامه های نوشته شده یه زبان های سطح بالا مستقیما روی ماشین اجرا نمی شوند.برای ترجمه و اجرای این برنامه ها دو روش عمده وجود دارد:
1- استفاده از مفسر
2- استفاده از کامپایلر
استفاده از مفسر:
در این روش دستورالعمل های برنامه یک به یک توسط نرم افزاری به نام مفسر خوانده می شده و اجرا می گردد.عملکرد مفسر را می توان به عملکرد یک شخص مترجم که در مصاحبه ها و مذاکرات مسئول ترجمه است تشبیه نمود.این مترجم یک به یک جملات را از گوینده دریافت کرده و هر جمله را جداگانه ترجمه کرده و د راختیار شنونده قرار می دهد و سپس منتظر جمله ی بعدی گوینده می شود.

مزایای استفاده از مفسر:
1- سهولت اشکال زدایی
2- قابلیت انعطاف بالا
3- پیاده سازی آسان
4- قابلیت انعطاف بالا
معایب استفاده از مفسر:
1- تکرار تفسیر
2- سرعت اجرای پایین
3- نیاز به مفسر
4- دسترسی به کد منبع
استفاده از کامپایلر:
در این روش برنامه بوسلیه ی کامپایلر به زبان ماشین ترجمه می شود.کامپایلر نرم افزاری است که برنامه ی نوشته شده به زبان مبدا را به برنامه ی معادلی در زبان مقصد ترجمه می نماید.اگر خطایی در برنامه ی مبدا وجود داشته باشد کامپایلر آن را گزارش می کند.باید توجه کرد که اگر برنامه ی مبدا صحیح نباشد کامپایلر قادر به ترجمه ی آن نخواهد بود.
عملکرد کامپایلرمانند دوبله ی یک فیلم خارجی می باشد.در این روش ابتدا کل فیلم به زبان فارسی ترجمه می شود و سپس در اختیار بینندگان قرار می گیرد.
مزایای استفاده از کامپایلر
1- سرعت اجرای بالا
2- اجرای مستقل برنامه از کامپایلر
3- حفاظت از کد منبع برنامه
4- عدم تکرار کامپایل
معایب استفاده از کامپایلر
1- زمان بر بودن اشکال زدایی
2- قابلیت حمل پایین
3- پیاده سازی پیچیده
فاز های کامپایلر
1- تحلیلگر لغوی(Lexical Analayzer)
2- تحلیلگر نحوی(Syntax analayzer)
3- تحلیلگر معنایی(semantic analyzer)
4- تولید کننده ی کد میانی(Intermediate Code)
5- بهینه ساز کد میانی
6- تولید کننده کد
دانلود پاور پوینت کتاب compilers Principles, Techniques, and Tools

۱ نظر: