زمان کنونی: ۲۴ آبان ۱۴۰۳, ۰۸:۴۹ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

رابطه ی بین وجود تداخل در یک گرامر و مبهم بودن آن گرامر

ارسال:
  

آرمین پرسیده:

رابطه ی بین وجود تداخل در یک گرامر و مبهم بودن آن گرامر

سلام دوستان

آیا ممکنه گرامری هنگام رسم ماشین خودکار متناهی، با استفاده از آیتم های (۱)LR، هیچ نوع تداخلی نداشته باشه (که طبق تعریف چنین گرامری (۱)LR نامیده میشه) اما از طرفی مبهم هم باشه؟

تا به امروز من فکر می کردم پاسخ این سئوال "خیر" هست تا اینکه امروز به این گرامر برخورد کردم:
A ---> A+A
A ---> a

این گرامر همون طور که در تصویر دیده میشه، از طرفی هیچ نوع تداخلی نداره و از طرفی کاملا واضح هست که مبهمه. آیا این موضوع، به این معناست که عدم وجود تداخل (برخورد) در یک گرامر، شرطی لازم و نه کافی برای (۱)LR بودن اون گرامر هست؟ کسی از دوستان میتونه در این خصوص من رو راهنمایی کنه؟

[تصویر:  147876_1_1379087281.jpg]
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mp1368 پاسخ داده:

RE: رابطه ی بین تداخل های یک گرامر و مبهم بودن آن گرامر

بحثی که توی این تاپیک شد منو خیلی بیشتر راغب کرد که بشینم و خیلی عمیق تر به این مسئله فکر کنم و خوشبختانه تونستم مچ این آل شیخ تعطیل رو بگیرم

همون طوری که توی این عکسم که دوستمون گذاشتن توی حالت I0 داریم که

[tex]S\rightarrow .A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .A A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .a,\left \{\$ \right \}[/tex]

حالا از این جا به بعد میبینیم که آقای آل شیخ اومده به صورت معمول ماشین رو برده به حالت های بعدیش و بدون مشکل هم تمومش کرده و جدول رو هم بدون تداخل میتونیم بکشیم.
ولی دریغ از این که فک نکرده که آقا ماشین باید توی همین حالت اول I0 کلاسوری [tex]A\rightarrow .A A{$}[/tex] رو دوباره بستش بده یعنی ما باید این عبارت رو دوباره توی حالت I0 به صورت بازگشتی بستش بدیم :

[tex]S\rightarrow .A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .A A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .a,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .A A,\left \{ \right \}[/tex]
[tex]A\rightarrow .a,\left \{ \right \}[/tex]


واسه راحتی کار هم میتونیم حالت I0 رو به صورت زیر هم خلاصه کنیم

[tex]S\rightarrow .A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .A A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .A A,\left \{ \right \}[/tex]
[tex]A\rightarrow .a , \left \{ ,\$ \right \}[/tex]

حالا اگه ماشین رو به این صورت پیش ببریم فک کنم توی مرحله ی ششم هست که تداخل انتقال/کاهش رخ میده چون اینجا یه کم سخته کشیدن ماشین خودکار خودتون دیگه ماشینش رو بکشین و در نتیجه چون این گرامر مبهم هست پس LR هم نیست و جواب تست هم میشه همون گرامر گزینه ج که مبهم نیست و LR هم هست.

نتیجه : آقای آل شیخ، بنده ی خدا ندونسته که چطور دانشجو رو بپیچونه هر جوری که تونسته ماشین رو پیش برده حتی به قیمت زیر پا گذاشتن قضیه اساسی توی کامپایلر. واسه همین هست که اگه کسایی که تستاش رو حل کردن توی تستای تالیفی بعضی جاها در کمال تعجب خواننده مجموعه Look Ahead رو یه چیزی نوشته که به عقلم جور در نمیاد و خیلی ها فک میکنن که تستا رو اشتباه حل کرده و معروفم شده کتابش که خیلی اشتباه داره، ولی دریغ از این که باید از این قاعده بازگشتی استفاده کرد تا به اون مجموعه Look Ahead برسیم و دانشجو رو هم گمراه نکرد!!!


