編譯原理期末主觀題


一個典型的編譯程序通常包含 8 個組成部分,它們是詞法分析程序、語法分析程序、語 義分析程序、中間代碼生成程序、中間代碼優化程序、目標代碼生成程序、表格管理程序和 錯誤處理程序。  
          詞法分析程序的主要任務: 掃描源程序,識別出具有獨立意義的單詞   
          詞法分析程序的其他任務: 濾掉空格,跳過注釋、換行符 追蹤換行標志,將行號與出錯信息相聯系起來。 宏展開,……
圖片替換文本1.設有如下文法 G(S),試消除其左遞歸。
     G( S): S—> Ac| c
      A—> Bb| b
     B—> Sa| a

解:S->abcS'|bcS'|cS',S'->abcS'|ε


圖片替換文本2.試構造與下面G(S)等價的無左遞歸的文法。
      G(S):S->Sa|Nb|c
      N—>Sd|Ne|f
解:S-fN'bS'|cS',S'→aS'|dN'bS'|ε,N'->eN'|ε


圖片替換文本3.設有文法G(S):
      S——>aBc|bAB
      A->aAb|b
      B->b|ε
①求各產生式的FIRST集,FOLLOW(A)和FOLLOW(B),以及各產生式的SELECT集。
②構造LL(1)分析表,並分析符號串baabbb是否是。
解:(1)  FIRST(aBc)={a},
      FIRST(bAB)={b}FIRST(aAb)={a},
      A→b:FIRST(A→b)={b},
      B-b:FIRST(b)={b},FIRST(ε)={ε}


      FOLLOW(A)={b,#},FOLLOW(B)={c,#}
      SELECT(S→aBc)={a},
      SELECT(S→bAB)={b},
      SELECT(A→aAb)={a},
      SELECT(A→b)={b},
      SELECT(B->b)={b}, SELECT(B->ε)={c,#}
因此,所得的LL(1)分析表如表所示。

圖片替換文本
*** (2)分析符號串baabbb成功,baabbb是該文法的句子,如圖所示。
圖片替換文本

圖片替換文本4.對下列文法
      G(S):S——>D(R)
      R—>R;P|P
      P->S|I
      D->i
①計算文法G中每個非終結符的FIRSTVT集和令LASTVT集。
②構造文法G的算符優先關系矩陣。
解:(1)  FIRSTVT(S)={(,i},
      FIRSTVT(D)={i},
      FIRSTVT(R)={;, (,i},
      FIRSTVT(P)={i,(},
      LASTVT(S)={)},
      LASTVT(D)={i},
      LASTVT(R)={;,),i},
      LASTVT(P)={i,)}

圖片替換文本

圖片替換文本5.已知文法
      G(S):S——>a|(T)
      T->T,S|S
①給出句子((a,a),a)的最左推導並畫出語法樹;
②給出句型(T,a,(T))所有的短語、直接短語、素短語、最左素短語、句柄和活前綴。
解:(1)最左推導:
S→(T)=(T,S)=(S,S)→(a,S) =(a,(T)) =(a,(T,S)) =(a,(S,S)) =(a,(a,S)) (a,(a,a))
語法樹:如圖所示。
圖片替換文本


(2)句型(T,a,(T))的短語、直接短語、素短語、最左素短語、句柄、活前綴及語法樹(圖)。
短語:a||T,a||(T)||T,a,(T)||(T,a,(T))
直接短語:a||(T)
素短語:a||(T)
最左素短語:a
句柄:a
活前綴:ε||(||(T|(T,||(T,a
圖片替換文本


圖片替換文本6.設文法G(S)為:
      s->a|aAb
      s->b|bBa
      A->1A0|ε
      B->1B0|ε

①LR(0)項目集族;
②構造識別文法G(E)的DFA;
③構造文法G(E)的SLR(1)的分析表;
④分析句子a1100b的識別過程。
解:(1)、(2)LR(0)項目集族和識別活前綴的DFA,如圖所示。
圖片替換文本


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM