سلام و وقت بخیر خدمت همراهان وب سایت آموزشی پی وی لرن. با دوره کامل آموزش طراحی کامپایلر در خدمت شما عزیزان خواهیم بود. در این بخش از آموزش با بررسی انواع تجریه (Parsing) همراه خواهیم بود. با ما همراه باشید.
تحلیلگر نحوی از قوانین ترکیب تعریف شده با استفاده از گرامر مستقل از متن پیروی می کنند. نحوه اجرای قوانین ترکیبی (اشتقاق) تجزیه را به دو دسته تقسیم می کند: تجزیه بالا به پایین و تجزیه پایین به بالا.
هنگامی که تجزیه کننده به ساختن درخت تجزیه از نماد آغازین می پردازد و سپس سعی می کند نماد آغازین را به ورودی تبدیل کند ، به آن تجزیه بالا به پایین گفته می شود.
تجزیهکننده کاهشی بازگشتی یا پایین گرد (Recursive descent parser): این شکل رایج تجزیه کردن از بالا به پایین است. دلیل این که این روش بازگشتی نامیده شده است بخاطر اینست که از رویه های بازگشتی برای پردازش ورودی استفاده می کند. تجزیه کاهشی بازگشتی از مشکل پس گرد- backtracking رنج می برد.
پس گرد-Backtracking: به این معنی است که اگر یک اشتقاق از ترکیب fail شود، تحلیلگر نحوی روند خود را با استفاده از قوانین متفاوت از همان ترکیب مجدداً آغاز می کند. این روش ممکن است رشته ورودی را بیش از یک بار پردازش کند تا ترکیب مناسب را تعیین کند.
همانطور که از نام آن پیداست ، تجزیه پایین به بالا با نمادهای ورودی شروع می شود و سعی می کند تا درخت تجریه را تا نماد آغازین بسازد.
مثال:
رشته ورودی: a + b * c
قوانین تولید:
1 2 3 4 5 | S → E E → E + T E → E * T E → T T → id |
حال بگذارید تجزیه از پایین به بالا را شروع کنیم.
1 | a + b * c |
ورودی را بخوانید و بررسی کنید که آیا تولید با ورودی مطابقت دارد:
1 2 3 4 5 6 7 8 | a + b * c T + b * c E + b * c E + T * c E * c E * T E S |
در این بخش از آموزش طراحی کامپایلر به بررسی انواع تجریه (Parsing) پرداختیم. در بخش های بعدی هرکدام از را به طور کامل توضیح خواهیم داد. با ما همراه باشید.