解释性语言:用这些语言编写的程序,省去了编译期,而是在运行时一边编译,一边执行,在执行某一语句之前,编译器并不知道该句有没有语法错误,这种语言运行效率比较低。
编译型语言:只有在编译完成后才能运行,拿c /c++语言来说,编译过程有预处理,编译,汇编,链接这四步,分别作了什么工作呢?预处理阶段将头文件加载到了程序中,并对程序中的一些自定义的宏进行了替换,还有去注释等操作。在编译阶段,主要对程序中的语法,词义检查是否正确,这一阶段将程序转化成了汇编语言,然后在汇编阶段,程序将生成的汇编语言转换成了机器语言。链接阶段,程序将目标代码和程序运行时需要的资源进行连接转换成可执行文件windows下是以.exe文件结尾,linux下(若不自定义名称)以.out结尾。之后,就不用编译该程序了,直接运行可执行文件就行了。对于
解释编译型语言怎么理解呢?像java这门语言,有编译阶段,但不能说是编译型语言,因为,他在编译期并不是将程序编译成机器语言,而是将程序装换成了字节码,在运行时,他将字节码通过java虚拟机翻译成了机器语言,然后运行。