连载--VC使用入门与常见问题解答-第1节

来源:互联网 发布:深圳行知职业技术学院 编辑:程序博客网 时间:2024/05/16 11:55
 

1节:CC++程序的基本运行过程

 

程序是什么?关于这个问题,有很多种回答,从产生与起作用的过程来说,就是由人来设计一套方法,让机器按照指定的方式运行,出现预期效果。

程序的执行过程,传统观点是分为两类:原生式(编译执行)与虚拟机式(解释执行)。

编译执行的语言,首先由该程序语言写好一个文本文件,该文件扩展名根据所使用的语言略有不同。然后,由一个预先有人写好的软件(一般称为编译器或编译程序)对这个源文件进行编译,编译的目标,是形成一种叫做目标文件的东西,之所以称为目标文件,就是因为这个文件是针对某特定操作系统上可执行文件的标准,生成了一套几乎可以直接在该操作系统上执行的二进制码(操作系统上执行的文件其实都是二进制码),显然,这种得到的结果是和操作系统有关的,这一步已经决定了最终的可执行文件很难拿到另一种操作系统上就直接运行(在不同操作系统上运行的能力称为程序的移植性)。

如果程序还需要点图标,内部放几个图像供程序自身使用啥的,这些都是称为该程序的资源,在源文件被编译成目标文件后,也需要和目标文件结合起来,成为最终的可执行文件,这个过程称为链接,链接的工作也是由预先有人写好的一种软件来完成(一般称为链接器或链接程序)。

总结一下,编译执行的程序,一般的工作流程是:写源文件----用编译器编译----用链接器链接----可执行文件。

当然,也许有人已经觉得,这工作有点麻烦,于是有人专门为了解决这个麻烦,做了一种工具,这种工具软件就是能够把源文件的编辑,编译与链接均合在一起,再加上其他一些辅助的工具,合成了一个软件,这种软件一般成为IDEIntegrated Development Environment)。

CC++都是典型的编译执行的语言。

 

解释执行的语言,是在写好源程序后,由一种叫做虚拟机的专用软件来进行编码,生成的结果,是按照虚拟机要求的一种字节码程序(介于文本文件和二进制文件之间的那种感觉),然后由这个虚拟机来对这个字节码程序解释,解释后,交给具体的操作系统来执行。这种方式增加了一个环节,效率一般会有所降低,换来的是在由虚拟机完成和不同操作系统之间的沟通工作,程序本身只需要满足虚拟机的要求即可,保证了移植性。

Java是这类语言的典范。
原创粉丝点击