دانلود پاورپوینت کتاب و درس اصول طراحي کامپايلر جهت رشته کامپیوتر در قالب 247 اسلاید و با فرمت pptx بصورت کامل و جامع و با قابلیت ویرایش

 

 

 

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

 

مهم‌ترین علت استفاده از ترجمه کد مبدا، ایجاد برنامه اجرایی می‌باشد. برعکس برنامه‌ای که زبان سطح پایین را به بالاتر تبدیل می‌کند را decompiler گوییم. ترجمه کامل کد منبع برنامه‌ای از یک زبان سطح بالا به کد شیء، پیش از اجرای برنامه را همگردانی یا کامپایل می‌گویند. به بیان ساده، کامپایلر برنامه‌ای است که یک برنامه نوشته شده در یک زبان خاص ساخت‌یافته را خوانده و آن را به یک برنامه مقصد (Target Language) تبدیل می‌نماید.

 

در یکی از مهم‌ترین پروسه‌های این تبدیل، کامپایلر وجود خطا را در برنامه مبدأ اعلام می‌نماید. در اولین نگاه، تنوع کامپایلرها ممکن است به چشم نیاید. تعداد بسیار زیادی زبان‌های منبع وجود دارند که دامنه آنها از زبان‌های شناخته شده مانند فرترن و پاسکال تا زبان‌های خاص منظوره گسترده است. زبان‌های مقصد نیز گستردگی متناظر با این زبان‌ها دارند. یک زبان مقصد ممکن است زبان برنامه‌سازی دیگر یا زبان ماشین یا … باشد.

 

 

 

فهرست:

 


فصل اول: مقدمه ای بر کامپایلر
نمونه ای از برنامه های تحلیل کننده
تعریف کامپایلر
طبقه بندی کامپایلرها:
تک گذره
چند گذره
اشکال زدا و Load-and-go
بهینه ساز
عملیات کامپایلر
سیستم پردازش زبان:
پیش پردازشگر:
ارتباطات در سیستم پردازش زبان
کامپایلر
اسمبلر
بارکننده و ویرایشگر الحاق
سه فاز تحلیل در عمل کامپایل
مراحل کامپایل
نمودار مراحل کامپایل
مراحل کامپایلر-تحلیل گر لغوی
مراحل کامپایل-تحلیل گر نحوی
مراحل کامپایل-تحلیل گر معنایی
مراحل کامپایل-تولید کد میانی
مراحل کامپایل-بهینه ساز کد
مراحل کامپایل-تولید کننده کد نهایی
مراحل کامپایل-مدیریت جدول نماد
ابزارهای ساخت کامپایلر:
مولدهای تجزیه کننده
تولید کننده های پویشگر
موتورهای ترجمه نحوگرا
مولدهای کد خودکار
موتورهای جریان داده

فصل دوم: نحو زبان و تجزیه
گرامر
تعریف ریاضی گرامر
اشتقاق
درخت تجزیه
درخت اشتقاق
گرامر مبهم
نشان گذاری پسوندی
تعریف نحو گرا
تعریف نحوی جهت دار
ترجمه
درخت نحوی
انواع درخت نحوی:
درخت نحو مجرد
درخت نحو واقعی
الگوی ترجمه
درخت تولید شده برای الگوی ترجمه
تجزیه (پارسینگ)
تجزیه-دسته بندی روش ها
تجزیه کننده بالا به پایین
تجزیه بالا به پایین پیش گویانه
بازگشتی چپ
فاکتور چپ
تحلیل لغوی
رابط تحلیل گر لغوی
تشکیل جدول نماد
جدول نماد-روال ها
جدول نماد-پیاده سازی
ماشین پشته انتزاعی
دستورات محاسباتی
دستکاری پشته
کنترل جریان در ماشین
کنترل جریان-دستورات
فصل سوم: تحلیلگر لغوی
وظایف تحلیل گر لغوی:
1-خواندن نمادهای ورودی
2-تولید دنباله ای از نشانه ها
3-ثبت نشانه ها در جدول نمادها
4-حذف توضیحات برنامه، جای خالی و کاراکتر مربوط به سطر جدید
5-ارتباط دادن پیام های خطای تولید شده کامپایلر با برنامه مبدا
ارتباط با تجزیه کننده
دلایل جدایی فازهای تحلیل لغوی و تجزیه:
1-ساده تر بودن طراحی دو فاز
2-افزایش کارایی کامپایلر به دلیل استفاده از میانگیر بین دو فاز
3-قابلیت حمل کامپایلر و محدود شدن تغییرات به تحلیلگر لغوی
خطای مرحله تحلیل لغوی
پوشش خطا-Panic mode
تحلیل گر لغوی-پیاده سازی
عبارات با قاعده
عبارات با قاعده-خواص جبری
مجموعه های بی قاعده
گرامر با قاعده
تولیدکننده تحلیل گر لغوی Lex
Lex اجزای برنامه
تولیدکننده تحلیلگر لغوی
ماشین خودکار متناهی
ماشین خودکار قطعی
ماشین خودکار غیرقطعی
تبدیل NFA به DFA
ساخت NFA از عبارات با قاعده


