حذف لاندا در نرمال سازی گرامر ها به خاطر چیه؟
حذف لاندا در نرمال سازی گرامر ها به خاطر چیه؟
این مورد هم به دلیل مشکلاتی است که در پیاده سازی پارسرهای پایین به بالا ایجاد می کند ، حذف می شود. چون هم باعث حلقه نامتناهی می شود و هم تداخل ایجاد می کند
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master
میشه با یه مثال بگین که پارسر پائین به بالا چجوری مشکل ساز میشه؟
با تشکر از whitehat اگه با یه مثال توضیح بدین خیلی کمک می کنه
الان برای مثال زدن حضور ذهن ندارم :(
سعی کنید مجموعه first و fallow را خودتان بسازید و یک نمودار SLR بنویسید.
البته این نکته را توجه داشته باشید در این مورد یک استثنا وجود دارد و آن رشته هایی است که لاندا را تولید می کنند و باید یک قانون جمله شروع به لاندا وجود داشته باشد
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master
سلام
در پارسرهای پایین به بالا (Bottom-Up) در واقع هدف، تولید گراف پارس از روی رشته مورد نظر و رسیدن به سرترم گرامر است.
این پروسه بر اساس کاهش متوالی رشته مورد تحلیل با استفاده از قوانین موجود در گرامر طرح شده و در نهایت این کاهشها به رسیدن به سرترم گرامر منجر میشوند(پارس موفقیت آمیز)
قاعده لامبدا در یک گرامر میبایست فقط از طریق سرترم قابل دسترس بوده و وجود آن در هر یک از دیگر قوانین به این معنی است که برای تولید یک رشته منحصر به فرد ،بتوان روشهای متفاوتی با قوانین متفاوت ارائه کرد.
خود این مسئله به تنهایی باعث ابهام گرامر میشود، اما خصوصا در مورد پارسرهای پایین به بالا سبب تولید حلقه بینهایت هم میشود. زیرا میتوان رشته مورد نظر را به شکل، ( رشته X + بینهایت لامبدا = رشته X ) در نظر گرفت که در این صورت هر کدام از لامبداها معرف یک قانون از گرامر بوده و میتوان آنها را پردازش نمود. (در واقع دلیلی برا عدم پردازش آنها وجود ندارد)
موفق باشید