首页 > 编程语言 >《程序是怎样跑起来的》第八章

《程序是怎样跑起来的》第八章

时间:2023-02-25 21:14:25浏览次数:31  
标签:文件 EXE 代码 程序 第八章 编译器 源代码 链接 怎样

       这章讲了从源代码到可执行代码,CPU能运行的只是转化成本地代码的程序内容,用任何编程语言编写的源代码最后都要翻译成本地代码。

       用某种编程语言编写的程序就是源代码,保存源代码的文件称为源文件。本地代码的内容就是各种数值的罗列,每个数值都表示某一个命令或数据,而计算机就是把所有的信息作为数值的集合来处理的。例如A这个字符数据就是用十六进制数41来表示的,计算机指令也就是数值的罗列,就是本地代码。。从源代码编译成可执行文件就是编译器的作用,编译器首先读入代码的内容,再把源代码转换成本地代码,这个过程是比较复杂的。接着讲了根据CPU类型不同,本地代码类型也不同,因此,,编译器不仅和编程语言的种类有关,和CPU类型也相关。不仅如此生成本地文件后还不可以运行,为了得到可运行的EXE文件,编译后可需要进行“链接”处理,把多个目标文件结合,生成一个EXE文件的处理就是链接,运行链接的程序就称为链接器。

       标准函数不是通过源代码形式而是通过库文件(存储多个目标文件)形成和编译器一起提供的的函数。使用库文件就是为了简化链接器的参数指定多个目标文件这一过程。Windows以函数的形式为应用提供了各种功能这些形式的函数称为API(应用程序接口)。

        下一节讲了可执行文件运行时的必要条件:本地代码在对程序中记叙的变量进行读写时是参照数据存储的内存地址来运行命令的。EXE文件中给变量及函数分配了虚拟内存地址,在运行时会转化成实际的内存地址,链接器也会在EXE文件的开头,追加转换内存地址所需的必要信息,这个信息称为再配置信息。最后讲了当程序加载到内存后,还会生成两个组就是栈(存储函数的内部临时使用的变量及调用的参数的内存区域)和堆(存储程序运行时任意数据对象的内存领域)。

         EXE文件中并不存在栈和堆得组,而是在EXE文件加载到内存后才开始运行时分配的。

标签:文件,EXE,代码,程序,第八章,编译器,源代码,链接,怎样
From: https://www.cnblogs.com/Lxp678/p/17155367.html

相关文章