源程序执行方式
编译和解释
程序设计语言能够把算法翻译成机器能够理解的可执行程序。这里将计算机不能直接执行的非机器语言源程序翻译成能直接执行的机器语言的语言翻译程序称为语言处理程序
-
源程序:用各种程序设计语言编写的程序称为源程序,计算机不能直接识别和执行
-
目标程序:源程序必须由相应的汇编程序或编译程序翻译成机器能够识别的机器指令代码,计算机才能执行,这正是语言处理程序所要完成的任务。翻译后的机器语言程序称为目标程序
-
汇编程序:将汇编语言源程序翻译成机器语言程序的翻译程序称为汇编程序。汇编语言源程序必须经过汇编程序翻译成计算机所能识别的目标程序后,才能被计算机执行。将汇编语言源程序转换为等价的目标程序的过程称为汇编
-
编译方式和解释方式:用高级语言编写的高级语言源程序也不能直接执行,需要经过高级语言翻译程序将源程序翻译成目标程序。翻译程序有两种工作方式:解释方式和编译方式,相应的翻译工具也分别称为解释程序和编译程序。
-
解释方式是对高级语言源程序进行逐句解释,解释一句就执行一句,但不产生机器语言目标代码。早期的BASIC语言采用解释方式
-
编译方式是将高级语言源程序通过编译程序翻译成机器语言目标代码。大部分高级语言都采用编译方式
-
源程序的运行过程
一个用户源程序在内存中执行通常都要经过以下几个步骤
- 编译:由编译程序将用户源代码编译成CPU可识别的目标代码,产生若干个目标模块(程序段)
- 连接:由连接程序将编译后形成的一组目标模块(程序段)以及需要的库函数连接在一起,形成一个完整的装入模块
- 装入:由装入程序将装入模块装入物理内存。
- 运行
以C源程序为例,一般要经过以下几个步骤:
-
上机输入和编辑源程序。源程序以文件形式存放在指定文件夹内,文件以.c作为后缀,如e.c。
-
对源程序进行编译,得到目标程序。由编译系统对源程序进行编译,得到的目标程序文件以.obj作为后缀,如 e.obj。
-
将目标程序与库函数连接,得到可执行的目标程序。得到的可执行目标程序文件以.exe作为扩展名,如e.exe。