绪论

什么是编译

高级语言 --> 汇编语言 --> 机器语言

编译:将高级语言翻译成汇编语言或机器语言的过程

前者称为源语言后者成为目标语言

编译原理.png

编译器在语言系统中的位置

预处理

  • 把存储在不同文件中的源程序聚合在一起
  • 把被称为宏的缩写语句转换为原始语句

可重定位的机器代码

汇编器生成的可重定位起始代码在内存中存放的起始位置不是固定的,所有地址都是相对于起始位置的相对地址

起始位置+相对地址=绝对地址

加载器

修改可重定位地址:将修改后的指令和数据放到内存中的适当位置

链接器

  • 将多个可重定位的机器代码文件(包括库文件)连接到一起
  • 解决外部内存地址问题(外部地址:一个文件中的代码可能会引用另一个文件的数据对象或过程,相对原文件就是外部地址)

编译系统的结构

  1. 分析源语言:语义分析 <--语法分析 <--词法分析
  2. 生成目标语言

QQ截图20200303123358.png

前端生成分析源语言翻译成中间表现形式
中间表示形式相当于一个桥梁
后端只与目标语言相关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值