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

سوال درباره پیدا کردن first و follow - iBimS - 02 خرداد ۱۳۹۲ ۱۰:۴۳ ب.ظ

سلام دوستان. [تصویر:  184109_1_1379083290.jpg] ۱- اگر میشه در خصوص بدست آوردن FIRST و FOLLOW های E و E و OP بگویید؟ ۲- این int هم پایانه هستش؟ ------------------------------ ۳- FOLLOW یک پایانه چی میشه؟ ۴- زمانیکه مثلا فقط F-->id رو داریم (FOLLOW(F چی میشه؟ ۵- توی کتاب اهو در قانون FOLLOW گفته A-->aBb الان توی اینجا a و b حروف کوچک اند پس هر دو پایانه اند درسته؟ ممنون.

RE: سوال درباره پیدا کردن first و follow - azad_ahmadi - 04 خرداد ۱۳۹۲ ۰۲:۵۲ ب.ظ

سلام و تشکر بابت انتقال سوال به مکان درست.
قبل از هر کاری قانون [tex]S \rightarrow E\theta[/tex] رو به مجموعه قوانین اضافه میکنیم (همیشه برای حل سوالا این کار رو انجام میدیم).
||||||||||||||||||||||||||||||||||||||||
پاسخ سوال اول:
هر کتابی رو که بخونیم مجموعه قوانینی رو برای بدست اوردن first و fallow توضیح داده، اگه مروری بر قوانین داشته باشید بهتر حل سوال رو متوجه میشید. اما first و fallow ها بصورت زیر هستند:

[tex]first(E): id , int[/tex]
[tex]first(E`) : op, [ , lambda[/tex]
[tex]first(OP) : , - , *[/tex]

توضیحی برای بدست آوردن first : برای اینکه first یک غیرپایانه رو بدست بیاریم، باید بدونیم غیرپایانه مورد نظر با چه پایانه هایی شروع میشه. بدست آوردن first خیلی راحت تر از fallow هست، همیشه باید به این نکته توجه کرد که اگه lambda هم جزئی از یک قانون بود، lambda هم در مجموعه first خواهد اومد ولی در مجموعه fallow اصلا نباید lambda در نظر گرفته بشود.

[tex]fallow(E): \theta , ] , op , [[/tex]
[tex]fallow(E`): \theta , ] , op , [[/tex]
[tex]fallow(OP): it \, has \, nothing[/tex]

توضیح برای بدست آوردن fallow : مجموعه ترمینال هایی که بلافاصله پس از تولیدات یک غیرپایانی قرار میگیرند، fallow رو تشکلیل میدن.
برای OP اصلان fallowی وجود ندارد، چرا که هیچ غیر پایانه ای در قانون موجود نیست. طبق قوانین بدست اوردن fallow، هر دوی E , E` هردو یک مجموعه fallow دارند. (این قسمت رو خودتون کار کنید اگه متوجه نشدید بگید که بیشتر توضیح بدم).
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۲: معمولا کلماتی که به حروف بزرگ نوشته می شن، غیرپایانه و کلامات که کوچک نوشته میشوند پایانه هستند. و int هم پایانه یا ترمینال هست.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۳: first و fallow رو برای غیرپایانه بکار می برند و برای پایانه ها تعریف نمی شوند. مثلا برای جواب سوال اول fallow/OP وجود ندارد.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۴: fallow برای غیرپایانه تعریف میشه.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۵: با توجه به قانونی که نوشتین. A---> aBb . بله هردوی aوb پایانه (ترمینال) و AوB غیرپایانه (غیرترمینال) هستند.
در اینجا first/A برابر هست با a. و fallow/B برابر هست با b.


قوانین پیدا کردن مجموعه های first و fallow رو بخونید اگه سوالی داشتین بپرسید.
موفق باشید.

RE: سوال درباره پیدا کردن first و follow - soheila2012 - 01 شهریور ۱۳۹۲ ۱۲:۲۹ ب.ظ

این علامتی که کنار حرف E نوشته شده چه معنی داره؟!
[تصویر:  31193562018050775306.jpg]

RE: سوال درباره پیدا کردن first و follow - azad_ahmadi - 01 شهریور ۱۳۹۲ ۱۲:۳۸ ب.ظ

(۰۱ شهریور ۱۳۹۲ ۱۲:۲۹ ب.ظ)soheila2012 نوشته شده توسط:  این علامتی که کنار حرف E نوشته شده چه معنی داره؟!
[تصویر:  31193562018050775306.jpg]

در هر تاپیک باید تنها یک سوال پرسیده شود.
ممنون میشم برای سوالتون یک تاپیک جدید ایجاد کنید.
درضمن گرامر رو هم ذکر کنید! گرامر G1 که بهش اشاره شده.

RE: سوال درباره پیدا کردن first و follow - hoda ahmadi - 04 آذر ۱۳۹۲ ۱۱:۴۷ ق.ظ

(۰۴ خرداد ۱۳۹۲ ۰۲:۵۲ ب.ظ)azad_ahmadi نوشته شده توسط:  سلام و تشکر بابت انتقال سوال به مکان درست.
قبل از هر کاری قانون [tex]S \rightarrow E\theta[/tex] رو به مجموعه قوانین اضافه میکنیم (همیشه برای حل سوالا این کار رو انجام میدیم).
||||||||||||||||||||||||||||||||||||||||
پاسخ سوال اول:
هر کتابی رو که بخونیم مجموعه قوانینی رو برای بدست اوردن first و fallow توضیح داده، اگه مروری بر قوانین داشته باشید بهتر حل سوال رو متوجه میشید. اما first و fallow ها بصورت زیر هستند:

[tex]first(E): id , int[/tex]
[tex]first(E`) : op, [ , lambda[/tex]
[tex]first(OP) : , - , *[/tex]

توضیحی برای بدست آوردن first : برای اینکه first یک غیرپایانه رو بدست بیاریم، باید بدونیم غیرپایانه مورد نظر با چه پایانه هایی شروع میشه. بدست آوردن first خیلی راحت تر از fallow هست، همیشه باید به این نکته توجه کرد که اگه lambda هم جزئی از یک قانون بود، lambda هم در مجموعه first خواهد اومد ولی در مجموعه fallow اصلا نباید lambda در نظر گرفته بشود.

[tex]fallow(E): \theta , ] , op , [[/tex]
[tex]fallow(E`): \theta , ] , op , [[/tex]
[tex]fallow(OP): it \, has \, nothing[/tex]

توضیح برای بدست آوردن fallow : مجموعه ترمینال هایی که بلافاصله پس از تولیدات یک غیرپایانی قرار میگیرند، fallow رو تشکلیل میدن.
برای OP اصلان fallowی وجود ندارد، چرا که هیچ غیر پایانه ای در قانون موجود نیست. طبق قوانین بدست اوردن fallow، هر دوی E , E` هردو یک مجموعه fallow دارند. (این قسمت رو خودتون کار کنید اگه متوجه نشدید بگید که بیشتر توضیح بدم).
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۲: معمولا کلماتی که به حروف بزرگ نوشته می شن، غیرپایانه و کلامات که کوچک نوشته میشوند پایانه هستند. و int هم پایانه یا ترمینال هست.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۳: first و fallow رو برای غیرپایانه بکار می برند و برای پایانه ها تعریف نمی شوند. مثلا برای جواب سوال اول fallow/OP وجود ندارد.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۴: fallow برای غیرپایانه تعریف میشه.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||​||||||||||||||||||||||||
جواب سوال ۵: با توجه به قانونی که نوشتین. A---> aBb . بله هردوی aوb پایانه (ترمینال) و AوB غیرپایانه (غیرترمینال) هستند.
در اینجا first/A برابر هست با a. و fallow/B برابر هست با b.


قوانین پیدا کردن مجموعه های first و fallow رو بخونید اگه سوالی داشتین بپرسید.
موفق باشید.
تو فالو E چرا ] رو که جز first E میشه جا انداختین؟؟؟؟

RE: سوال درباره پیدا کردن first و follow - azad_ahmadi - 04 آذر ۱۳۹۲ ۱۲:۱۵ ب.ظ

(۰۴ آذر ۱۳۹۲ ۱۱:۴۷ ق.ظ)hoda ahmadi نوشته شده توسط:  تو فالو E چرا ] رو که جز first E میشه جا انداختین؟؟؟؟

دقت کنید، اون رو هم نوشتم.
منظور شما رو دقیق متوجه نشدم.

RE: سوال درباره پیدا کردن first و follow - hoda ahmadi - 04 آذر ۱۳۹۲ ۱۲:۴۰ ب.ظ

(۰۴ آذر ۱۳۹۲ ۱۲:۱۵ ب.ظ)azad_ahmadi نوشته شده توسط:  
(04 آذر ۱۳۹۲ ۱۱:۴۷ ق.ظ)hoda ahmadi نوشته شده توسط:  تو فالو E چرا ] رو که جز first E میشه جا انداختین؟؟؟؟

دقت کنید، اون رو هم نوشتم.
منظور شما رو دقیق متوجه نشدم.
بله حق با شماست .خطای دیدم بود