编译原理 学习总结

编译原理介绍编译程序构造的原理与方法,了解编译程序是如何运行。我们将程序用高级语言写出来通过编译程序将其翻译为机器能识别的语言从而执行,编译原理可由一张图可以概括。


高级语言如何转换为机器能识别的机器语言大致要经过五个过程。

1.代码要起到什么作用,可以通过分析其成分来得出其作用。于是第一阶段就是识别单词,将单词分类以便后续处理。但高级语言有多种,每种有其自己的特色,也不尽相同。我觉得这也是文法的由来。文法用来描述语言,但语言的又有区分,从而有文法的分类与不同。最好的是0型文法。但符合这样文法的语言不多,这也是不同编译程序产生的原因。有了文法就可以识别单词是否符合该文法。理解编译程序如何运行就可通过语法分析树。

2.词法分析是将句子里的单词识别并判断其组合是否符合文法结构。主要介绍了词法分析器的设计,介绍了正规式与正规文法,有限状态自动机,有限状态自动机之间的转换,正规文法与有限状态自动机之间的转换。

3.语法分析是将有词法分析传递过来的结果进行处理分析,判断是否符合语法要求。分为自上而下分析与自下而上分析,自上而下分析主要讲了LL(1)分析法。运用消除左递归,first集,follow集,预测分析表。自下而上分析讲了两种方法——算符优先与LR分析法。算符优先介绍了算符优先文法,及其判定,算法优先表。LR分析法介绍LR(0)项目族集,与分析表的构造。SLR分析表与LR(1)分析表。

4.当句子符合语法后,还要判断其语义问题。包含属性文法与语法制导翻译,综合属性,继承属性,S-属性文法及计算,L-文法及翻译,依赖图,遍历。

5.符合语义后即可产生中间代码,中间代码的表示,逆波兰式,图表示法,三地址代码。运用这些对赋值,控制,说明,布尔表达式••••••语句进行翻译,主要是运用四元式,涉及回填。

编译原理的学习已经告一段落。感觉自己学的挺不错的,但考试结果却不尽人意,感觉自己平时下的功夫还不到,有些地方学的不尽人意,在考试中就体现出来。还是应该多花功夫去学习,如果学好的话,是不是就可以做出一个编译器啦,哈哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值