编译原理 第一章(源程序、目标程序、解释器、编译器、词法语法语义分析)

第一章
(一)什么是编译程序

1.编译程序
将用高级语言书写的程序翻译成等价的低级语言程序(汇编、机器语言),这种翻译程序称为编译程序。

2.源程序

编译程序的输入对象为源程序

3.目标程序
编译程序的输出对象为目标程序

4.解释器与编译器

在这里插入图片描述
(二)词法分析
1.从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词

(三)语法分析
1.判断输入串是否构成一个语法上正确的程序,并生成语法树

(四)语义分析
1.审查源程序是否有语义错误,为代码生成阶段收集类型信息
2.审查类型:
上下文相关性、类型匹配、类型转换

(五)中间代码生成
1.将源程序生成一种内部表示形式,这种内部表示形式叫中间代码
在这里插入图片描述
(六)代码优化
1.对中间代码进行等价变换,以便生成更高效的目标代码
在这里插入图片描述
(七)目标代码生成
1.把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码,它的工作与硬件系统和指令含义有关
在这里插入图片描述
(八)表格管理和出错管理(应该不考)
在这里插入图片描述
(九)编译阶段

1.分析和综合
①分析:词法分析、语法分析、语义分析,只对程序进行识别检查,没做翻译
②综合:中间代码生成、代码优化、目标代码生成,对源程序进行翻译,生成目标代码

2.前端和后端
①前端(与源语言有关):词法分析、语法分析、语义分析、中间代码生成、中间代码优化
②后端(与源语言无关):目标代码生成

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值