編譯原理學習筆記(三十一)~習題

題目

文法:
L →E ; L | ε
E →TE’ E’→ + T E’ | - T E’ | ε
T →FT’ T’→*F T’|/FT’|mod FT’|ε
F →(E) | id | num

FIRST()和FOLLOW()集合:

FIRST(F/T/E)= {(  id  num}
FIRST(T')   = {*  /  mod ε}
FIRST(E')   = {+  - ε}
FIRST(L)    = {ε (  id  num}
FOLLOW(L)   = {#}
FOLLOW(E/E')= {) ;}
FOLLOW(T/T')= {+  -  ; )}
FOLLOW(F) = {+  -  *  /  mod  ) ;}

分析句子: id+id*id;
在這裏插入圖片描述
分析表:
在這裏插入圖片描述
思考:

  1. 上面的句子在分析過程中哪幾步是匹配了FOLLOW集合裏的終結符而進行的動作?
  2. 需要去匹配FOLLOW集合中元素的前提條件是什麼?

在這裏插入圖片描述
2.

對文法的每個產生式A→α
有ε∈FIRST(α)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章