تالار گفتمان مانشت
آزاد ۸۹ ساده سازی گرامر مستقل / - نسخه‌ی قابل چاپ

آزاد ۸۹ ساده سازی گرامر مستقل / - zimenswall - 07 آذر ۱۳۹۲ ۱۱:۲۹ ق.ظ

سلام

در پوران یه ساده سازی انجام داده به این شکل:
[tex]S\rightarrow a | aA | B[/tex]
[tex]A\rightarrow aB [/tex]
[tex]B\rightarrow Aa | a [/tex]

و برای حذف قانون یکه، کلا قانون B را از گرامر حذف کرده و نتیجه را این داده :
[tex]S\rightarrow a | aA | Aa[/tex]
[tex]A\rightarrow aAa | aa [/tex]

من تا حالا توی ساده سازی اینجوریشو ندیده بودم. آیا اینجا درست حل کرده یا من چیزی هست که بلد نیستم؟

RE: ساده سازی گرامر مستقل / آزاد ۸۹ - Riemann - 07 آذر ۱۳۹۲ ۱۱:۵۲ ق.ظ

(۰۷ آذر ۱۳۹۲ ۱۱:۲۹ ق.ظ)zimenswall نوشته شده توسط:  سلام

در پوران یه ساده سازی انجام داده به این شکل:
[tex]S\rightarrow a | aA | B[/tex]
[tex]A\rightarrow aB [/tex]
[tex]B\rightarrow Aa | a [/tex]

و برای حذف قانون یکه، کلا قانون B را از گرامر حذف کرده و نتیجه را این داده :
[tex]S\rightarrow a | aA | Aa[/tex]
[tex]A\rightarrow aAa | aa [/tex]

من تا حالا توی ساده سازی اینجوریشو ندیده بودم. آیا اینجا درست حل کرده یا من چیزی هست که بلد نیستم؟

سلام

بله اینجور درسته
اینطور کار کرده که هرچی سمت راست B هست رو آورده و توی هر جایی که توی قانون های دیگه B وجود داره به ازای همه سمت راستی های B جایگزین کرده، بعد از این عمل دیگه B دسترس پذیر نمیشه و حذف میشه.

RE: ساده سازی گرامر مستقل / آزاد ۸۹ - zimenswall - 07 آذر ۱۳۹۲ ۱۱:۵۹ ق.ظ

(۰۷ آذر ۱۳۹۲ ۱۱:۵۲ ق.ظ)Riemann نوشته شده توسط:  سلام

بله اینجور درسته
اینطور کار کرده که هرچی سمت راست B هست رو آورده و توی هر جایی که توی قانون های دیگه B وجود داره به ازای همه سمت راستی های B جایگزین کرده، بعد از این عمل دیگه B دسترس پذیر نمیشه و حذف میشه.
B که با A دسترس پذیره.

[tex]S\rightarrow a | aA | Aa[/tex]
[tex]A\rightarrow aB [/tex]
[tex]B\rightarrow Aa | a [/tex]

RE: ساده سازی گرامر مستقل / آزاد ۸۹ - Jooybari - 07 آذر ۱۳۹۲ ۰۱:۳۱ ب.ظ

(۰۷ آذر ۱۳۹۲ ۱۱:۵۹ ق.ظ)zimenswall نوشته شده توسط:  B که با A دسترس پذیره.

[tex]S\rightarrow a | aA | Aa[/tex]
[tex]A\rightarrow aB [/tex]
[tex]B\rightarrow Aa | a [/tex]

سلام. اگه یه غیرپایانه خودش رو فراخوانی نکنه میشه کل عبارت سمت راستش رو با فراخوانی های خودش جایگزین کرد واونرو حذف کرد. اینجا B رو در داخل A و S قرار داده و حذفش کرده. میشه به طریق مشابه A رو هم حذف کرد و داخل S و B قرار داد.

[tex]S\to a|aaB|B[/tex]
[tex]B\to a|aBa[/tex]

RE: ساده سازی گرامر مستقل / آزاد ۸۹ - zimenswall - 07 آذر ۱۳۹۲ ۰۱:۵۶ ب.ظ

(۰۷ آذر ۱۳۹۲ ۰۱:۳۱ ب.ظ)Jooybari نوشته شده توسط:  اگه یه غیرپایانه خودش رو فراخوانی نکنه میشه کل عبارت سمت راستش رو با فراخوانی های خودش جایگزین کرد واونرو حذف کرد.

[tex]S\to a|aaB|B[/tex]
[tex]B\to a|aBa[/tex]

تشکر
این نکته را نمیدونستم.