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

پیدا کردن first و ()follow - z522msn - 27 دى ۱۳۹۲ ۰۹:۵۶ ب.ظ

سلام دوستان
برای گرامر زیر من first و followرو بدست اوردم .فقط نمیدونم درسته یا نه ! کسی میتونه چک کنه درست بدست اوردم یا نه ؟
[tex]S\rightarrow ABD | a[R]| RA \\ A\rightarrow BA | b \\ B\rightarrow i| \varepsilon \\ D\rightarrow SAR | BBD | \varepsilon \\ R\rightarrow iA[/tex]

RE: پیدا کردن first و ()follow - Iranian Wizard - 23 خرداد ۱۳۹۵ ۰۸:۰۹ ب.ظ

سلام.بله درست نوشته شده.

حل کامل سوال:

محاسبه first ها :


[tex]first(S)\: =\: first(ABD)\: \cup\: first(\: a[R])\: \cup\: first(RA)\: =\: \{\: i\: , b\: \}\: \cup\: \{\: a\: \}\: \cup\: \{\: i\: \}\: =\: \{\: i\: ,\: a\: ,\: b\: \}[/tex] *

[tex]first(A)\: =\: first(BA)\: \cup\: first(b)\: =\: \{\: i\: , b\: \}\: \cup\: \{\: b\: \}\: =\: \{\: i\: ,\: b\: \}[/tex] *

[tex]first(B)\: =\: first(i)\: \cup\: first(\lambda)\: =\: \{\: i\: \}\: \cup\: \{\: \lambda\: \}\: =\: \{\: i , \lambda\: \}[/tex] *

[tex] first(D)\: =\: first(SAR)\: \cup\: first( BBD)\: \cup\: first(\: \lambda\: )\: =\: \{\: i\: , a\: ,\: b\: \}\: \cup\: \{\: i , a\: ,\: b\: , \lambda\: \}\: \cup\: \{\: \lambda\: \}\: =\: \{\: i\: ,\: a\: ,\: b\: ,\: \lambda\: \}[/tex] *

[tex]first( R )\: =\: First(iA)\: = \{\: i\: \}[/tex] *


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


محاسبه follow ها :
* توجه شود در اینجا منظور از [tex]first(x)[/tex] ، [tex]first(x)\: -\: \{\: \lambda\: \}[/tex] است.


[tex]follow(\: S\: ) = \{\: \$\: \}\: \cup\: first(\: A\: )\: =\: \{\: \$\: \}\: \cup\: \{\: i\: , b\}\: =\: \{\: \$\: ,\: i\: , b\}[/tex]

[tex]follow(A)\: =\: first(B)\: \cup\: first(D)\: \cup\: folow(S)\: \cup\: first(\: R\: )\: \cup\: follow\: (R\: )=[/tex]
[tex]\{\: i\: \}\: \cup\: \{\: i\: ,\: a\: ,\: b\}\: \cup\: \{\: \$\: ,\: i\: ,b\}\: \cup\: \{\: i\: \}\: \cup\: \{\: \$\: ,\: i\: \: ,\: b\: , \rceil\}\: =\: \{\: \$\: ,\: i ,a\: ,b\: ,\rceil\ \}[/tex]

[tex]follow(\: B\: ) = first(D)\: \cup\: \: follow(S)\: \cup\: first(\: A\: )\: \cup\: first(B)\: \cup\: follow(D)=[/tex]
[tex]\{\: i\: ,\: a\: ,b\}\: \cup\: \{\: \$\: ,\: i\: ,\: b\}\: \cup\: \{\: i\: ,\: b\}\: \cup\: \{i\: \}\: \cup\: \{\: \$\: ,\: i\: ,\: b\}\: =\: \{\: \$\: ,\: i\: ,\: a\: ,\: b\: \}[/tex]

[tex] follow(\: D\: ) = follow(\: S\: )\: =\: \{\: \$\: ,\: i\: ,\: b\: \}[/tex]

[tex]follow(\: R\: ) = first(\: \rceil\: )\: \cup\: first(\: A\: )\: \cup\: follow(\: D\: )\: =\{\: \rceil\: \}\: \cup\: \{\: i ,\: b\: \}\: \cup\: \{\: \$\: ,\: i\: ,\: b\: \}\: =\: \{\: \$\: ,\: i\: ,\: b\: ,\: \rceil\: \}[/tex]