读书笔记:程序员的自我修养-----第二章(编译和链接)

     自己之前一直以为目标文件是经过汇编生成.s之后编译生成的,好菜。


 

  源程序到可执行程序过程:预处理  编译 汇编 链接 

预处理:

  展开宏定义,处理条件预编译指令,插入头文件,删除注释,添加行号和文件名标示保留#pragma编译器指令.

编译:

  词法分析:词法扫描器按照词法规则产生记号,根据记号放入到相应表中。比如讲标示符放入符号表,将数字和字符串常量防盗文字表等。

  语法分析:产生以表达式为节点的语法树

  语义分析:语义分析器所能分析的只是静态语义(声明,类型的匹配,类型的转换),语义分析之后,每个表达式都被标示了类型,同时也对符号表里的符号类型更新。

  中间语言生成:源代码级别会有个优化过程,源代码优化器。中间代码类型:三地址码,P-代码

  目标代码生成和优化:比如选择合适的寻址方式,使用位移代替乘法,删除躲雨指令。

链接过程:

  地址和空间分配,符号决议,重定位

 

转载于:https://www.cnblogs.com/chagmf/p/3776866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值