运算符的结合性(形神兼备)
先看结论
形状
当表达式对应产生式的语法分析树左倾时,表达式以运算符左侧为主,等价于括号打在运算符左侧表达式。反之,当表达式对应产生式的语法分析树右倾时,表达式以运算符右侧为主,等价于括号打在运算符右侧表达式。
产生式
右倾产生式

左倾产生式

可以看到当产生式头部在产生式体中位于运算符左侧时,以左侧为标准。反正,当产生式头部在产生式体中位于运算符右侧时,以右侧为主。
总之,产生式决定了运算符的结合性。
下面解释为什么这样
运算符结合性之左结合
在编译原理中,产生式就是权威。表达式如果以某产生式进行语法分析,那么就只能按照它的方式进行表达,且不能具有二义性。但是,在表达式中有时会涉及打括号的问题。很多时候,在原表达式中打括号和原表达式等价。比如
a + b + c
等价于
(a + b) + c
但有时候却不等价 ,比如
a - b - c
不等价于
a - (b - c)
在编译原理中,括号代表了运算符的结合性,如果运算符

文章探讨了运算符的结合性,区分了左结合(如`a+(b+c)`)和右结合(如`a=b=c`),通过实例和产生式解释了编译原理中的这一概念,强调了语法分析树在决定运算符优先级中的作用。
最低0.47元/天 解锁文章
1508

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



