تالار گفتمان مانشت
LL1 بودن یک جدول بدون استفاده از جدول - نسخه‌ی قابل چاپ

LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 21 دى ۱۳۹۲ ۰۳:۲۴ ق.ظ

سلام
گرامر زیر رو من دارم و بدون جدول میخواهم ببینم آیا LL1 هست یا خیر
پاسخ رو دارم و LL1 نیست اما طبق قانون ۱ و ۲ این LL1 هست اما ظاهرا من اشتباه محاسبه میکنم امکان داره کسی کمک کنه Huh
چطور حساب شده که اشتراک دار شده این مجموعه که گفتن ll1 نیست

ظاهرا تو قاعده شماره ۳ مشکل هست .
stm-->ifstm
stm-->other
ifstm-->if exp then stm T
T-->landa
T-->else stm
exp-->else
exp-->true

RE: LL1 بودن یک جدول بدون استفاده از جدول - AEM4949 - 21 دى ۱۳۹۲ ۰۳:۴۰ ق.ظ

(۲۱ دى ۱۳۹۲ ۰۳:۲۴ ق.ظ)Talnetir نوشته شده توسط:  سلام
گرامر زیر رو من دارم و بدون جدول میخواهم ببینم آیا LL1 هست یا خیر
پاسخ رو دارم و LL1 نیست اما طبق قانون ۱ و ۲ این LL1 هست اما ظاهرا من اشتباه محاسبه میکنم امکان داره کسی کمک کنه Huh
چطور حساب شده که اشتراک دار شده این مجموعه که گفتن ll1 نیست

ظاهرا تو قاعده شماره ۳ مشکل هست .
stm-->ifstm
stm-->other
ifstm-->if exp then stm T
T-->landa
T-->else stm
exp-->else
exp-->true

واضحه که گرامر LL1 نیست.
غیر ترمینال T مشکل داره. تداخل:[tex]First/Follow[/tex]

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 21 دى ۱۳۹۲ ۰۳:۵۳ ق.ظ

(۲۱ دى ۱۳۹۲ ۰۳:۴۰ ق.ظ)aem4949 نوشته شده توسط:  
(21 دى ۱۳۹۲ ۰۳:۲۴ ق.ظ)Talnetir نوشته شده توسط:  سلام
گرامر زیر رو من دارم و بدون جدول میخواهم ببینم آیا LL1 هست یا خیر
پاسخ رو دارم و LL1 نیست اما طبق قانون ۱ و ۲ این LL1 هست اما ظاهرا من اشتباه محاسبه میکنم امکان داره کسی کمک کنه Huh
چطور حساب شده که اشتراک دار شده این مجموعه که گفتن ll1 نیست

ظاهرا تو قاعده شماره ۳ مشکل هست .
stm-->ifstm
stm-->other
ifstm-->if exp then stm T
T-->landa
T-->else stm
exp-->else
exp-->true

واضحه که گرامر LL1 نیست.
غیر ترمینال T مشکل داره. تداخل:[tex]First/Follow[/tex]
دقیقا درسته طبق قانون که فرمودید این قضیه تائید میشه و LL1 نیست اما میشه یک مثال رو برام شرح بدید؟
همین تداخل رو بازش کنید اگر ممکنه که بفهمم دقیقا چی شده
چون طبق اثبات خودم چون غیرپایانه T به سمت لاندا رفته پس follow(ifstm) با first(stm) نباید اشتراک داشته باشند و ندارند .
پس چطور دارای اشتارک شدند و LL1 نیست؟

۲- این خط کامل در نظر گرفته میشه یا شامل چند قانون میشه؟ برای همین ممکنه یک بار حساب بشه قاعده ۳ تا متوجه بشسم مرسی
ifstm-->if exp then stm T

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 21 دى ۱۳۹۲ ۱۱:۴۴ ق.ظ

متاسفانه موفق نشدم بفهمم چطوری Huh

RE: LL1 بودن یک جدول بدون استفاده از جدول - misagh01 - 21 دى ۱۳۹۲ ۱۲:۲۶ ب.ظ

(۲۱ دى ۱۳۹۲ ۱۱:۴۴ ق.ظ)Talnetir نوشته شده توسط:  متاسفانه موفق نشدم بفهمم چطوری Huh

سلام
در قاعده پنجمFollow T را باید به دست بیاریم که با توجه به قاعده سوم مساوی میشه با فولو ifstm و فولو ifstm هم مساوی با فولو stm هست و باز هم با توجه به قاعده سوم فولو stm برابره با فرست T، پس فولو T برابره با فرست خودش که نشون میده شرایط قانون شماره دو LL1 بودن را ندارد. Big Grin

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 21 دى ۱۳۹۲ ۱۲:۴۴ ب.ظ

