سلام و تشکر بابت انتقال سوال به مکان درست.
قبل از هر کاری قانون S→Eθ رو به مجموعه قوانین اضافه میکنیم (همیشه برای حل سوالا این کار رو انجام میدیم).
||||||||||||||||||||||||||||||||||||||||
پاسخ سوال اول:
هر کتابی رو که بخونیم مجموعه قوانینی رو برای بدست اوردن first و fallow توضیح داده، اگه مروری بر قوانین داشته باشید بهتر حل سوال رو متوجه میشید. اما first و fallow ها بصورت زیر هستند:
first(E):id,int
first(E‘):op,[,lambda
first(OP):,−,∗
توضیحی برای بدست آوردن first : برای اینکه first یک غیرپایانه رو بدست بیاریم، باید بدونیم غیرپایانه مورد نظر با چه پایانه هایی شروع میشه. بدست آوردن first خیلی راحت تر از fallow هست، همیشه باید به این نکته توجه کرد که اگه lambda هم جزئی از یک قانون بود، lambda هم در مجموعه first خواهد اومد ولی در مجموعه fallow اصلا نباید lambda در نظر گرفته بشود.
fallow(E):θ,],op,[
fallow(E‘):θ,],op,[
fallow(OP):ithasnothing
توضیح برای بدست آوردن 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 رو بخونید اگه سوالی داشتین بپرسید.
موفق باشید.