编译原理与编译构造 二义文法的处理、语义

本文介绍了如何处理编译原理中的二义文法问题,通过添加附加条件解决冲突,并探讨了YACC在编译构造中的作用。同时,文章讲解了语法制导语义分析的概念,包括属性的定义和语义规则,以及语义分析的输入和输出。编译原理的学习需要深入理解各种文法和语义的关系。
摘要由CSDN通过智能技术生成

本文依旧来自记笔记相当勤快的七米八同学。向他表示真诚的感谢!


二义文法的处理

添加附加条件

在前面的内容中,我们已经知道,想要解决二义文法的问题,必须添加附加条件。

例: EE+E|EE|(E)|i

注意一下下图中的 I0 ,第一行式子是 EE ,那个撇不一定能看得清

Markdown

具体推导过程如图:

Markdown

此时可以推得构造表,但是此时是会有冲突的。我们只能强行规定优先级,如,规定① + ,② + 都是右结合。

我们假设已经知道了 r1=EEES4=EEE 。那么对于已有在符号栈中 EE 规约出了 S4 ,此时符号栈就变成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值