形式定义
上下文无关文法GGG是一个四元组,即G=(VT,VN,P,S)G=(V_T,V_N,P,S)G=(VT,VN,P,S):
- 终结符(Token)集合VTV_TVT
- 非终结符集合VNV_NVN(与VTV_TVT不相交)
- 产生式或文法规则A→αA\rightarrow \alphaA→α形成的集合PPP,其中A∈VNA\in V_NA∈VN,α∈(VT∪VN)∗\alpha \in (V_T\cup V_N)^*α∈(VT∪VN)∗
- 开始符号SSS,其中S∈VNS\in V_NS∈VN
注:终结符和非终结符可以用单个字符表示,也可以用字符串表示。
最左和最右推导
-
对于文法G[S]G[S]G[S],S⇒∗γS\Rightarrow {}^*\gammaS⇒∗γ是一个最左推导是指:在由SSS推导γ\gammaγ的过程中,任何一步直接推导α⇒β\alpha \Rightarrow \betaα⇒β,都是用字符串α\alphaα中的最左非终结符对应的产生式规则进行推导,其中α\alphaα、β\betaβ是句型。
- 简单整型算术表达式文法:
exp→exp op exp∣(exp)∣numberexp\rightarrow exp\; op\; exp|(exp)|numberexp→expopexp∣(exp)∣number
op→+∣−∣∗op\rightarrow +|-|*op→+∣−∣∗
算术表达式(34−3)∗42(34-3)*42(34−3)∗42的最左推导:

- 简单整型算术表达式文法:
-
S⇒∗γS\Rightarrow {}^*\gammaS⇒∗γ是一个最右推导是指:在由SSS推导γ\gammaγ的过程中,任何一步直接推导α⇒β\alpha \Rightarrow \betaα⇒β,都是用字符串α\alphaα中的最右非终结符对应的产生式规则进行推导,其中α\alphaα、β\betaβ是句型。 > 最右推导也被称为规范推导,由规范推导所得的句型称为规范句型。 - 简单整型算术表达式文法:
exp→exp op exp∣(exp)∣numberexp\rightarrow exp\; op\; exp|(exp)|numberexp→expopexp∣(exp)∣number
op→+∣−∣∗op\rightarrow +|-|*op→+∣−∣∗
算术表达式(34−3)∗42(34-3)*42(34−3)∗42的最右推导:

1201



被折叠的 条评论
为什么被折叠?



