參考:
我認為求這兩個集最重要的就是分別理解清楚 first集和follow集的意義是什麼(具體演算法在兩篇博文中已有介紹):
first集,即終結首符集,就是求乙個輸入串開頭的所有可能出現的終結符的集合。 例如a->ac | bb | cd,根據這個產生式的幾條候選式,就可以知道,非終結符a被替換後,串開頭可能出現終結符a、b 、c, 所以 是first(a)的乙個子集。當first集互不相交時,才能唯一地用某一條產生式進行後續推導。
follow集,非終結符的後繼終結符號集,它是指非終結符推出的字串最末端後可能出現的所有終結符的集合。
編譯原理 FIRST集與FOLLOW集
first集合是對產生式右部的字串而言的,求取的是非終結符vt 或終結符 空字元 文法符號串 的開始符號集合,集合中包含的是由左部非終結符vt推導得到的終結符vn或空字元 以 表示乙個文法的字串,first 表示由 推導出的串的首個終結符或空字元組成的集合。規則 求文法符號x的first x 直到沒...
編譯原理 FIRST集和FOLLOW集
自己的理解 例子如果x是乙個終結符,則first x x 如果x是乙個非終結符,則x y 1y2y 3 yk x rightarrow y 1y 2y 3 cdots y k x y1 y 2 y3 yk 其中k 1 k ge1 k 1。i k,a firs t yi 且fi rst y1 firs...
編譯原理 First集和Follow集
剛學first集和follow集的時候,如果上課老師沒有講明白或者自己沒聽明白,自己看的時候還真是有點難理解,不過結合著具體的題目可以理解的更快。先看一下兩種集合的求法 first集合的求法 first集合最終是對產生式右部的字串而言的,但其關鍵是求出非終結符的first集合,由於終結符的first...