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

lookahead در پارسر LR 1

ارسال:
  

kilookiloo پرسیده:

lookahead در پارسر LR 1

سلام . سوالم درباره محاسبه lookahead هاست .
تا قبل از اینکه این سوال رو ببینم اینجور محاسبه میکردم :
هروقت موقع بسط متغیری شد ادامه قانون (بعد از متغیر ) رو با تک تک مجموعه lookahead های جاری concat میکردم و first میگرفتم. ولی اینجا توی این سوال نمیدونم "+" چطور به مجموعه lookahead ها اضافه شد! اصلا مگه موقع انتقال به یک State دیگه مجموعه lookahead تغییر میکنه ؟


[تصویر:  435229_695m_untitled-1.jpg]
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

Iranian Wizard پاسخ داده:

RE: lookahead در پارسر LR 1

(۳۱ فروردین ۱۳۹۶ ۰۸:۱۲ ب.ظ)kilookiloo نوشته شده توسط:  سلام . سوالم درباره محاسبه lookahead هاست .
تا قبل از اینکه این سوال رو ببینم اینجور محاسبه میکردم :
هروقت موقع بسط متغیری شد ادامه قانون (بعد از متغیر ) رو با تک تک مجموعه lookahead های جاری concat میکردم و first میگرفتم. ولی اینجا توی این سوال نمیدونم "+" چطور به مجموعه lookahead ها اضافه شد! اصلا مگه موقع انتقال به یک State دیگه مجموعه lookahead تغییر میکنه ؟

سلام.متاسفانه این شکل ایراد داره.درستش به صورت زیر هستش:




توضیح:
در حالت I ، ابتدا قلم [tex]E\: \longrightarrow\: .\: E\: +\: T\: ,\: \{\$\}[/tex] و [tex]E\: \longrightarrow\: .T\: ,\: \{\$\}[/tex] رو خواهید داشت. با توجه به اینکه علامت نقطه قبل از متغیر E اومده، پس باید دوباره E رو گسترش بدیم، که در این صورت lookahead متغیر E جدید برابر {+} میشه! یعنی دو قلم دیگه بصورت زیر به حالت I اضافه میشه:
[tex]E\: \longrightarrow\: .E\: +\: T\: ,\: \{+\}[/tex] و [tex]E\: \longrightarrow\: .T\: ,\: \{+\}[/tex]

که در اینصورت پس در کل بجای دو قلم جدید مربوط به متغیر E و دو قلم قبلیش میتونیم بنویسیم که :
[tex]E\: \longrightarrow\: .E\: +\: T,\: \{\$,+\}[/tex] و [tex]E\: \longrightarrow\: .T,\: \{\$,+\}[/tex]

و چون [tex]E\: \longrightarrow\: .\: T\: ,\: \{\text{ }\$\: ,\: +\}[/tex] هم به حالت I اضافه شده، در نتیجه lookahead متغیر T هم برابر [tex]\{\text{ }\$\: ,\: +\}[/tex] میشه. حالا که حالت I تشکیل شد، به راحتی میتونید ادامشو رسم کنی.

توجه: جهت حل این سوال، نیازی نبود که از اول و از حالت I رسم کنید.فقط کافی بود که حالت مقصد مربوط به همون حالتی که سوال گفته رو با واژه + رسم کنید.
نقل قول این ارسال در یک پاسخ

ارسال:
  

kilookiloo پاسخ داده:

RE: lookahead در پارسر LR 1

(۰۱ اردیبهشت ۱۳۹۶ ۰۱:۲۲ ب.ظ)Iranian Wizard نوشته شده توسط:  توضیح:
در حالت I ، ابتدا قلم [tex]E\: \longrightarrow\: .\: E\: +\: T\: ,\: \{\$\}[/tex] و [tex]E\: \longrightarrow\: .T\: ,\: \{\$\}[/tex] رو خواهید داشت. با توجه به اینکه علامت نقطه قبل از متغیر E اومده، پس باید دوباره E رو گسترش بدیم، که در این صورت lookahead متغیر E جدید برابر {+} میشه! یعنی دو قلم دیگه بصورت زیر به حالت I اضافه میشه:
[tex]E\: \longrightarrow\: .E\: +\: T\: ,\: \{+\}[/tex] و [tex]E\: \longrightarrow\: .T\: ,\: \{+\}[/tex]