(۲۱ دى ۱۳۹۲ ۱۲:۲۶ ب.ظ)misagh01 نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۱:۴۴ ق.ظ)Talnetir نوشته شده توسط:  متاسفانه موفق نشدم بفهمم چطوری Huh

سلام
در قاعده پنجمFollow T را باید به دست بیاریم که با توجه به قاعده سوم مساوی میشه با فولو ifstm و فولو ifstm هم مساوی با فولو stm هست و باز هم با توجه به قاعده سوم فولو stm برابره با فرست T، پس فولو T برابره با فرست خودش که نشون میده شرایط قانون شماره دو LL1 بودن را ندارد. Big Grin

ممنون که پاسخ دادی
ببینید برای محاسبه فالو این قانون رو داریم
A-->BCD
D-->landa
اون وقت تمام عناصر فالو A رو داخل فالو C منتقل کن.
الان در
ifstm-->if exp then stm T
چون T به سمت لاندا میره تمام نپعناصر فالو ifstm را به stm منتقل میکنیم
درسته؟

RE: LL1 بودن یک جدول بدون استفاده از جدول - AEM4949 - 21 دى ۱۳۹۲ ۰۱:۲۳ ب.ظ

(۲۱ دى ۱۳۹۲ ۱۲:۴۴ ب.ظ)Talnetir نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۲:۲۶ ب.ظ)misagh01 نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۱:۴۴ ق.ظ)Talnetir نوشته شده توسط:  متاسفانه موفق نشدم بفهمم چطوری Huh

سلام
در قاعده پنجمFollow T را باید به دست بیاریم که با توجه به قاعده سوم مساوی میشه با فولو ifstm و فولو ifstm هم مساوی با فولو stm هست و باز هم با توجه به قاعده سوم فولو stm برابره با فرست T، پس فولو T برابره با فرست خودش که نشون میده شرایط قانون شماره دو LL1 بودن را ندارد. Big Grin

ممنون که پاسخ دادی
ببینید برای محاسبه فالو این قانون رو داریم
A-->BCD
D-->landa
اون وقت تمام عناصر فالو A رو داخل فالو C منتقل کن.
الان در
ifstm-->if exp then stm T
چون T به سمت لاندا میره تمام نپعناصر فالو ifstm را به stm منتقل میکنیم
درسته؟

بله ، کاملا درسته.
فالوی ifstm شامل فالوی stm هست.فالوی stm برابر هست با:
$ , else

که واضح تداخل داریم.یعنی else بین first و follow مشترک هست.

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 21 دى ۱۳۹۲ ۰۱:۴۵ ب.ظ

(۲۱ دى ۱۳۹۲ ۰۱:۲۳ ب.ظ)aem4949 نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۲:۴۴ ب.ظ)Talnetir نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۲:۲۶ ب.ظ)misagh01 نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۱:۴۴ ق.ظ)Talnetir نوشته شده توسط:  متاسفانه موفق نشدم بفهمم چطوری Huh

سلام
در قاعده پنجمFollow T را باید به دست بیاریم که با توجه به قاعده سوم مساوی میشه با فولو ifstm و فولو ifstm هم مساوی با فولو stm هست و باز هم با توجه به قاعده سوم فولو stm برابره با فرست T، پس فولو T برابره با فرست خودش که نشون میده شرایط قانون شماره دو LL1 بودن را ندارد. Big Grin

ممنون که پاسخ دادی
ببینید برای محاسبه فالو این قانون رو داریم
A-->BCD
D-->landa
اون وقت تمام عناصر فالو A رو داخل فالو C منتقل کن.
الان در
ifstm-->if exp then stm T
چون T به سمت لاندا میره تمام نپعناصر فالو ifstm را به stm منتقل میکنیم
درسته؟

بله ، کاملا درسته.
فالوی ifstm شامل فالوی stm هست.فالوی stm برابر هست با:
$ , else

که واضح تداخل داریم.یعنی else بین first و follow مشترک هست.
ممنون از پاسخت
طبق قانون follow ifstm نباید با first stm اشتراک داشته باشد.که ندارد
follow ifstm هست $ ,else
و first stm هست other, if

RE: LL1 بودن یک جدول بدون استفاده از جدول - misagh01 - 21 دى ۱۳۹۲ ۰۳:۳۳ ب.ظ

