二十天内补完编译技术(编译原理)——目前进度【LR(0),SLR,LR(1),LALR】

这是第一篇,突然觉得应该继续总结总结才行,所以学期末趁着赶进度“预习”别人复习的内容时的空余时间梳理一下知识。

进入语法分析之后感觉编译技术这门课明显变难了,表现为看书的过程中感觉特别多的字23333,感觉好不容易看完了一两页却感觉看的内容都是不知道有什么用的东西,而看老师的ppt又觉得太过简略。但是知识就是这样,温故而知新,在我慢慢的做完第六次作业之后,我回首一看之前的内容,顿时感觉豁然开朗,知识点已经连成线了,这种感觉非常爽。


下面说明需要用到的例子:

表达式文法:

E->E+T|T

T->T*F|F

F->(E)|id


 

先是自底向上语法分析这个概念——

从一个输入串构造语法分析树,比如书中的例子就是怎么样把输入的id*id还原成E,而LR(0),SLR,LR(1),LALR这四种方法实际上都是为了达成这样的目的来证明语法分析没有出错。

首先最开始它就告诉我这玩意的通式叫“移进-归约”分析,但是肯定还是云里雾里。先解释归约,实际上就是把用E->E+T这样的文法把输入串中的具有文法右边形式的简化成左边形式的,最终归约的目的就是回到初始的非终结符,比如表达式文法需要使得整个输入可以简化为一个E。而移进是专门指代分析过程,我们分析是从前往后读入输入串的,在每次输入串的单个输入为a时,我们需要根据此时已经读入的存放在栈中的内容的状态来决定——是把a加入栈中呢还是暂时不处理a而是对栈中内容进行归约呢?当最后成功读完

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值