"اگر یک دستور زبان حداقل ۲ درخت تجزیه مجزا یا مشتقاتتولید کند، گرامر مبهم است." قانون دیگر: همه CFG (بدون نمادهای بی فایده) با بازگشتی چپ و بازگشتی راست برای یک ترمینال غیرترمینال نیز مبهم است.
چگونه متوجه می شوید که گرامر مبهم است؟
اگر
بیش از یک مشتق در سمت چپ یا بیش از یک مشتق از سمت راست یا بیش از یک درخت تجزیه برای رشته ورودی داده شده وجود داشته باشد، به دستور زبان مبهم گفته می شود. اگر دستور زبان مبهم نباشد به آن بدون ابهام گفته می شود. اگر گرامر دارای ابهام است، پس برای ساخت کامپایلر خوب نیست.
گرامر مبهم چیست مثال بزنید؟
در علوم کامپیوتر، گرامر مبهم یک دستور زبان بدون متن است که برای آن رشته ای وجود دارد که می تواند بیش از یک مشتق از سمت چپ یا درخت تجزیه داشته باشد، در حالی که یک دستور زبان بدون ابهام وجود دارد. یک دستور زبان بدون زمینه است که هر رشته معتبر دارای یک مشتق یا درخت تجزیه منحصر به فرد در سمت چپ است.
چگونه ثابت می کنید که گرامر بدون متن مبهم است؟
3 پاسخ
- همه CFG بدون نمادهای بی فایده و با بازگشت چپ و راست برای یک نماد، مبهم است. به طور کلی: …
- برای بررسی ابهام، باید 2 مشتق از سمت چپ برای یک رشته (یا 2 مشتق از سمت راست، یا 2 درخت مشتق) پیدا کنید.
چگونه گرامر مبهم را حل می کنید؟
روشهای رفع ابهام-
- با اصلاح گرامر.
- با افزودن قوانین گروه بندی.
- با استفاده از معناشناسی و انتخاب تجزیه ای که بیشترین معنا را دارد.
- با افزودن قوانین اولویت یا سایر قوانین تجزیه حساس به زمینه.