最左推導和最右推導


轉載於https://blog.csdn.net/Jane_96/article/details/80024154

1.定義

  • 最左推導:任何一步α => β都是對阿爾法中的最左非終結符進行替換
  • 左右推導:任何一步α => β都是對阿爾法中的最右非終結符進行替換

2.拋出一個小栗子

文法G(E)為:

  • E -> T | E + T |E - T
  • T -> F | T * F | T / F
  • F -> (E) | i

給出i + i * i 的最左推導和最右推導。

思考三分鍾再往下看哦~
這里寫圖片描述

解析:
最左推導
從文法的起始符號開始:
E -> E + T
-> T + T
-> F + T
-> i + T
-> i + T * F
-> i + F * F
-> i + i * F
-> i + i * i
最右推導
從文法的開始符號開始:
E -> E + T
-> E + T * F
-> E + T * i
-> E + F * i
-> E + i * i
-> T + i * i
-> F + i * i
-> i + i * i

3. 小練習

文法G(E)為:

  • E -> T | E + T |E - T
  • T -> F | T * F | T / F
  • F -> (E) | i

給出i * (i + i)的最左推導和最右推導。

此處思考三分鍾。。
這里寫圖片描述

解析:
最左推導
從文法的起始符號開始:
E -> T
-> T * F
-> F * F
-> i * F
-> i * (E)
-> i * (E + T)
-> i * (T +T)
-> i * (F + T)
-> i * (i + T)
-> i * (i + F)
-> i * (i + i)
最右推導
從文法的開始符號開始:
E -> T
-> T * F
-> T * (E)
-> T * (E + T)
-> T * (E + F)
-> T * (E + i)
-> T * (T + i)
-> T * (F + i)
-> T * (i + i)
-> F * (i + i)
-> i * (i + 1)


免責聲明!

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



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