关于最左推导和最优推导:
最左推导:每步推导中只改写最左边的那个非终结符
最右推导:每步推导中只改写最右边的那个非终结符,又称规范推导
举个例子:
给定文法G(S)的一组规则:
S->PNP(这里的S表示文法的初始符Start,而不是句子。)
NP->NN | NP Aux NP
P->关于 (解释:NP改写为NN或者NP Aux NP,P改写为”关于“)
NN->鲁迅 | 文章
Aux->的 (解释:NN改写为”鲁迅“或者”文章“,Aux改写为”的“)
于是根据这一组文法规则,”关于鲁迅的文章“的最左推导为
S⇒P NP⇒关于 NP⇒关于NP Aux NP
⇒关于NN Aux NP⇒关于鲁迅 Aux NP
⇒关于鲁迅的 NP ⇒关于鲁迅的 NN
⇒关于鲁迅的文章
同理,字符串”关于鲁迅的文章“的最右推导为
S⇒P NP⇒P NP Aux NP
⇒P NP Aux NN⇒P NP Aux 文章
⇒P NP 的文章⇒P NN的文章
⇒P 鲁迅的文章⇒关于鲁迅的文章
例子来自网络
给定文法G(VN,VT,P ,S),对于G的任何句型都能构造与之关联的语法树。这棵树满足下面四个条件:
① 每个结点都有一个标记,此标记是V的 一个符号。
(说的是节点一定是终结符或非终结符)