【20200220】编译原理课程课业打卡二
叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ee544ab366b0419728301c438bc29b2e.png)
一、简要说明一下下列每个程序的主要任务是什么?
1、词法分析程序
从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,
从而识别出一个个单词。
2、语法分析程序
在词法分析的基础上,将单词序列分解成各类语法短语,
如“语法”、“程序”、“产生式”等。
3、语义分析程序
进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。
4、中间代码生成程序
按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码。
如三元式或四元式。
5、代码优化程序
为了产生高质量的目标代码,对中间代码进行等价变换处理。
6、目标代码生成程序
将优化后的中间代码程序转换成目标代码程序。
7、符号表管理程序
负责建立、填写和查找等一系列表格工作。
表格的作用是记录源程序的各类信息和编译各阶段的进展情况
,编译的每个阶段所需信息多数都从表格中读取,产生的中间结果都记录在相应的表格中。可以说整个编译过程就是造表、查表的工作过程。
需要指出的是,这里的“表格管理程序”并不意味着它就是一个独立的表格管理模块,而是指编译程序具有的表格管理功能。
8、出错管理程序
处理和校正源程序中存在的词法、语法和语义错误。
当编译程序发现源程序中的错误时,错误处理程序负责报告出错的位置和错误性质等信息,同时对发现的错误进行适当的校正(修复),目的是使编译程序能够继续向下进行分析和处理。
二、关于编译程序的主要构成成分
如下图所示:
Ending!
更多课程知识学习记录随后再来吧!
就酱,嘎啦!
注:人生在勤,不索何获。