简介
今天的主题是编译型语言和解释型语言,为啥我要把这篇文章放在js里面呢,这是为了之后更好的理解作用域而做的铺垫,让我们来开始今天的讲解。首先我们要知道为啥会将语言分为编译型语言和解释型语言。我们无论用什么语言(我们编程的语言叫高级语言)来编写程序,都需要应用在计算机上才可以,而计算机只认得一些特定的二进制指令(即所谓的机器码),于是在一个程序可以运行之前,它首先需要被翻译成一种能被计算机执行的形式(计算机理解的语言叫机器语言)。由于翻译的形式不同,分为了编译型语言和解释型语言。
编译型语言
在执行源代码之前需要一个专门的编译过程,把程序的源代码编译成可执行文件(比如.exe文件),这个可执行文件里面就是特定的机器语言。而把源代码转化为机器码的语言处理器就是编译器,这时候直接运行这个可执行文件就好了,就不再需要编译器与源代码。常见的编译型语言有C,C++等。
解释型语言
在执行源代码之前不需要编译处理,而是在程序执行的时候才开始把源代码翻译成机器语言,即程序一边翻译一边运行,只翻译将要执行的程序源代码。而把源代码转化为机器码的语言处理器就是翻译器。由于一边翻译一边运行的机制,所以每执行一次程序,都需要进行重新翻译,所以脱离不了翻译器和源代码。常见的解释型语言有Python,JavaScript,PHP。
编译型语言和解释型语言的区别
执行效率:编译型语言的程序直接运行的是机器语言的可执行文件,而解释型语言的程序是一边翻译一边执行,所以默认情况下,相对于程序的执行效率而言,编译型语言较好。
跨平台,移植性:我们所说的跨平台,是指源代码跨平台,而不是解释器跨平台。解释器用来将源代码转换成机器码,它就是一个可执行程序,是绝对不能跨平台的。官方需要针对不同的平台开发不同的解释器,这些解释器必须要能够遵守同样的语法,识别同样的函数,完成同样的功能,只有这样,同样的代码在不同平台的执行结果才是相同的。解释型语言之所以能够跨平台,是因为有了解释器这个中间层。在不同的平台下,解释器会将相同的源代码转换成不同的机器码,解释器帮助我们屏蔽了不同平台之间的差异。
结语
在写这篇文章之前,我也参考了很多人的文章,我也不知道我写的怎么样,就权当是对这些知识的理解吸收好了,都是我的哈哈。希望大家能和我一直共勉,有问题就帮忙指出,共同努努力,2021一起赚大钱。