۰
subtitle
ارسال: #۱
  
پیدا کردن first و follow
سلام دوستان 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]
[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
سلام.
راحته، بسیار راحت
برای اینطور سوالا باید بجای یه عبارت دراز اونو کوتاه ترش کنید. مثلا بجای 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 رو بنویسیم.
اگر ابهامی بود بگید توضیح بدم.
راحته، بسیار راحت
برای اینطور سوالا باید بجای یه عبارت دراز اونو کوتاه ترش کنید. مثلا بجای 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 رو بنویسیم.
اگر ابهامی بود بگید توضیح بدم.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close