پیدا کردن first و follow - نسخهی قابل چاپ |
پیدا کردن first و follow - z522msn - 12 آبان ۱۳۹۲ ۰۳:۳۸ ب.ظ
سلام دوستان firstو folow گرامر زیر رو چجوری بدست میارن؟(اینارو چجوری باید حل کنیم من برای مثال متغیر حروفی میتونم حل کنم ولی از اینا که میبینم گیج میشم) [tex]stmp\rightarrow {if \ expr-bool \ then \ start \ start-prime}\\ stmp\rightarrow {id}\\ start-prime\rightarrow {else \ stmp}\\ start-prime\rightarrow \epsilon \\ expr-bool\rightarrow b[/tex] |
RE: پیدا کردن first و follow - azad_ahmadi - 12 آبان ۱۳۹۲ ۱۰:۴۴ ب.ظ
سلام. راحته، بسیار راحت برای اینطور سوالا باید بجای یه عبارت دراز اونو کوتاه ترش کنید. مثلا بجای Start-Prime میتونید بنویسید Q . حالا به حل سوال دقت کنید: این گرامری هست که شما نوشتید : [tex]stmp\rightarrow {if \ expr-bool \ then \ start \ start-prime}\\ stmp\rightarrow {id}\\ start-prime\rightarrow {else \ stmp}\\ start-prime\rightarrow \epsilon \\ expr-bool\rightarrow b[/tex] اینم گرامر ساده شده ی من که نوشتم(دقت کنید که بجای هر کلمه از یک کاراکتر استفاده کنید، نکته مهم اینه که عناصر غیرپایانی رو با حروف بزرگ و پایانی هارو با حرف کوچیک بنویس): Stamp = S if = i expr-bool = E then = t start = c start-prime = R id = id (چون id ساده بود همون رو نوشتم). else = e b=b .......... [tex]S\rightarrow iEtcR | id[/tex] [tex]R\rightarrow eS|\lambda[/tex] [tex]E\rightarrow b[/tex] حالا براساس این گرامر ساده شده میایم First و Fallow رو بدست میاریم: First-S = i.id First-E = b First-R = e.Lambda Fallow-S = # Fallow-R = # Fallow-E = t حالا فقط کافیه براساس تبدیلات بالا First و Fallow رو بنویسیم. اگر ابهامی بود بگید توضیح بدم. |