فصل چهارم: تحلیل نحوی
فواید گرامرها
تجزیه کننده
تجزیه کننده-ارتباطات
خطای نحوی:
الف سطوح خطا
ب-ویژگی اداره کننده خطای نحوی
ج-استراتژی های پوشش خطای نحوی
خطای نحوی Panic mode
خطای نحوی Phrase Level
خطای نحوی Error production
خطای نحوی Global Correction
گرامر مستقل از متن
گرامر مستقل از متن-تعاریف
4 گرامر مستقل از متن نمونه اشتقاق های یک رشته
عبارات باقاعده-دلایل استفاده برای نحو زبان
تجزیه-نوع بالا به پایین
تجزیه-نوع بالا به پایین
تجزیه کننده پیشگو-پیاده سازی
تجزیه کننده پیشگوی غیر بازگشتی
تجزیه غیر بازگشتی پیشگو-عملکرد
مجموعه Follow و First
محاسبه (Follow (A
محاسبه (First (A
ایجاد جدول تجزیه
شناسایی گرامر (LL (1
پوشش خطا در تجزیه پیشگو
انتخاب مجموعه هماهنگ کننده
تجزیه بالا به پایین-انتقال کاهش
تجزیه انتقال کاهش-دستگیره
دستگیره-هرس نمودن
مشکلات هرس نمودن دستگیره
تجزیه انتقال کاهش با پشته
عملیات انتقال کاهش با پشته
تجزیه انتقال کاهش-پیشوند قابل وقوع
تجزیه انتقال کاهش-تناقض ها
تجزیه کننده عملگر اولویت
نقطه ضعف های روش عملگر اولویت
عملگر اولویت-تعیین اولویت ها
عملگر اولویت روشهای تعیین اولویت
استفاده از اولویت ها
عملگر اولویت-اولویت های بدیهی
عملگر اولویت-توابع اولویت
تجزیه عملگر اولویت-پوشش خطا
تجزیه کننده های LR
تجزیه LR-نقاط ضعف
تجزیه LR-انواع
تجزیه-LR اجزاء
تصمیم گیری تجزیه LR
تجزیه LR-جدول تجزیه
تجزیه LR-روال تجزیه
تفاوت گرامر LL و LR
تجزیه SLR
تجزیه SLR تقسیم بندی اقلام
تجزیه SLR-ایجاد قلم
تجزیه SLR-گروه اقلام
تجزیه SLR-اقلام معتبر
تجزیه SLR-گروه اقلام
تجزیه SLR-ایجادگروه اقلام (LR (0
تجزیه SLR-ایجاد جدول تجزیه
تجزیه CLR-تعریف قلم
تجزیه CLR-پیشوند قابل وقوع
تجزیه CLR-ایجاد مجموعه اقلام (LR (1
تجزیه CLR-ایجاد مجموعه اقلام
تجزیه CLR-ساخت جدول تجزیه
تجزیه LALR-ساخت جدول تجزیه
تجزیه LALR-ساخت جدول تجزیه بهینه
تجزیه LALR-تعیین پیش نگرها
LALR-محاسبه هسته های گروه اقلام
LALR-فشرده سازی جدول
وقوع خطا در تجزیه LR
پویش خطا در تجزیه LR
تولید کننده تجزیه کننده-Yacc
Yacc اجزای برنامه
Yacc اعلان
قوانین ترجمه