تالار گفتمان مانشت

نسخه‌ی کامل: مشکل سوال 24 فصل 5-1
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
کسی میتونه این حل رو خوب توضیح بدد چرا کاما استفاده کرده و مفهوم این سوال چیه ؟ منطق این حل چیه؟
[تصویر:  147145_1_1379087521.jpg]
کاما واسه جدا کردن 2 قاعده تولید شده از همه(به جای مثلا نوشتن قواعد در خطوط جدا از هم، یا علامت "|" که برای جدا کردن قوائد، مورد استفاده قرار میگیره)!
S->S , M در واقع S سمت راست برای ایجاد حلقه استفاده میشه. که با این کار میشه به تعداد نا محدود M تولید کنه!
حالا این M ها میتونن به X->Y تبدیل شوند. که در کل این گرامر به این صورت کار میکنه که به هر تعداد که نیاز باشه قاعده ی X->Y تولید میکند. حالا X فقط میتونه حروف بزرگ(که غیر ترمینال هستند) رو تولید کنه و Y میتونه هر ترکیب دلخواهی از غیر ترمینال ها و ترمینالها(حروف بزرگ و کوچک) تولید کنه که این خصوصیت زبانهای مستقل از متنه!
من فقط کلیات رو توضیح دادم اگه احساس میکنید لازمه بفرمایید تا کامل شرح بدم!
ممنون عزیزم اولشو متوجه شدم خوب بود
اینجور متوجه شدم که ما برای تولید قوانین مستقل از متن از قاعده اول به تعداد قوانین گرامر استفاده می کنیم
مثلن اگر سه قاعده داریم سه تا از قانون اول Mتولید میکنیم
بعدش بعد از قانون خط دوم به جای M یا قانون X میدهد Y میگذاریم یا قانون X میدهد لاندا
اما دوتا سوال 1-ما که تو قانون خط دوم میتونیم M را با X میدهد Y جایگزین کنیم پس چرا در قانون خط اول دوباره این قانون امده؟ تکراری نیست؟
سوال دوم؟ ما تو قواعد گرامر یک غیرپایانه را میبریم به پایانه ولی اینجا A,B,C به پایانه نمیرند !
در جواب سوال اولتون باید بگم که این کار برای اینه که حتما یه دونه X->Y داشته باشیم اگر به جای X->Y اولی که سمت راست S هست لامبدا میذاشیم میشد که هیچی هم تولید کنیم اما هیچی که گرامر حساب نمیشه!!!
در مورد سوال دوم هم باید اینو بگم که درسته که A,B,C با حروف بزرگ نوشته شدند اما برای گرامری که الان داریم در مورد حرف میزنیم پایانه حساب میشنف ولی برای گرامر هایی که تولید میشن غیر پایانه(امیدوارم که از جمله بندی بدم گیج نشده باشید) با کمی توجه به جمله معنیش کاملا مشخصه!!!
فکر کنم جواب سوال اول این میشه که از حلقه متغیر S خارج بشیم در پایان تولید قوانین!
من یه گرامر فرضی رو با این روند تولید کردم ببین درسته؟!
[تصویر:  147235_1_1379087521.jpg]
بله درسته واسه اینه که به حلقه پایان بده اما میشد جای X->Y ، لامبدا بذاره که در اون صورت رشته تهی هم قابل تولید بود که رشته تهی جزء گرامر ها نیست!
بله این یک گرامر مستقل از متنه هرچند که این گرامر زبان تهی را تولید میکنه!
چون که C->ABC هیچ وقت پایان نمیپذیره و گرامر چیزی تولید نمیکنه، اما از لحاظ گرامر مستقل از متن بودن مشکلی نیست و این گرامر درسته!
لینک مرجع