运算符的结合性(形神兼备)

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

运算符的结合性(形神兼备)

先看结论

形状

当表达式对应产生式的语法分析树左倾时,表达式以运算符左侧为主,等价于括号打在运算符左侧表达式。反之,当表达式对应产生式的语法分析树右倾时,表达式以运算符右侧为主,等价于括号打在运算符右侧表达式。

产生式

右倾产生式
在这里插入图片描述

左倾产生式
在这里插入图片描述

可以看到当产生式头部产生式体中位于运算符左侧时,以左侧为标准。反正,当产生式头部产生式体中位于运算符右侧时,以右侧为主。

总之,产生式决定了运算符的结合性。

下面解释为什么这样

运算符结合性之左结合

在编译原理中,产生式就是权威。表达式如果以某产生式进行语法分析,那么就只能按照它的方式进行表达,且不能具有二义性。但是,在表达式中有时会涉及打括号的问题。很多时候,在原表达式中打括号和原表达式等价。比如

a + b + c
等价于
(a + b) + c

但有时候却不等价 ,比如

a - b - c
不等价于
a - (b - c)

在编译原理中,括号代表了运算符的结合性,如果运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值