程序员的自我修养 读书笔记 chp2

2.1 被隐藏了的过程

  1. 一般一个hello world程序主要可以分为4个步骤:
    1. 预处理,处理其中的一些宏等信息
    2. 编译, 将预处理完的文件进行词法分析,语法分析,语义分析以及优化之后生成相应的汇编代码文件
    3. 汇编, 将汇编代码转化为机器码
    4. 链接,将程序运行所需要的各个模块整合起来

2.2 编译器做了什么

这里写图片描述

  1. 词法分析 lex
  2. 语法分析 yacc
  3. 语义分析 生成语法树
  4. 中间语言生成 将语法树转化为 三地址码
  5. 目标代码生成于优化

2.3 连接器年龄比编译器长

  1. 重定位: 重新计算各个目标的地址的过程

2.4 模块拼接–静态链接

  1. 链接的过程主要包括 地址和空间分配, 符号决议 和 重定位这些步骤
    这里写图片描述
  2. 编译的时候, 一般将一些外部函数的目标地址先搁置, 然后在链接的时候, 冲过重定位修正这些函数入口地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值