第一章——编译器工作的主要流程

编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。

一个现代编译器的主要工作流程:

源代码 (source code) →源代码就是人类可读的按程序设计语言编写的代码

预处理器 (preprocessor) → 编译开始之前由编译器调用的独立程序。预处理器可以删除注释、包含其他文件以及执行宏(宏macro是一段重复文字的简短描写)替代

编译器 (compiler) 将“高级语言”翻译为“机器语言(低级语言)”的程序

 汇编程序 (assembler) → 把汇编语言书写的源程序,变为机器语言表示的目标程序

目标代码 (object code) 指源代码经编译后,产生的能被 CPU直接识别的二进制代码

 链接器 (Linker) → 将由编译器汇编器生成的目标文件外加库链接为一个可执行文件

                                 静态链接的最大缺点是生成的可执行文件太大,需要更多的系统资源,在装入内存时也会消耗更多的时间。静态链接对服务器的负载很小,但不能随时更新。

                                动态链接:把链接这个过程推迟到了运行时再进行,这就是动态链接(Dynamic Linking)的基本思想。


可执行程序 (executables)。这类文件可以“单独运行”,或者理解为“有生命”的文件!


脚本:不是所有的执行档,都只存有电脑能阅读的资料。以脚本语言撰写的脚本档案,都可以是执行档,而且内含的资料可被人类阅读,多数以ASCII文本存盘。原因是:脚本语言无需经过编译器预先编译,就可经过直译器(如Perl、Python、Shell)执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值