首页 > 代码库 > 读书笔记:程序员的自我修养-----第二章(编译和链接)
读书笔记:程序员的自我修养-----第二章(编译和链接)
自己之前一直以为目标文件是经过汇编生成.s之后编译生成的,好菜。
源程序到可执行程序过程:预处理 编译 汇编 链接
预处理:
展开宏定义,处理条件预编译指令,插入头文件,删除注释,添加行号和文件名标示,保留#pragma编译器指令.
编译:
词法分析:词法扫描器按照词法规则产生记号,根据记号放入到相应表中。比如讲标示符放入符号表,将数字和字符串常量防盗文字表等。
语法分析:产生以表达式为节点的语法树
语义分析:语义分析器所能分析的只是静态语义(声明,类型的匹配,类型的转换),语义分析之后,每个表达式都被标示了类型,同时也对符号表里的符号类型更新。
中间语言生成:源代码级别会有个优化过程,源代码优化器。中间代码类型:三地址码,P-代码
目标代码生成和优化:比如选择合适的寻址方式,使用位移代替乘法,删除躲雨指令。
链接过程:
地址和空间分配,符号决议,重定位
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。