編譯原理first集合和follow集合

2021-06-13 16:46:58 字數 465 閱讀 3260

2011.06.4

:)文法:

s→abc

a→a|ε

b→b|ε

first集合求法:

能 由非終結符號推出的所有的開頭符號或可能的ε,但要求這個開頭符號是終結符號。如此題a可以推導出a和ε,所以first(a)={a,ε};同理 first(b)=;s可以推導出abc,還可以推導出bc,還可以推導出c,所以first(s)={a,b,c}

follow集合的求法:

緊跟隨其後面的終結符號或#。但文法的識別符號包含#,在求的時候還要考慮到ε。 具體做法是把所有包含你要求的符號的產生式都找出來,再看哪個有用。 follow(s)={#}

如求a的,產生式:s→abc a→a|ε ,但只有s→abc 有用。跟隨在a後年的終結符號是first(b)={b,ε},當first(b)的元素為ε時,跟隨在a後的符號就是c,所以 follow(a)={b,c} 同理follow(b)={c}

編譯原理 First集合和Follow集合的求法

first集合的求法 first集合最終是對產生式右部的字串而言的,但其關鍵是求出非終結符的first集合,由於終結符的first集合就是它自己,所以求出非終結符的first集合後,就可很直觀地得到每個字串的first集合。1.直接收取 對形如u a 的產生式 其中a是終結符 把a收入到first ...

編譯原理 First集合和Follow集合的求法

first集合的求法 first集合最終是對產生式右部的字串而言的,但其關鍵是求出非終結符的first集合,由於終結符的first集合就是它自己,所以求出非終結符的first集合後,就可很直觀地得到每個字串的first集合。1.直接收取 對形如u a 的產生式 其中a是終結符 把a收入到first ...

編譯原理之First集合,Follow集合

對於first集合,follow集合的構造方法,我引用的是國防科技大學王挺老師的方法,我覺得這個講的比較詳細易懂 下面用一道例題進行應用 求e t e t t f t f f i e 的所有產生式的follow集合,所有產生式右部的first集合。第一步,消除左遞迴 上式轉化為 1 e te 2 e...