هر گرامری که هنگام رسم ماشین خودکار متناهی با استفاده از آیتم های (۱)LR تداخل به وجود نیاید ، قطعا (۱)LR هست.
هر گرامری که مبهم باشد، قطعا (۱)LR نخواهد بود.


موفق باشید.
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

آرمین پاسخ داده:

رابطه ی بین تداخل های یک گرامر و مبهم بودن آن گرامر

(۱۹ آذر ۱۳۹۱ ۰۷:۵۸ ب.ظ)mp1368 نوشته شده توسط:  بحثی که توی این تاپیک شد منو خیلی بیشتر راغب کرد که بشینم و خیلی عمیق تر به این مسئله فکر کنم و خوشبختانه تونستم مچ این آل شیخ تعطیل رو بگیرم

همون طوری که توی این عکسم که دوستمون گذاشتن توی حالت I0 داریم که

[tex]S\rightarrow .A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .A A,\left \{\$ \right \}[/tex]
[tex]A\rightarrow .a,\left \{\$ \right \}[/tex]

...

خیلی ممنون دوست گرامی که این قدر وقت گذاشتید و توضیح دادید. خوشبختانه با توجه به نکاتی که بیان کردید، متوجه مشکل شدم و پاسخم رو گرفتم. این گرامر مبهم، بر خلاف تصورم، دارای تداخل بود که من با توجه به ماشین رسم شده در کتاب، اصلا فکرش رو هم نمی کردم. نتیجه اینکه همون طور که شما هم گفیتد هر دو جمله ای که در پست قبل گفتم، صحیح بود و مشکل از نحوه ی رسم ماشین خودکار متناهی بود. باز هم بسیار سپاس گذارم از شما. Heart

(۱۹ آذر ۱۳۹۱ ۰۸:۱۶ ب.ظ)هاتف نوشته شده توسط:  شما که آخرش همونی رو گفتی که من اولش گفتم:
(۱۹ آذر ۱۳۹۱ ۰۷:۵۸ ب.ظ)mp1368 نوشته شده توسط:  حالا اگه ماشین رو به این صورت پیش ببریم فک کنم توی مرحله ی ششم هست که تداخل انتقال/کاهش رخ میده

دوست عزیز، حق با شما بود که گفته بودید این گرامر تداخل داره. از شما هم، بسیار ممنونم. Heart

فقط امیدوارم این تاپیک، باعث دلخوری دوستان از همدیگه نشه. ما به این خاطر این جا هستیم تا به هم کمک کنیم و نه چیز دیگه. در ضمن، یه نصیحت برادرانه هم اینکه موقع پست گذاشتن، کمی بیشتر آرامش خودمون رو حفظ کنیم تا بحث به صورت منطقی تری پیش بره. (اول از همه هم روی صحبت با خودم هست، بعد سایر عزیزان)

در ضمن، شاید اول از همه تقصیر من بود که تنبلی کردم و تصویر ماشین رسم شده در کتاب رو این جا نذاشته بودم. در هر صورت از این بابت، از دوستان عذر می خوام.
نقل قول این ارسال در یک پاسخ

ارسال:
  

هاتف پاسخ داده:

رابطه ی بین تداخل های یک گرامر و مبهم بودن آن گرامر

