پروژه پاورپوینت اصول و مراحل طراحی کامپایلر از تحلیل تا تولید کد نهایی
خلاصه ای از پروژه:
این متن به بررسی اصول طراحی کامپایلرها میپردازد، با تاکید بر اهمیت این درس در رشته کامپیوتر و ضرورت ترجمه زبانهای سطح بالا به زبان ماشین. پیشنیازهای این درس، شامل نظریه زبانها و ماشین و طراحی و پیادهسازی زبانها، نیز ذکر شده است. همچنین، به نمونههایی از برنامههای تحلیلکننده مانند ویراستارهای ساختار و مفسرها اشاره شده و تعریف کامپایلر به عنوان فرآیند ترجمه برنامه و گزارش خطاها ارائه شده است.
در ادامه، دستهبندی کامپایلرها بر اساس نحوه ساخت و عملیات (تکگذره، چندگذره، اشکالزدا، بهینهساز) و عملیات کامپایلر شامل بخشهای تحلیل (تجزیه برنامه و تولید کد میانی) و سنتز (تبدیل کد میانی به برنامه مقصد) شرح داده شده است. سیستم پردازش زبان و اجزای آن مانند پیشپردازشگر، کامپایلر، اسمبلر و بارکننده نیز بررسی شدهاند. ارتباطات بین این اجزا و نقش پیشپردازشگر در جمعآوری ماژولها و تبدیل درشتدستورات توضیح داده شده است.
فازهای تحلیل در کامپایل شامل تشخیص نشانهها (تحلیل لغوی)، گروهبندی نشانهها (تحلیل نحوی) و بررسی خطاهای معنایی (تحلیل معنایی) است. مراحل کامل کامپایل از تحلیل لغوی تا تولید کد نهایی و نقش جلوبندی و عقببندی نیز تشریح شدهاند. مدیریت جدول نماد و هدف آن در فراهم کردن شناسایی سریع رکوردها برای ذخیره و بازیابی دادهها نیز مورد بحث قرار گرفته است.
بخش دوم متن به گرامر و تعریف ریاضی آن، اشتقاق و انواع آن (چپ و راست)، درخت تجزیه و اشتقاق، گرامر مبهم و نشانگذاری پسوندی میپردازد. تعریف نحوگرا و کاربرد آن در ترجمه ساختارهای زبان و تعیین نوع ساختار نیز بررسی شده است. همچنین، درخت نحوی (مجرد و واقعی) و الگوی ترجمه با تاکید بر تفاوت آن با ترجمه نحوگرا توضیح داده شدهاند.
در نهایت، به تجزیه (پارسینگ) و بررسی تعلق رشته ورودی به زبان مبدا و دستهبندی روشهای تجزیه (بالا به پایین و پایین به بالا) پرداخته شده است. تجزیهکنندههای بالا به پایین پیشگویانه و نقش نماد پیشنگر در این روش نیز مورد بررسی قرار گرفتهاند.
بهترین پروژههای دانشجویی کامپایلر، با دانلود آسان و آماده برای استفاده، در دسترس شماست!
عناوین و فهرست کلی پروژه:
اصول طراحی کامپایلر**
**شناسنامه منبع**
* عنوان منبع: کامپایلرها
* منبع اصلی: Compilers: Principles, Techniques, and Tools
**جایگاه درس در رشته کامپیوتر**
* ضرورت این درس
* ضرورت نیاز به زبانهای سطح بالا
* ضرورت ترجمه برنامههای نوشته شده با زبان سطح بالا به برنامه به زبان ماشین
* تنوع زبانهای برنامهنویسی سطح بالا
* دروس پیشنیاز: نظریه زبانها و ماشین، طراحی و پیادهسازی زبانها
* نوع درس: اجباری
**1- نمونهای از برنامههای تحلیلکننده**
* ویرایشگرهای ساختار
* چاپگرهای pretty printer
* بررسیکنندههای ایستا
* مفسرها
* شکلدهندههای متن
* کامپایلرهای سیلیسیومی
* مفسرهای پرس و جو
**1-2 تعریف کامپایلر**
* ترجمه برنامه از زبان مبدا به برنامه معادل در زبان میانی مانند اسمبلی
* گزارش وجود خطاها در برنامه مبدا به کاربر
**1-3 طبقهبندی کامپایلرها**
* دستهبندی کامپایلرها بر اساس چگونگی ساخت و عملیات
* تکگذره
* چندگذره
* اشکالزدا و Load-and-go
* بهینهساز
**1-4 عملیات کامپایلر**
* بخش تحلیل
* تجزیه برنامه مبدا به اجزای تشکیلدهندهاش
* تولید کد میانی از برنامه مبدا
* بخش سنتز
* تبدیل کد میانی به برنامه مقصد در زبان دیگر
**1-5 سیستم پردازش زبان**
* اجزای سیستم
* پیشپردازشگر
* کامپایلر
* اسمبلر
* بارکننده و ویرایشگر الحاق
* 1-5-1 پیشپردازشگر
* جمعآوری ماژولهای برنامه مبدا موجود در فایلهای جداگانه
* تبدیل بخشهای خلاصهشده به نام درشت دستورات به احکام زبان مبدا
* 1-5-2 ارتباطات در سیستم پردازش زبان
**1-6 سه فاز تحلیل در عمل کامپایل**
* تحلیل خطی (تحلیل لغوی یا پویش)
* تشخیص نشانهها
* تحلیل سلسله مراتبی (تحلیل نحوی یا تجزیه)
* گروهبندی نشانههای برنامه مبدا به جملات گرامری
* تحلیل معنایی
* بررسی خطاهای معنایی برنامه
**1-7 مراحل کامپایل**
* 1- تحلیل لغوی
* 2- تحلیل نحوی
* 3- تحلیل معنایی
* 4- تولید کد میانی
* 5- بهینهسازی کد
* 6- تولید کد نهایی
* جلوبندی (گروه فازهای متوالی وابسته به زبان مبدا)
* عقببندی (گروه فازهای متولی وابسته به زبان مقصد)
* تحلیلگر لغوی
* تحلیلگر نحوی
* تحلیلگر معنایی
* تولیدکننده کد میانی
* بهینهساز کد
* تولیدکننده کد نهایی
* مدیر جدول نماد
* ادارهکننده خطا
* 1-7-1 نمودار مراحل کامپایل
* 1-7-2 مراحل کامپایلر
* تحلیلگر لغوی
* مرور متن برنامه به صورت حرف به حرف
* تبدیل آنها به نشانهها (کلمات کلیدی، عملگر، جداکننده، ثوابت و شناسه)
* تحلیلگر نحوی
* بررسی خروجی تحلیل لغوی
* ساخت درخت تجزیه از نشانهها
* تحلیلگر معنایی
* بررسی برنامه مبدا برای یافتن خطاهای معنایی
* جمعآوری اطلاعات مربوط به نوع دادهها
* تولید کد میانی
* خواندن برنامه ورودی
* تبدیل به برنامهای در زبان میانی مانند اسمبلی
* بهینهساز کد
* بهینه کردن کد میانی (حذف متغیرهای میانی غیر ضروری)
* سرعت بخشیدن به تولید کد نهایی
* تولیدکننده کد نهایی
* تبدیل کد میانی بهینه به کد جابجاپذیر یا اسمبلی
* تعیین مکانهای حافظه برای متغیرهای برنامه
* انتساب متغیرها به ثباتهای ماشین
* مدیریت جدول نماد
* تعریف
* ساختمان دادهای شامل رکورد برای شناسه و میدانهایی برای صفات آن
* هدف
* فراهم کردن شناسایی سریع رکورد شناسه به منظور ذخیره و بازیابی دادههایش
* مثال از مراحل کامپایل: عبارت Area:= Pos + Rate * 50
**1-8 ابزارهای ساخت کامپایلر**
* مولدهای تجزیهکننده
* تولیدکنندههای پویشگر
* موتورهای ترجمه نحوگرا
* مولدهای کد خودکار
* موتورهای جریان داده
**2-1 گرامر**
* وسیله تشخیص عضویت یک رشته در زبان
* گرامر: روش ساخت رشتههایی متشکل از نمادها
* مشخصکننده ساختار یک زبان
* تعریف
* کاربرد
**2-2 تعریف ریاضی گرامر**
* گرامر 4 گانه {N, T, S, P} = G
* N = مجموعه غیر پایانهها
* T = مجموعه پایانهها
* S = عضو شروع
* P = مجموعه قوانین تولید رشتههای زبان
* مثال از یک گرامر
**2-3 اشتقاق**
* فرآیند تولید رشته از گرامر با شروع از عنصر ابتدایی گرامر و استفاده از قوانین
* انواع اشتقاق
* از چپ: در هر قدم انجام جایگزینی روی سمت چپترین غیرپایانه
* از راست: در هر قدم انجام جایگزینی روی سمت راستترین غیرپایانه
* مثال از اشتقاق
* 2-3-1 درخت تجزیه
* درخت تجزیه نشاندهنده چگونگی اشتقاق رشتهای از زبان از نماد شروع گرامر
* ساخت درخت تجزیه
* 2-3-2 درخت اشتقاق
* درخت تجزیهای نشاندهنده مراحل اشتقاق بهکاررفته (راست یا چپ)
* مثال
**2-4 گرامر مبهم**
* وجود دو اشتقاق راست یا دو اشتقاق چپ برای یک رشته در گرامر
* مثال
**2-5 نشانگذاری پسوندی**
* نشانگذاری یک عبارت مانند E
**2-6 تعریف نحوگرا**
* کاربرد برای ترجمه ساختارهای زبان
* ترجمه ساختار را بر حسب صفات مربوط به مولفههای نحوی
* تعیین نوع ساختار، مکان اولین دستور تولید شده در برنامه هدف یا تعداد دستورات برای کامپایلر
* 2-6-1 تعریف نحوی جهتدار
* گرامر و مجموعهای از قواعد معنایی وابسته به آن
* هر نماد در گرامر مجموعهای از صفات دارد
* در هر مولد یا قانون گرامر مجموعهای از قواعد معنایی برای محاسبه مقادیر صفات نمادها وجود دارد
* صفات و محاسبه آنها
**2-7 ترجمه**
* ساختن درخت ترجمه
* الف) ساختن درخت تجزیه برای ورودی
* ب) اگر گره n در درخت تجزیه با نماد x از گرامر متناظر باشد، x.a مقدار صفت a از نماد x در آن گره است
* ج) مقدار x.a در گره n با استفاده از قواعد معنایی برای صفت a همراه با قانون گرامری استفاده شده در گره n محاسبه میشود
* مثال از ترجمه
* تعریف نحوگرا برای ترجمه عبارات میانوندی به عبارت معادل پسوندی
* 2-7-1 درخت نحوی
* 2-7-2 انواع درخت نحوی
* هر گره نماینده یک عملگر و فرزندان آن عملوند آن
* درخت تجزیهای که عملگرها خود فرزند محسوب میشوند
* درخت نحو مجرد
* درخت نحو واقعی
**2-8 الگوی ترجمه**
* گرامر مستقل از متنی که قطعه برنامههایی که عملیات معنایی نامیده میشوند در سمت راست قوانین آن اضافه شدهاند
* تفاوت با ترجمه نحوگرا
* نمایش ترتیب ارزشیابی قوانین بهطور صریح
* 2-8-1 درخت تولید شده برای الگوی ترجمه
* یک برگ اضافی ساخته شده برای عمل معنی
* 1- ساختن فرزند اضافی برای درخت
* 2- متصل نمودن این فرزند به گره مربوط به قانون خود در گرامر
* طریقه ساخت درخت
**2-9 تجزیه (پارسینگ)**
* تجزیه به کمک تحلیلگر نحوی و به نام تحلیل نحوی انجام میگیرد
* در تجزیه تعلق رشته ورودی به زبان مبدا بررسی میشود
* بررسی طبق ساختار و نحو دستورات زبان مبدا انجام میگیرد
* 2-9-1 تجزیه- دستهبندی روشها
* روش بالا به پایین
* ساخته شدن درخت تجزیه از بالا به پایین. مانند LL(1)
* روش پایین به بالا
* ساخته شدن درخت تجزیه از پایین
* مانند تجزیه به بالا
* عملگر اولویت و LR
* 2-9-1-1 تجزیهکننده بالا به پایین
* آغاز تجزیه از عنصر شروع گرامر
* 2-9-1-2 تجزیه بالا به پایین پیشگویانه
* نماد پیشنگر
* مجموعه تمام پایانههایی است که در قوانین مربوط به غیرپایانه در سمت چپ قرار میگیرند
* با نگاه به نماد پیشنگر در مورد استفاده از هر قانون در تصمیمگیری
* روش تجزیه بالا به پایین بدون ویژگی عقبگرد
* مثال
**2-10 بازگشتی چپ**
* ظاهر شدن غیرپایانه سمت چپ در سمت راست قانون به عنوان اولین عنصر
* حذف بازگشتی چپ پیش از تجزیه
* مثال
**2-11 فاکتور چپ**
* یکسان بودن عنصر سمت چپ در حداقل دو قانون گرامر
* فاکتورگیری چپ
* مثال
**2-12 تحلیل لغوی**
* دریافت یک رشته کاراکتری از ورودی
* استخراج نشانهها از آن
* تحویل نشانهها به تجزیهکننده
* ارتباط دادن پیامهای خطای تولید شده کامپایلر با برنامه مبدا
* حذف فضاهای خالی بین عبارات و توضیحات برنامه
* تشخیص شناسهها و کلمات کلیدی زبان
* مثال
* 2-12-1 رابط تحلیلگر لغوی
**2-13 تشکیل جدول نماد**
* جدولی ساختهشونده توسط فازهای تحلیل، مورد استفاده فازهای تولید کد
* فاز تحلیل لغوی
* فاز تحلیل نحوی
* فاز تولید کد
* فاز تحلیل معنایی
* 2-13-1 جدول نماد- روالها
* Insert ( s , t)
* اندیس وارده جدید مربوط به رشته s نشانه t را بر میگرداند
* Lookup ( s )
* اگر s در جدول است، اندیس آن بر میگردد اگر نه، صفر بر میگردد
* عمل Lookup تعیین وجود شناسه در جدول نماد
* عمل Insert در صورت عدم وجود شناسه، درج آن در جدول
* 2-13-2 جدول نماد- پیادهسازی
**2-14 ماشین پشته انتزاعی**
* ماشین پشته انتزاعی: شکل مرسوم نمایش میانی تولید کد
* اجزای ماشین
* 1- حافظه دستورات
* 2- حافظه دادهها
* محاسبات ماشین
* 1- محاسبات صحیح
* 2- دستورات دستکاری پشته
* 3- روند کنترل
* 2-14-1 دستورات محاسباتی
* قابلیت پیادهسازی مستقیم عملهای پایه مانند جمع، تفریق و … در ماشین انتزاعی
* پیادهسازی عملیات پیچیدهتر با دنبالهای از دستورات اولیه ماشین
* استفاده از نمایش پسوندی در کد ماشین برای ارزیابی یک عبارت محاسباتی
* استفاده از پشته در حین ارزیابی عبارات
* ارزیابی عبارت در ماشین
* بیرون پراندن عملوندها از پشته
* انجام عملگر بر روی مقدار پشته
* قرار دادن نتیجه بر روی پشته
* مثال ارزیابی عبارت محاسباتی با پشته
* 2-14-2 دستکاری پشته
* مثال عملیات در پشته هنگام محاسبه
* 2-14-3 کنترل جریان در ماشین
* تعیین مکان پرش
* 1- تعیین محل پرش با عملوند دستور
* 2- تعیین فاصله نسبی برای پرش مثبت یا منفی با عملوند دستور
* 3- تعیین محل پرش با نمادهای دستور
* امکان برداشتن عملوند از بالای پشته
* 2-14-3-1 کنترل جریان – دستورات
**3-1 وظایف تحلیلگر لغوی**
* 1- خواندن نمادهای ورودی
* 2- تولید دنبالهای از نشانهها
* 3- ثبت نشانهها در جدول نمادها
* 4- حذف توضیحات برنامه، جای خالی و کاراکتر مربوط به سطر جدید
* 5- ارتباط دادن پیامهای خطای تولید شده کامپایلر با برنامه مبدا
**3-2 ارتباط با تجزیهکننده**
* 3-2-1 دلایل جدایی فازهای تحلیل لغوی و تجزیه
* 1- سادهتر بودن طراحی دو فاز
* 2- افزایش کارایی کامپایلر به دلیل استفاده از میانگیر بین دو فاز
* 3- قابلیت حمل کامپایلر و محدود شدن تغییرات به تحلیلگر لغوی
**3-3 خطای مرحله تحلیل لغوی**
* منطبق نبودن هیچکدام از الگوهای مربوط به تشخیص نشانهها در زبان مبدا با پیشوندی از ورودی
* روشهای پوشش خطا
* Panic Mode
* حذف کاراکتر اضافی
* درج کاراکتر از قلم افتاده
* جایگزینی یک کاراکتر بجای کاراکتر غلط
* جابجا نمودن دو کاراکتر مجاور هم
* 3-3-1 پوشش خطا- Panic mode
* سادهترین شیوه پوشش خطا
* حذف کاراکترهای متوالی از باقیمانده ورودی تا پیدا شدن نشانه قابل قبول توسط تحلیلگر لغوی
* کافی بودن برای یک سیستم محاسباتی محاورهای
**3-4 تحلیلگر لغوی – پیادهسازی**
* روشهای پیادهسازی
* استفاده از تولیدکننده تحلیلگر لغوی مانند کامپایلر Lex
* نوشتن تحلیلگر لغوی به زبانهای متداول برنامهنویسی
* نوشتن تحلیلگر لغوی به اسمبلی و مدیریت صریح خواندن رشته ورودی
**3-5 عبارات با قاعده**
* قواعد تعریف
* مثال عبارات باقاعده
* 3-5-1 عبارات باقاعده – خواص جبری
* مثال عبارات با قاعده در زبان پاسکال
* تعریف باقاعده مربوط به شناسهها
* تعریف باقاعده اعداد بیعلامت
**3-6 مجموعههای بیقاعده**
* 1- ساختارهای موازنهای و لانهای
* 2- رشتههای تکراری
* 3- رشتههایی برای مقایسه دو چیز
**3-7 گرامر با قاعده**
* فرم قوانین گرامر باقاعده
* مثال چند گرامر با قاعده
**3-8 تولیدکننده تحلیلگر لغوی Lex**
* روش ایجاد تحلیلگر توسط Lex
* 3-8-1 – Lexاجزای برنامه
* اعلانها
* قواعد ترجمه
* رویههای کمکی c
* بخشهای برنامه مبدا Lex
* ترتیب در متن برنامه مبدا Lex
* بخش اعلان برنامه
* اعلان متغیرها
* اعلان ثوابت صریح
* تعاریف باقاعده (اجزای عبارات باقاعده مورد استفاده در قواعد ترجمه)
* بخش قوانین ترجمه بلافاصله پس از %%
* 3-8-1 – Lexاجزای برنامه
* C رویههای کمکی
* مورد استفاده در اجرای اعمال
**3-9 ماشین خودکار متناهی**
* ابزاری برای تشخیص ساختارهای موجود زبان در دنباله ورودی از نشانهها و پذیرفتن یا نپذیرفتن دنباله کاراکترهای ورودی
* انواع ماشینهای خودکار
* 1- ماشین خودکار متناهی قطعی DFA
* 2- ماشین خودکار متناهی غیر قطعی NFA
* 3-9-1 ماشین خودکار قطعی
* 3-9-2 ماشین خودکار غیر قطعی
* مثال ازDFA
* مثال ازNFA
* 3-9-3 تبدیل NFA به DFA
* مثال همبستگی لامبدا
* مثال تبدیل NFA به DFA
* 3-9-4 ساخت NFA از عبارات با قاعده
* مثال اجتماع دو عبارت با قاعده
* 3-9-4 ساخت NFA از عبارات با قاعده
* مثال الحاق دو عبارت
* 3-9-4 ساخت NFA از عبارات با قاعده
* مثال کلین استار یک عبارت باقاعده
* مثال تشکیل NFA از عبارات باقاعده
* مثال یک الگو برای تحلیلگر لغوی
**4-1 فواید گرامرها**
* 1- نمایش دقیق و قابل فهمی برای زبان
* 2- امکان ایجاد پارسرهای کارآمد با قابلیت تشخیص ساختارهای نحوی درست و دقیق
* 3- ایجاد ساختاری مناسب برای زبان جهت ترجمه صحیح و آشکارسازی خطا توسط گرامر درست طراحی شده
* 4- سادگی اضافه نمودن ساختارهای جدید به زبان
**4-2 تجزیهکننده**
* دریافت رشتهای از نشانهها از تحلیلگر لغوی و بررسی تعلق رشته به زبان توسط گرامر
* انجام بررسی طبق ساختارهای نحوی زبان و هر مرحله گزارش خطاهای نحوی به ادارهکننده خطا
* رفع خطا برای پردازش ادامه ورودی بر اساس خطاهای متداول
* 4-2-1 تجزیهکننده- ارتباطات
**4-3 خطای نحوی**
* الف) سطوح خطا
* 1- لغوی: مانند دیکته غلط شناسه، کلمه کلیدی یا عملگر
* 2- نحوی: مانند عبارت محاسباتی با پرانتزهای نامتعادل
* 3- معنایی: مانند استفاده از عملگر با عملوندهای ناسازگار
* 4- منطقی: مانند فراخوانی بازگشتی بینهایت
* ب) ویژگی ادارهکننده خطای نحوی
* توانایی گزارش حضور خطاها را با وضوح و با دقت
* پوشش هر خطا با سرعت کافی به جهت امکان آشکارسازی خطاهای بعدی
* عدم کاهش بیش از حد سرعت پردازش برنامههای صحیح
* ج) استراتژیهای پوشش خطای نحوی
* -Panic Mode
* -Phrase level
* -Error production
* -Global correction
* Panic mode
* روش کار
* ویژگی
* Phrase Level
* ویژگی
* روش کار
* Error production
* روش کار
* Global Correction
* روش کار
**4-4 گرامر مستقل از متن**
* G ( V , Σ , P , S) اجزای گرامر
* قوانین: اعضای مجموعه V * ( V U Σ )
* مجموعه متغیرها یا غیر پایانهها
* عنصر شروع گرامر
* عناصر پایانه
* ویژگی زبان
* 4-4-1 گرامر مستقل از متن – تعاریف
* فرم جملهای
* جمله
* زبان
* 4- 4گرامر مستقل از متن نمونه اشتقاقهای یک رشته
* مثال گرامرهای مستقل از متن
**4-5 عبارات باقاعده- دلایل استفاده برای نحو زبان**
* 1- عدم نیاز به نمایش نوع قوی مانند گرامر برای توصیف قوانین ساده لغوی زبان
* 2- امکان نمایش مختصرتر و قابل فهمتری برای نشانهها نسبت به گرامر
* 3- ایجاد تحلیلگرهای لغوی کاراتر به صورت خودکار
* 4- راه مناسبی برای پیمانه سازی جلوبندی کامپایلر به دو بخش قابل مدیریت با تقسیم ساختار زبان به لغوی و غیرلغوی
**4-6 تجزیه- نوع بالا به پایین**
* 1- سعی در یافتن سمت چپترین اشتقاق برای رشته ورودی دارد
* 2- سعی در ساختن درخت تجزیه برای رشته ورودی با شروع از ریشه و ایجاد گرههای درخت به صورت پیش ترتیب
* انواع پارسرهای بالا به پایین
* 1- گرامرهای بدون عقبگرد LL (1)
* 2- گرامرهای با عقبگرد
* تجزیهکننده بازگشتی – کاهشی (پیشگو)
* تهیه مجموعهای از پایانههایی که در هر قانون برای یک غیرپایانه در سمت راست ظاهر میشوند
* بررسی دنباله رشته ورودی بر طبق مجموعه بالا
* بررسی بالا با مقایسه نماد پیشنگر در ورودی با عناصر مجموعه بالا
* 4-6-1 تجزیهکننده پیشگو – پیادهسازی
* ایجاد نمودار انتقال
* مثال تجزیهکننده پیشگو- نمودار انتقال
* مثال تجزیه پیشگو
* 4-6-2 تجزیهکننده پیشگوی غیر بازگشتی
* بخشهای یک تجزیهکننده غیر بازگشتی
* میانگیر ورودی
* پشته
* جدول تجزیه
* دنباله خروجی
* 4-6-2 تجزیه غیر بازگشتی پیشگو – عملکرد
* مثال تجزیهکننده غیر بازگشتی پیشگو
**4-7 مجموعه Follow و First**
* First
* Follow
* 4-7-1 محاسبه Follow ( A)
* 4-7-1 محاسبه First ( A)
* مثال مجموعههای Follow و First
**4-8 ایجاد جدول تجزیه**
* مثال جدول تجزیه
**4-9 شناسایی گرامر LL(1)**
* مثال گرامر LL (1)
**4-10 پوشش خطا در تجزیه پیشگو**
* نوع خطا
* روش پوشش خطا
* 4-10-1 انتخاب مجموعه هماهنگکننده
* مثال بروز خطا در تجزیه پیشگو
**4-11 تجزیه بالا به پایین – انتقال کاهش**
* سعی در ایجاد درخت تجزیه با شروع از برگها و رفتن به سمت ریشه = کاهش
* جایگزینی یک زیررشته خاص منطبق با سمت راست یک قانون با نماد سمت چپ همان قانون
* مثال تجزیه بالا به پایین – انتقال کاهش
* 4-11-1 تجزیه انتقال کاهش – دستگیره
* ویژگی دستگیره
* مثال دستگیره
* 4-11-1-1 دستگیره- هرس نمودن
* مزیت هرس نمودن
* مراحل هرس نمودن
* مثال هرس نمودن دستگیره
* 4-11-2 مشکلات هرس نمودن دستگیره
**4-12 تجزیه انتقال کاهش با پشته**
* استفاده از پشته به منظور نگهداری نمادهای گرامر
* استفاده از میانگیر ورودی جهت نگهداری رشته مورد نظر برای تجزیه
* روند تجزیه
* 4-12-1 عملیات انتقال کاهش با پشته
* مثال تجزیه انتقال کاهش با پشته
**4- 13 تجزیه انتقال کاهش – پیشوند قابل وقوع**
**4-14 تجزیه انتقال کاهش- تناقضها**
* تناقض انتقال – کاهش
* تناقض کاهش کاهش
* 4-14 تجزیه کننده عملگر اولویت
* 4-14-1 نقطه ضعفهای روش عملگر اولویت
* 4-14-2 عملگر اولویت – تعیین اولویتها
* 4-14-2 عملگر اولویت روشهای تعیین اولویت
* مثال عملگر اولویت – تعیین اولویتها
* 4-14-3 استفاده از اولویتها
* مثال استفاده از اولویتها
* 4-14-4 عملگر اولویت – اولویتهای بدیهی
* مثال عملگر اولویت- جدول اولویت
* 4-14-5 عملگر اولویت – توابع اولویت
* مثال عملگر اولویت – توابع اولویت
* مثال عملگر اولویت – گراف روابط اولویت
* 4-14-5 تجزیه عملگر اولویت- پوشش خطا
**4- 15 تجزیه کنندههای LR**
* دلایل پر طرفدار بودن تجزیه کنندههای LR
* 4-15-1 تجزیه LR- نقاط ضعف
* 4-15-2 تجزیه LR- انواع
* 4-15-3 تجزیه – LR اجزاء
* 4-15-4 تصمیم گیری تجزیه LR
* 4-15-5 تجزیه LR – جدول تجزیه
* 4-15-6 تجزیه LR – روال تجزیه
* مثال تجزیه LR
* 4-15-7 تفاوت گرامر LL و LR
**4-16 تجزیه SLR**
* تعریف یک قلم
* مثال اقلام مختلف قانون
* 4-16 تجزیه SLR تقسیم بندی اقلام
* 4-16-1 تجزیه SLR-ایجاد قلم
* 4-16-2 تجزیه SLR- گروه اقلام
* مثال تجزیه SLR- گروه اقلام
* 4-16-2 تجزیه SLR- اقلام معتبر
* مثال تجزیه SLR- اقلام معتبر
* 4-16-2 تجزیه SLR- گروه اقلام
* مثال تجزیه SLR- گروه اقلام
* 4-16-2 تجزیه SLR- ایجادگروه اقلامLR(0)
* مثال تجزیه SLR- ایجادگروه اقلام
* 4-16-2 تجزیه SLR- ایجاد جدول تجزیه
**4-17 تجزیه CLR- تعریف قلم**
* عملکرد
**4-17 تجزیه CLR-پیشوند قابل وقوع**
**4-17 تجزیه CLR- ایجاد مجموعه اقلامLR(1)**
* مثال تجزیه CLR- ایجاد مجموعه اقلام
* گراف goto برای مثال
**4-17 تجزیه CLR- ساخت جدول تجزیه**
**4-18 تجزیه LALR- ساخت جدول تجزیه**
* مثال تجزیه LALR- ساخت جدول تجزیه
* مثال پوشش خطا در تجزیه LR و LALR
**4-18 تجزیه LALR- ساخت جدول تجزیه بهینه**
**4-18 LALR- تعیین پیش نگرها**
**4-18 LALR- محاسبه هسته های گروه اقلام**
* مثال LALR- محاسبه هسته های گروه اقلام
**4-18 LALR- فشرده سازی جدول**
* مثال LALR- فشرده سازی جدول
**4-19 وقوع خطا در تجزیه LR**
**4-20 پویش خطا در تجزیه LR**
**4-21 تولید کننده تجزیه کننده – Yacc**
* روش ایجاد مترجم توسط Yacc
* 4-21-1 – Yaccاجزای برنامه
* بخش های برنامه مبدا Yacc
* ترتیب در متن برنامه مبدا Yacc
* 4-21-1 – Yaccاعلان
* 4-21-2 – Yaccقوانین ترجمه
نقد و بررسیها
هنوز بررسیای ثبت نشده است.