(۲۱ دى ۱۳۹۲ ۱۲:۴۴ ب.ظ)Talnetir نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۲:۲۶ ب.ظ)misagh01 نوشته شده توسط:  
(21 دى ۱۳۹۲ ۱۱:۴۴ ق.ظ)Talnetir نوشته شده توسط:  متاسفانه موفق نشدم بفهمم چطوری Huh

سلام
در قاعده پنجمFollow T را باید به دست بیاریم که با توجه به قاعده سوم مساوی میشه با فولو ifstm و فولو ifstm هم مساوی با فولو stm هست و باز هم با توجه به قاعده سوم فولو stm برابره با فرست T، پس فولو T برابره با فرست خودش که نشون میده شرایط قانون شماره دو LL1 بودن را ندارد. Big Grin

ممنون که پاسخ دادی
ببینید برای محاسبه فالو این قانون رو داریم
A-->BCD
D-->landa
اون وقت تمام عناصر فالو A رو داخل فالو C منتقل کن.
الان در
ifstm-->if exp then stm T
چون T به سمت لاندا میره تمام نپعناصر فالو ifstm را به stm منتقل میکنیم
درسته؟
بله درسته. منظورم این بود که در قاعده ۳ چون stm درست قبل از T اومده فولو stm برابرست با فرست T چون فولو T برابر با فولو stm هست پس فولو T با فرست آلفا در [tex]T \rightarrow \alpha[/tex] اشتراک دارد.

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 21 دى ۱۳۹۲ ۱۱:۲۲ ب.ظ

سلام ببخشید من خوب نفهمیدم میشه توضیح بدهید؟ اشتراکشون با else هست یا لاندا؟

RE: LL1 بودن یک جدول بدون استفاده از جدول - AEM4949 - 22 دى ۱۳۹۲ ۱۲:۰۰ ق.ظ

تداخل روی پایانه else هست ، به عبارتی داریم:

[tex]first(else stm)={else}[/tex]

[tex]follow(T)={else}[/tex]

پس else باعث تداخل شده.

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 22 دى ۱۳۹۲ ۰۱:۰۰ ق.ظ

(۲۲ دى ۱۳۹۲ ۱۲:۰۰ ق.ظ)aem4949 نوشته شده توسط:  تداخل روی پایانه else هست ، به عبارتی داریم:

[tex]first(T)={else,\lambda }[/tex]

[tex]follow(T)={else}[/tex]

پس else باعث تداخل شده.
سلام
A-->BCD
D-->landa
اون وقت تمام عناصر فالو A رو داخل فالو C منتقل کن.
الان در
ifstm-->if exp then stm T
وقتی T به سمت لاندا رفته ما تمام عناصر ifstm رو میریزیم داخل stm
حالا برای چک کردن نباید follow (ifstm) با first(stm) اشتراک داشته باشد.
اما شما از کدام قانون رفتید که follow T با first T رو مقایسه کردید؟ ممنون

RE: LL1 بودن یک جدول بدون استفاده از جدول - AEM4949 - 22 دى ۱۳۹۲ ۰۱:۳۸ ق.ظ

(۲۲ دى ۱۳۹۲ ۰۱:۰۰ ق.ظ)Talnetir نوشته شده توسط:  
(22 دى ۱۳۹۲ ۱۲:۰۰ ق.ظ)aem4949 نوشته شده توسط:  تداخل روی پایانه else هست ، به عبارتی داریم:

[tex]first(T)={else,\lambda }[/tex]

[tex]follow(T)={else}[/tex]

پس else باعث تداخل شده.
سلام
A-->BCD
D-->landa
اون وقت تمام عناصر فالو A رو داخل فالو C منتقل کن.
الان در
ifstm-->if exp then stm T
وقتی T به سمت لاندا رفته ما تمام عناصر ifstm رو میریزیم داخل stm
حالا برای چک کردن نباید follow (ifstm) با first(stm) اشتراک داشته باشد.
اما شما از کدام قانون رفتید که follow T با first T رو مقایسه کردید؟ ممنون

ببخشید اشتباه تایپی بود اصلاح شد.Big Grin

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 22 دى ۱۳۹۲ ۰۲:۱۷ ق.ظ

دوست عزیز من قاطی کردم رفت Huh
elsestm کجا هست ؟
وقتی T به سمت لاندا رفته ما باید follow(ifstm) رو با first(stm) اشتراک بگیریم نه T
Huh

RE: LL1 بودن یک جدول بدون استفاده از جدول - Talnetir - 22 دى ۱۳۹۲ ۰۸:۳۸ ب.ظ

آقا بعد از چند روز متوجه شدم دمتون گرم مرسی