人和人之间相互交流需要语言。我们中国人相互交流一般用汉语,美国人相互交流用英语,俄罗斯人相互交流用俄语。。。。中国人和外国人之间交流就需要翻译了,要么请个翻译,要么自己懂外国话。计算机俗称电脑,形象的比喻成用电运行的脑子,表示它很聪明貌似和人类一样会思考。既然电脑很聪明能帮我们做事情,那么就需要我们和它交流,告诉它我们要做什么。交流就需要一个媒介,同样我们和电脑直接交流的媒介也有语言,就是编程语言。编程语言有很多种,比如:C、C++、JAVA、PHP等高级语言。这些语言都可以用来指挥电脑,告诉它我们要做什么。
电脑作为机器其实它只认识0和1(通过电位的高低来表示1或0,比如用高电位表示1,低电位表示0),所以机器只认识如:1001110110111.........这样的代码,而这样的代码就是机器语言,是最底层最原始的语言。如果编写一段程序都用0和1来写,那么是极为痛苦和低效的,一般人也无法完成这项工作。所以有了高级语言,高级语言有了语法和结构和汉语英语相似。使得程序编写起来降低了要求和难度。但电脑只认识机器语言,高级语言它无法识别,那么就需要把高级语言翻译成机器语言。这个翻译的过程就叫做编译。从编译的角度来说,高级语言有两种类型:编译型和解释型。比如C、C++等属于编译型语言,Python、Java、PHP属于解释型语言。
编译型语言就是程序写好后将程序代码一次性编译成机器语言,生成机器语言代码,然后再给计算机来执行。计算机执行的是经过编译后能识别的机器语言,而非原来的高级语言代码。这个过程需要一个能够编译的东西,这个东西叫编译器。它编译完程序生产机器代码文件后就完成了使命,后面计算机只需要运行那个机器代码文件就行了,并不再需要编译器了。
解释型语言并不是将程序代码一次性编译成机器语言代码而是高级语言的代码保存不变,然后编译一段代码(将高级语言代码编译成机器语言代码),再交给计算机来执行。然后再编译一段代码再给计算机来执行。。。。。它不是一次性将所有的高级语言代码都编译成机器语言代码,而是计算机执行一段代码的时候编译一段。那么这就需要一个能够随时编译的东西,这个东西就叫解释器。在以后计算机运行这个程序的时候,这个解释器都需要跟在后面随时随地的一段一段的编译。所以,电脑上就需要安装一个解释器。
编译型语言是一次性将代码编译成机器代码,那么当要修改程序时,就需要将修改好的程序重新再编译成机器代码,这意味着每次改动都需要重新编译。另外编写的程序是不能在不同平台(操作系统)下运行的,比如在windows平台和 linux平台下都要运行,就需要分别编译成windows平台和 linux平台下的两种机器代码。这就叫做不能跨平台。但是编译型语言是一次性编译好再执行,这样执行起来效率会比较高。而解释型语言不是一次性编译成机器代码,需要运行时解释器随时去编译,那么就需要在平台上安装解释器。优点是修改程序比较省事不用修改一次编译一次,直接修改就行。此外具有跨平台性,不管是windows平台和 linux平台只要安装了解释器,那么只要把写好的程序代码交给解释器,由解释器去完成编译工作,程序执行一段,解释性编译一段。这样每次临时翻译的机制也增加了时间的成本,相对于一次性编译(编译型)而言程序运行的效率略低。
总之,编译型是一次性编译好,不具有跨平台性,运行效率高。解释型是不用一次性编译好,只要安装了解释器由解释器去编译,具有跨平台性但是相对编译型效率略低。Python是一种解释型语言。