解释型语言和编译型语言的区别

解释型语言和编译型语言的区别

编译型语言

定于:编译型语言是需通过编译器(compiler)将源代码编译成机器码之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。

执行过程:源代码->汇编代码->机器码->CPU执行

特点:执行效率高:只须编译一次就可以把源代码编译成机器码,后面的执行无须重新编译,直接使用之前的编译结果,可以脱离语言环境独立运行(不需要虚拟机)

适用范围:编译型语言由于程序执行速度快,同等条件下对系统的要求比较低,因此像开发操作系统、大型应用程序、数据库系统等软件时一般采用它

跨平台性差:依赖于编译器,编译之后如果需要修改就要将整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件

解释型语言

解释型语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。

执行过程:源代码->字节码->解释器->机器码->CPU执行

解释型语言能跨平台,是指源代码跨平台,而不是解释器跨平台。解释器用来将源代码转换成字节码,它就是一个可执行程序,是绝对不能跨平台的。在不同的平台下,解释器会将相同的源代码转换成不同的机器码,解释器帮助我们屏蔽了不同平台之间的差异

参考文章:https://blog.csdn.net/weixin_34025386/article/details/116487152?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-116487152.pc_agg_new_rank&utm_term=go%E8%AF%AD%E8%A8%80%E6%98%AF%E7%BC%96%E8%AF%91%E5%9E%8B%E8%BF%98%E6%98%AF%E8%A7%A3%E9%87%8A%E5%9E%8B&spm=1000.2123.3001.4430


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!