سلام
این گرامر تداخل از نوع S/R داره
اگر دیاگرام SLR(1) اش رو رسم کنید به state یی به این شکل می رسید:
A--> A+A. (نقطه به انتها رسیده)
A-->A.+A (نقطه قبل از + قرار گرفته)
از طرفی می دانیم که "+" عضو follow(A) هست، حالا توی این حالت اگر + بیاد، تکلیف چیه؟ عمل کاهش چون نقطه به انتها رسیده، یا شیفت چون نقطه قبل از + اومده؟ پس اینجا ما تداخل داریم و می دانیم که اگر بخواهیم LALR(1) اش رو هم رسم کنیم جای شیفت ها عوض نمی شه و این تداخل سر جای خودش هست، اگر CLR(1) هم رسم کنیم این تداخل باقی خواهد موند چون اگر گرامری مبهم باشه به ازای هیچ k یی LR(k) نیست
اما
گفتید ماشین خودکار متنهاهی؟ منظورتون FSA بود؟ می دونید که ما در سطح پارسر ها از زبان های مستقل از متن استفاده می کنیم و ماشین زبانهای مستقل از متن PDA هست نه FSA، چون گفتید رسم ماشین شاید منظورتون رسم جدول یا دیاگرام بوده.
اگر گرامری مبهم باشه و ما براش جدول بکشیم حتما توش تداخل خواهیم داشت، پس این جملتون غلطه که گرامر بالا هم مبهمه هم توی جدول اش تداخل نداره!
اما
اما ما میتونیم برای یک گرامر مبهم پارسر LR(1) بسازیم، یعنی بعد از اینکه دیاگرام اش رو کشیدیم، خودمون با توجه به درکی که از Semantic برنامه داریم تداخل ها رو دستی برطرف کنیم، البته باز نمیشه گفت هر گرامر مبهمی رو می تونیم تداخل هاش رو برطرف کنیم، بعضــی از گرامر های مبهم رو ممکنه بتونیم براشون یک دیاگرام SLR(1) یا LALAR(1) یا CLR(1) بکشیم و دستی تداخل هاش رو برطرف کنیم و از روی اون پارسر LR(1) بسازیم.
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  بین پردازش تصویر و داده کاوی موندم کدوم یکی رو برای پایان نامه انتخاب کنم؟ raheleh1393 ۵ ۸,۵۰۲ ۰۱ دى ۱۴۰۰ ۰۲:۴۸ ب.ظ
آخرین ارسال: golkhorami
  کدام زبان برای هوش مصنوعی بهتر است؟ فرق بین زبان های هوش مصنوعی چیست؟ azam2075 ۳ ۶,۰۳۴ ۱۴ مهر ۱۴۰۰ ۰۷:۲۱ ب.ظ
آخرین ارسال: علیصا
  نظر در رابطه با استاد داور علیصا ۰ ۱,۷۳۹ ۱۴ مهر ۱۴۰۰ ۰۶:۰۵ ب.ظ
آخرین ارسال: علیصا
  آموزش زبان انگلیسی:گرامر cyruskingsolomon ۱ ۳,۳۴۰ ۲۲ فروردین ۱۴۰۰ ۰۱:۲۲ ب.ظ
آخرین ارسال: cyruskingsolomon
  گرامر زبان انگلیسی:صفت های ed و ing دار cyruskingsolomon ۳ ۳,۰۹۶ ۱۵ بهمن ۱۳۹۹ ۰۶:۴۱ ب.ظ
آخرین ارسال: cyruskingsolomon
  اثبات بومی بودن sirvan.t ۸ ۵,۹۹۱ ۱۰ اسفند ۱۳۹۸ ۰۹:۴۶ ب.ظ
آخرین ارسال: WILL
  جستجو و ارتباط بین جداول aryana25000 ۰ ۲,۰۱۴ ۰۳ آبان ۱۳۹۸ ۱۰:۳۸ ب.ظ
آخرین ارسال: aryana25000
  هیتلر بودن یا نبودن marvelous ۲ ۲,۸۰۲ ۰۴ مهر ۱۳۹۸ ۰۱:۴۱ ق.ظ
آخرین ارسال: marvelous
  چه گزینه هایی (رشته و گرایش) برای قبولی در ارشد وجود داره ؟ MohsenRezaei ۲ ۳,۱۶۴ ۰۲ مرداد ۱۳۹۸ ۱۱:۴۴ ب.ظ
آخرین ارسال: marvelous
  گرامر منظم Sanazzz ۶ ۷,۰۰۹ ۳۱ اردیبهشت ۱۳۹۸ ۰۴:۳۲ ب.ظ
آخرین ارسال: Sanazzz

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close