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

follow (مشکل در پیاده سازی قانون سوم)

ارسال:
  

saba_1984 پرسیده:

follow (مشکل در پیاده سازی قانون سوم)

سلام

من تو تشخیص follow مشکل دارم .Sad

در واقع تو پیاده سازی قانون سومش مشکل دارم .

کسی میتونه کمکم کنه؟
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

parsaNA پاسخ داده:

follow

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

۰
ارسال:
  

saba_1984 پاسخ داده:

RE: follow

اول ممنون که توجه کردید.

همون مثالی که همه جا هست .مثال مربوط به گرامر که هم تو کتاب پارسه اومده و هم راهیان ارشد و آهو
میشه ریزتر واسم توضیح بدید که FOLLOW های E,T, F دقیقا چطور بدست امدند.
کد:
E->TE`
E`->+TE`|LAMBDA
T->FT`
T`->*FT|LAMBDA
F->(E)|ID
من خودم اومدم درخت اشتقاق گرامر رو کشیدم و هر چیزی ترمینالی که تو پیمایش بعد از اون متغیر قرار میگرفت رو FOLLOW در نظر گرفتم. ولی درست در نمیادUndecided
نقل قول این ارسال در یک پاسخ

ارسال:
  

parsaNA پاسخ داده:

RE: follow

پاسخ سوال صبا:
اول سراغ E می ریم:
خوب طبق تعریفی که قبلا گفتم باید ببینید در کل گرامر بعد از E چه حرفها یا پایانه هایی قرار می گیرند . درسته ؟ خوب طبق قانون
کد:
F->(E)|ID
می بینیم بعد از E یک پرانتز بسته آمده‌، پس تو مجموعه فالوی E قرار می گیره . دیگه سمت راست هیچ کدام از قانون های گرامر E نمی بینیم . بنابراین:
فالوی E شامل( و $ میشه . $ به طور پیش فرض در فالوی عنصر شروع گرامر قرار داره .
خوب حالا می ریم سراغ `E:
با توجه به قانون زیر
کد:
E->TE`
چون این متغیر سمت راست E قرار گفته( یعنی در انتهای سمت راست )یعنی هر چی بعد E بیاد بعد 'E هم میاد( طبیعیه دیگه ؟! )پس فالوی 'E با فالوی E برابره .

می ریم سراغ T:
با توجه به قانون زیر
کد:
E`->+TE`|LAMBDA
بعد از T متغیر 'E قرار داره و این به معنی اینه که ابتدای 'E بعد از T میاد( پس First('E در Follow‌ی T قرار می گیره البته بدون لاندا )پس تا اینجا فالوی T میشه‌: +
خوب حالا طبق قانون زیر‌:
کد:
E->TE`
چون 'E می تونه لاندا بشه پس قانون فوق می تونه به شکل زیر تعبیر بشه:
کد:
E->T
چون این متغیر سمت راست E قرار گفته( یعنی در انتهای سمت راست )پس هر چی تو فالوی E باشه تو فالوی T هم میره‌، پس فالوی T برابره با‌: +, $,(

می ریم سراغ 'T:
با توجه به قانون زیر:
کد:
T->FT`
هرچی بعد از T بیاد بعد از 'T هم میاد . پس فالوی 'T برابر فالوی T میشه . بنابراین فالوی 'T برابره با‌: +, $,(

می ریم سراغ F که نکته های مهمی داره:
با توجه به قانون زیر:
کد:
T->FT`
بعد از F متغیر 'T میاد‌، یعنی ابتدای 'T بعد از F میاد . پس First('T که برابره با * رو به فالوی F اضافه می کنیم( دقت کن که لاندا رو نباید اضافه کنی ). اما نکته مهم اینجاست که طبق قانون زیر:
کد:
T`->*FT|LAMBDA

متغیر 'T می تونه لاندا بشه‌، پس می تونیم قانون قبلی رو به شکل زیر تعبیر کنیم:
کد:
T->F

طبق قانون فوق هرچی بعد از T بیاد( یعنی فالوی T )بعد از F هم میاد . بنابراین فالوی T رو به فالوی F اضافه می کنیم . فالوی F میشه‌: * , +, $,(
کل فالوها به صورت زیر در میاد:
  • فالوی E میشه( و $
  • فالوی 'E میشه( و $
  • فالوی T میشه‌: +, $,(
  • فالوی 'T میشه‌: +, $,(
  • فالوی F میشه *, +, $,(
نوشتنش خیلی سخت بود‌، بیچاره شدم .Wink سعی کردم خیلی ساده بگم . بازم اگه جاییش مشکل داشتی بگو توضیح می دم . شاد و پیروز باشی . Shy
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

mehr.iman پاسخ داده:

RE: follow

ضمن تشکر از جناب parsaNA به خاطر توضیحات جامعشون،یه سوال در مورد followها برام پیش اومده.
گرامر زیر رو در نظر بگیرین:
A-->BCd
C-->lombda|a
در این شرایط آیا d هم جزء فالوی B حساب میشه؟(چون C به Lombda هم میره)
(البته فک نکنم بشه!،ولی خواستم مطمئن شم)
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

لهمشد پاسخ داده:

RE: follow

بله میشه:
به این دلیل که در این قانون A-->BCd اگر Cd رو به عنوان FIRST ترمینال B بگیرد اونوقت d در مجموعه follow غیر ترمینا ل B اضا فه میشه پس جز follow هستش

البته این نکته ای مهم هستش که یکی از سوالات کنکور هم بر همین اساس طرح شد
نقل قول این ارسال در یک پاسخ

ارسال:
  

mehr.iman پاسخ داده:

RE: follow

(۰۵ دى ۱۳۸۹ ۰۳:۴۱ ب.ظ)لهمشد نوشته شده توسط:  بله میشه:
به این دلیل که در این قانون A-->BCd اگر Cd رو به عنوان FIRST ترمینال B بگیرد اونوقت d در مجموعه follow غیر ترمینا ل B اضا فه میشه پس جز follow هستش
ممنون از پاسخت
من همیشه First غیر پایانه بعدی رو اضافه میکردم نه مجموعه پایانه و غیر پایانه‌ها رو،با این حساب باید First مجموعه پایانه‌ها و غیر پایانه های بعد از عنصر مورد نظر رو به فالو اضافه کرد.

(۰۵ دى ۱۳۸۹ ۰۳:۴۱ ب.ظ)لهمشد نوشته شده توسط:  البته این نکته ای مهم هستش که یکی از سوالات کنکور هم بر همین اساس طرح شد
من اینو از خودم در آوردم!ولی اگه تستشو میدیدم با این حساب حتما اشتباه میزدم.Big Grin
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

zahra412 پاسخ داده:

RE: follow

میشه لطفا follow های 'E را بگید؟
میخوام بدونم آیا LL1 هست یا نه؟
ممنون


فایل‌(های) پیوست شده
۱۱/bmp
اندازه فایل: ۷۲/۹۸ KB
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

- rasool - پاسخ داده:

follow

فالوی آن می شه‌: * و + و - و ] و [ .

LL1 نیست. چون برخورد first/follow داریم.

بازم خودتون بررسی کنید.
نقل قول این ارسال در یک پاسخ

ارسال: #۱۰
  

zahra412 پاسخ داده:

RE: follow

(۲۱ دى ۱۳۹۰ ۰۶:۰۲ ب.ظ)yaali نوشته شده توسط:  فالوی آن می شه‌: * و + و - و ] و [ .

LL1 نیست. چون برخورد first/follow داریم.

بازم خودتون بررسی کنید.


ممنون
خودمم همین نظرو دارم اما آقای آل شیخ توی کتاب پوران میگن ll1 هست
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۱
  

cprogrammer پاسخ داده:

follow

کتاب دکتر شاپوری خیلی خوب توضیح داده‌، اگر تونستید حتما تهیه کنید .
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۲
  

azad_ahmadi پاسخ داده:

RE: follow (مشکل در پیاده سازی قانون سوم)

پیرو درخواست دوستی مبنی بر سوالات زیر این تاپیک دوباره احیا شده. (تاپیک درسی زیر خاکی) Big Grin

سوالات:

۱. چرا در فالوی E ترمینال id نیز قرار نگرفت؟

۲. چرا در محاسبه first ترمینال id قرار میگیرد اما در follow نه؟
پس این | (یا) در (F->(E)|ID) به چه دردی می خوره؟
اصلا می تونید یه تعریف مشخص از علامت | (یا) بدهید که چطور باید تفسرش کرد؟

۳. برای محاسبه فالوی E از کجا فهمیدیم که باید از F->(E)|ID شروع کنیم چرا از E->T و E'->TE شروع نکردیم؟

۴. اگر به اون گرامر، قانون 'Z-->id E|E' T اضافه بشه فالوی E چه تغییری می کند؟ لطفا توضیحات ساده و کامل بدهید.

-------------------------------------------------------------------------------------------------------------------------------------
جواب سوال اول: برای پیدا کردن fallow/E/ باید عناصری که بعد از غیرپایانه E در گرامر بیایند رو بعنوان fallow انتخاب کنیم.
همونطور که در گرامر هم می بینیم بعد از غیرپایانه E در قانون F---> (E) | id پایانه ( قرار گرفته شده که بعنوان fallow/E/ انتخاب میشه.
همونطور که می دونیم هم در ابتدای کار علامت $ به ابتدای قوانین اضافه می شه. به این صورت: E` ---> E$ پس علامت $ هم یکی دیگه از fallowهای E بحساب میاد.
اما id اصلا بعنوان fallow/E/ بحساب نمیاد چون در هیچ صورتی بعد از کاهش E عبارت پایانه id رو نمی بینیم.

جواب سوال دو: عبارت پایانه id رو میشه به این صورت از عبارت غیرپایانه E بدست آورد: E---->TE` .. T---->FT` .. F---->id
پس id رو میشه جزو first/E/ بحساب اورد. اما چرا جزو fallow نیست رو در بالا توضیح دادم.
علامت | یک علامت جداکننده هست که میگه از بین این چندتا قانون یکی رو باید انتخاب کرد. پس F->(E)|ID میگه که غیرپایانه F میتونه به این دوتا قانون تبدیل بشه.

جواب سوال سه: اصلا نیازی نیست که ما از یک جای بخصوصی شروع به پیدا کردن fallow بری غیرپایانه ها باشیم. فقط کافیه قوانینی که برای پیدا کردن fallow وجود داره رو بلد باشیم، پس مهم نیست که از کدوم قانون اول استفاده کنیم.

جواب سوال چهار: اگه اون قانون به گرامر اضافه بشه، تمام fallowهای Z به fallowی E هم اضافه میشه. چرا که با کاهش این قانون
Z-->id E هرچی درانتهای Z باشه حتما در انتهای E هم هست. تو همین گرامر هم قانونی هست بصورت : [tex]T->FT`[/tex] دراین قانون هم تمام fallowهای T به fallowی T` اضافه میشه. یکی از قانونهای پیدا کردن fallow هست.



براساس گرامر زیر:

کد:
E->TE`
E`->+TE`|LAMBDA
T->FT`
T`->*FT|LAMBDA
F->(E)|ID
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۳
  

iBimS پاسخ داده:

RE: follow (مشکل در پیاده سازی قانون سوم)

سلام. خیلی ممنونم از شما دوست خوبم.

[تصویر:  15017133010695009401.jpg]

۱- اگر میشه در خصوص بدست آوردن FIRST و FOLLOW های E و 'E و OP بگویید؟

۲- این int هم پایانه هستش؟

------------------------------

۳- FOLLOW یک پایانه چی میشه؟

۴- زمانیکه مثلا فقط F-->id رو داریم (FOLLOW(F چی میشه؟

۵- توی کتاب اهو در قانون FOLLOW گفته A-->aBb الان توی اینجا a و b حروف کوچک اند پس هر دو پایانه اند درسته؟

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

ارسال: #۱۴
  

azad_ahmadi پاسخ داده:

RE: follow (مشکل در پیاده سازی قانون سوم)

(۳۰ اردیبهشت ۱۳۹۲ ۱۲:۰۸ ق.ظ)iBimS نوشته شده توسط:  سلام. خیلی ممنونم از شما دوست خوبم.

[تصویر:  183468_15017133010695009401.jpg]

۱- اگر میشه در خصوص بدست آوردن FIRST و FOLLOW های E و 'E و OP بگویید؟

۲- این int هم پایانه هستش؟

------------------------------

۳- FOLLOW یک پایانه چی میشه؟

۴- زمانیکه مثلا فقط F-->id رو داریم (FOLLOW(F چی میشه؟

۵- توی کتاب اهو در قانون FOLLOW گفته A-->aBb الان توی اینجا a و b حروف کوچک اند پس هر دو پایانه اند درسته؟

ممنون.

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



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  ۷ قانون طلایی یادگیری آسان مکالمه زبان انگلیسی morweb ۱۲ ۱۲,۰۱۷ ۰۶ خرداد ۱۴۰۰ ۰۳:۱۹ ب.ظ
آخرین ارسال: cyruskingsolomon
  پکیج آموزشی طراحی وب + فارسی سازی وردپرس + سئو Happiness.72 ۶ ۶,۹۲۵ ۱۸ بهمن ۱۳۹۹ ۰۱:۱۵ ب.ظ
آخرین ارسال: saqarmoshtaq
  منبع جدید هوش، راسل ویرایش سوم sima84 ۰ ۱,۸۳۷ ۱۹ آذر ۱۳۹۹ ۱۱:۱۵ ب.ظ
آخرین ارسال: sima84
  مرتب سازی سریع تصادفی چیست؟ Xzrix ۰ ۱,۶۲۴ ۱۴ آذر ۱۳۹۹ ۰۷:۲۲ ب.ظ
آخرین ارسال: Xzrix
  شبیه سازی مقاله Q-Learning kadoos ۱۶ ۱۷,۵۷۳ ۲۵ آبان ۱۳۹۹ ۰۹:۱۹ ب.ظ
آخرین ارسال: nasim.nasim۱
  رفع اشکال نصب جاوا، مشکل ساخته نشدن virtual machine shiivaa ۱۲ ۲۰,۸۳۰ ۱۹ آبان ۱۳۹۹ ۰۷:۲۹ ب.ظ
آخرین ارسال: wanted471
Sad مشکل در برنامه نویسی شیء گرا Xialu ۰ ۲,۳۰۱ ۰۵ شهریور ۱۳۹۹ ۱۲:۰۰ ب.ظ
آخرین ارسال: Xialu
  مشکل در حل تست ۲۲ فصل اول کتاب گسسته یوسفی pure.yaser ۷ ۹,۳۷۸ ۰۹ اردیبهشت ۱۳۹۹ ۰۶:۵۴ ب.ظ
آخرین ارسال: mohsentafresh
  کتاب شبیه سازی آمنت omnet++ berkeley ۱ ۴,۲۲۷ ۰۴ اردیبهشت ۱۳۹۹ ۱۲:۳۳ ق.ظ
آخرین ارسال: محمد رستمی
  دانلود CLRS ویرایش سوم m450ud ۱۶ ۱۹,۷۹۵ ۲۱ مهر ۱۳۹۸ ۰۹:۳۶ ب.ظ
آخرین ارسال: etrok

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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