که در اینصورت پس در کل بجای دو قلم جدید مربوط به متغیر E و دو قلم قبلیش میتونیم بنویسیم که :
[tex]E\: \longrightarrow\: .E\: +\: T,\: \{\$,+\}[/tex] و [tex]E\: \longrightarrow\: .T,\: \{\$,+\}[/tex]

و چون [tex]E\: \longrightarrow\: .\: T\: ,\: \{\text{ }\$\: ,\: +\}[/tex] هم به حالت I اضافه شده، در نتیجه lookahead متغیر T هم برابر [tex]\{\text{ }\$\: ,\: +\}[/tex] میشه. حالا که حالت I تشکیل شد، به راحتی میتونید ادامشو رسم کنی.

توجه: جهت حل این سوال، نیازی نبود که از اول و از حالت I رسم کنید.فقط کافی بود که حالت مقصد مربوط به همون حالتی که سوال گفته رو با واژه + رسم کنید.
خیلی خیلی ممنونم , بله سوال رو با i که گفته حل کردم موقع بررسی بود که به مشکل خوردم
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  نحوه محاسبه مجموعه پیش بینی یا lookahead Erfan_Ekh ۱ ۲,۶۰۴ ۲۷ خرداد ۱۳۹۷ ۰۱:۳۱ ق.ظ
آخرین ارسال: ftmbghrn
Question سوال از محاسبه LookAhead Ametrine ۸ ۵,۵۳۴ ۰۲ بهمن ۱۳۹۳ ۱۱:۴۸ ب.ظ
آخرین ارسال: gogooli
Question مشکل در پارسر LR1 sadegh2013 ۳ ۲,۱۴۲ ۱۱ دى ۱۳۹۳ ۰۲:۲۰ ق.ظ
آخرین ارسال: Hamid_0311
Star رابطه بین انواع پارسر با انواع گرامر ها و زبانها - rasool - ۳ ۶,۱۰۳ ۰۱ دى ۱۳۹۳ ۱۲:۵۸ ب.ظ
آخرین ارسال: amir.babol
Smile نوشتن پارسر از روی گرامر زبان H-Arshad ۲ ۳,۰۴۴ ۳۰ آذر ۱۳۹۳ ۰۷:۱۲ ب.ظ
آخرین ارسال: yashar512
  سوال در خصوص پارسر های LL1 و SLR1 e.shrm ۸ ۶,۰۲۳ ۳۰ آذر ۱۳۹۳ ۰۷:۰۸ ب.ظ
آخرین ارسال: yashar512
  پارسر ll1 پری سیما ۰ ۱,۶۸۸ ۱۸ اسفند ۱۳۹۲ ۱۱:۴۵ ق.ظ
آخرین ارسال: پری سیما
Question بدست آوردن lookahead در (۱)CLR h_kh ۴ ۵,۴۴۷ ۱۶ بهمن ۱۳۹۲ ۰۱:۵۰ ب.ظ
آخرین ارسال: hosshah
  یک مشکل در بدست آوردن Lookahead tarane.68 ۲ ۲,۳۱۴ ۲۴ دى ۱۳۹۲ ۰۲:۰۷ ب.ظ
آخرین ارسال: tarane.68
  میزان سرعت در پارسر ها ( تست سال ۸۷) - rasool - ۴ ۴,۱۰۶ ۳۱ اردیبهشت ۱۳۹۲ ۰۲:۲۲ ق.ظ
آخرین ارسال: mr_pitok

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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