تجزیه کننده ال آر ساده. تحلیلگر نحوی اس ال ار یکی از روش های تحلیل نحوی پایین به بالا است، در روش تحلیل نحوی پایین به بالا، مراحل تحلیل از عناصر پایانی درون جمله داده شده آغاز و نهایتاً به سر ترم گرامر خاتمه می یابد. روش های تحلیل پایین به بالا در اصطلاح روش های انتقال - کاهش گفته می شود و به طور کلی به سه دسته تقسیم می شود: پارسینگ تقدم - عملگر، پارسینگ تقدم - ساده و پارسینگ LR. که روش LR نیز خود به سه دسته CLR, تجزیه کننده ال ای ال آر, SLR تقسیم می شوند.
روش ( 1 ) SLR یا ( 1 ) Simple LR یکی دیگر از روش های پایین به بالاست که پیاده سازی آن بسیار ساده است، البته نسبت به روش های ( 1 ) LR و ( 1 ) LALR محدودتر است. در این روش ابتدا کلیه حالات را حساب می کنند، سپس به هنگام تولید جدول، در جاهایی که عمل کاهش باید صورت بگیرد مثلاً . A→a، در سطر مربوطه به ازای کلیهٔ Followهای A در کل گرامر این عمل صورت می گیرد. یعنی به جای اینکه مانند روش ( 1 ) LR یا ( 1 ) LALR، در هر مرحله Followها را حساب کنیم، آن ها را به یکباره و در انتها در کل گرامر حساب می کنیم که طبیعتاً ساده تر است. البته چون عمل کاهش را به ازای کل Followهای متغیر سمت چپ قاعده انجام می دهیم، لذا نسبت به روش LR وLALR، احتمال بروز خطا بیشتر است. از طرفی دیده می شود که اگر گرامری ( 0 ) LR باشد، حتماً ( 1 ) SLR هم است، چون تنها تفاوت به هنگام کاهش است که در ( 0 ) LR به ازای همه عناصر این عمل صورت می گیرد، اما در ( 1 ) SLR فقط به ازای Followهای متغیر میانی است.
در تحلیل نحوی پایین به بالا از یک پشته استفاده می کنند، در تحلیل پایین به بالا، پس از اینکه تحلیلگر نحوی توکن ها را دریافت نمود، دو عمل امکان پذیر است:
الف ) توکن دریافت شده از تحلیلگر لغوی را مستقیماً به داخل پشتهpush کند، که به این عمل در اصطلاح عمل انتقال ( Shift ) گفته می شود.
ب ) با توجه به توکن دریافت شده، عناصر بالای پشته که با سمت راست یکی از قواعد گرامر مطابقت دارند را از بالای پشتهPOP کرده و متغیر میانی سمت چپ قاعدهٔ مذکور را به داخل پشته push کند، به این عمل در اصطلاح عمل کاهش ( Reduce ) گفته می شود.
در روش های پایین به بالا ابتدا قاعده $S'→S ( که S سر ترم گرامر است ) را به قاعده اضافه می کنند، سپس هر قاعده را شماره گذاری می کنند، ( از صفر ) ، سپس به هنگام عمل کاهش، بر اساس قاعده ای که کاهش صورت گرفته، آن را Ri نمایش می دهند که i شماره آن قاعده است. معمولاً برای نمایش shift نیز به اختصار از Si استفاده می شود.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفروش ( 1 ) SLR یا ( 1 ) Simple LR یکی دیگر از روش های پایین به بالاست که پیاده سازی آن بسیار ساده است، البته نسبت به روش های ( 1 ) LR و ( 1 ) LALR محدودتر است. در این روش ابتدا کلیه حالات را حساب می کنند، سپس به هنگام تولید جدول، در جاهایی که عمل کاهش باید صورت بگیرد مثلاً . A→a، در سطر مربوطه به ازای کلیهٔ Followهای A در کل گرامر این عمل صورت می گیرد. یعنی به جای اینکه مانند روش ( 1 ) LR یا ( 1 ) LALR، در هر مرحله Followها را حساب کنیم، آن ها را به یکباره و در انتها در کل گرامر حساب می کنیم که طبیعتاً ساده تر است. البته چون عمل کاهش را به ازای کل Followهای متغیر سمت چپ قاعده انجام می دهیم، لذا نسبت به روش LR وLALR، احتمال بروز خطا بیشتر است. از طرفی دیده می شود که اگر گرامری ( 0 ) LR باشد، حتماً ( 1 ) SLR هم است، چون تنها تفاوت به هنگام کاهش است که در ( 0 ) LR به ازای همه عناصر این عمل صورت می گیرد، اما در ( 1 ) SLR فقط به ازای Followهای متغیر میانی است.
در تحلیل نحوی پایین به بالا از یک پشته استفاده می کنند، در تحلیل پایین به بالا، پس از اینکه تحلیلگر نحوی توکن ها را دریافت نمود، دو عمل امکان پذیر است:
الف ) توکن دریافت شده از تحلیلگر لغوی را مستقیماً به داخل پشتهpush کند، که به این عمل در اصطلاح عمل انتقال ( Shift ) گفته می شود.
ب ) با توجه به توکن دریافت شده، عناصر بالای پشته که با سمت راست یکی از قواعد گرامر مطابقت دارند را از بالای پشتهPOP کرده و متغیر میانی سمت چپ قاعدهٔ مذکور را به داخل پشته push کند، به این عمل در اصطلاح عمل کاهش ( Reduce ) گفته می شود.
در روش های پایین به بالا ابتدا قاعده $S'→S ( که S سر ترم گرامر است ) را به قاعده اضافه می کنند، سپس هر قاعده را شماره گذاری می کنند، ( از صفر ) ، سپس به هنگام عمل کاهش، بر اساس قاعده ای که کاهش صورت گرفته، آن را Ri نمایش می دهند که i شماره آن قاعده است. معمولاً برای نمایش shift نیز به اختصار از Si استفاده می شود.
wiki: تجزیه کننده ال آر ساده