00:00
好,刚刚我们介绍了什么是计算机语言啊,那你要注意了,我们以后学习的肯定全都是高级语言,就是C啊,C加加Java GS诶Python这些高级语言,那接下来再说高级语言,其实他自己也会有一些区别啊,我们来说一下叫什么呢?一个叫叫做这个编译和我们这个解释。哎,或者叫什么呢?编译型语言和我们这叫做一个解释型语言,什么意思,之前已经说过了,计算机中的,诶计算机只能识别什么呢?我们这个二进制编码啊,注意了,二进制编码也就是我们所谓的一个机器码,说机器码说二进制码在这是一个意思啊,计算机只能识别二进制码,所以任何的语言在交游。哎,我们这个计算机执行时必须要哎,先转换为机器码,这1.1定要注意,任何的语言,无论C也好,C加加也好,Java也好,GS也好,PA也好,C上也好,任何的语言你想要执行,最终都要转换成1010,也就是说举个例子,也就是。
01:19
也就是什么呢?哎,也就是像这种,像我写一个吧,哎,我来一个print的一个这个hello,这随便写一个我们这个函数,诶必须要什么呢?诶必须要转换,为什么呢?换为类似这个1010啊这样的这个机器码,诶只有这样你把它转换为这玩意儿了,计算机才能执行啊,才能执行,所以这里边注意,无论是C也好啊,必须啊必须,无论是C也好,Java也好,加也好,都需要做这么一个步骤,叫做一个转换啊转换,但是这里面又注意了,根据转换时机的不同,根据转换时机的这个不同,我们这种语言分成什么呀,分成了这个两。
02:11
大类啊,两大类哪两大类,一类就是我们说的一个编译型语言,还有一类是什么呢?还有一类就是我们的解释型语言,那什么叫编译型语言,编译型语言最典型就是C语言啊,最典型就是这个C语言,C语言那编译型语言什么特点?诶编译型语言会在什么呢?诶会在代码执行前,诶将我们这个代码编译为什么呢?诶编译为这个机器码啊,编译为机器码,然后将我们这个机器码交游。我们的这个什么呀?诶计算机执行,这就是编译型语言什么意思?比如说我现在写的是一个C语言的程序,这个文件我保存到一个程序,保存到一个文件里,这个文件我的名字叫做C,叫做A啊,这个文件我叫做一个A,那我这个A这个文件是没有办法直接交给计算机执行的,那我需要通过C的编译器将A这个文件转编译成什么呢?编译成B啊编译成B,那A这个就是我们这个源码啊,咱们这块说,或者呃,这A是我们这个源码,这块是举个例子啊,而B是我们编译后的什么呢?编译后的一个字解码,哎,编译后自解码就是二进制编码啊,这是编译后,或者我们直接叫这个机器码了啊,叫一个机器码,B是我们编译后的一个机器码,A是那不能执行的,哎,B是能执行的,懂我意思吧,诶,因为我要把我写完的程序做一个步骤,这个步骤叫做编译,编译成一个新文件,然后才能执行啊,我这么写吧。
03:50
画两个箭头,中间我们来写一个编译啊,把A编译成B,然后才能执行,所以注意我们编译型语言都要有编译这么一个步骤才能正常的一个执行啊,而解释型语言就非常非常多了,像我们什么呀,我们的这个Python呀,我们的这个GS呀,像我们这个Java呀,它都属于解释型语言,解释型语言什么特点,它会什么呢?哎,它不会对我们呢代码不会在这个执行前,诶对执行前对我们这个代码进行编译。
04:29
而是什么呢?而是在执行的同时,哎一边执行一边编译,哎一边编译,那这块什么意思,还是比如说我们这里边还是编写一个AA,是我们这个源码,如果是编译型语言,它就需要直接将源码进行编译,产生新的文件,然后执行那个新的文件,对吧?而我们的这种解释型语言,它不会编译,它是干嘛呢?直接把源码交给我们的解释器。
05:03
直接将源码交给我们的这个解释器,有解释器干嘛?有解释器解释执行啊,有解释器解释执行,也就是说C语言这种编形言,特点是它会把整个的代码干嘛呢都编译成机器码,然后将机器码交给系统去执行,而我们的这种解释语言,像Python那种,它不需要编译啊,不需要编译,你写完了以后,直接把代码交给解释器,解释器一边执行一边转换,一边执行一边转换,就有这么一个区别啊,这么一个区别,再说的形象一点,C语言这种边形语言,我们如果说去相当于去饭店吃饭的话,C1元就相当于什么,就相当于说我们去饭店点菜,我说来个鱼香肉丝,来个宫爆鸡丁,这些菜是不是都现成做好的呀,直接把做好的菜端过来让我吃,C语言就是这样,我把我们代码编译好了,直接交给计算机去执行,而我们这种解释型语言呢,它相当于什么呀,相当于我们。
06:04
吃火锅是不是涮羊肉,哎,涮羊肉拿出来那个肉都是生的,你是把你自己涮完了一边涮。一边吃啊,哎,就这么一个区别啊,就这么一个区别,那它们各自有什么特点呢?我们先说边形语言它的特点,哎,我们就说两条一六点叫做直行速度比较快,哎,或者叫特别快,为什么特别快呀,你想想你去饭店点菜。它那个是给你上来炒菜,你吃的快,还是涮肉,涮羊肉你吃的快,但是炒菜啊,炒菜上来就熟了,你是不是直接吃啊,而那个涮肉你还得自己去涮,所以这一块注意这种边形语言的特点都是执行速度特别的快啊,执行速度特别快,但是它的什么呢?它的跨平台性比较差,比较差什么意思?因为就还是举那个炒菜的例子,他那个炒菜炒好了,给你端上来了,端上以后,但是有可能你这桌子上有的人能吃辣,有的人不能吃辣的人爱吃辣的人不爱吃辣,那但是这个菜已经做好了,辣不辣,这个时候是不是已经定了呀?那如果他是辣的,你不爱吃辣的人,这东西是不是就吃不了了,如果他不辣,你爱吃辣人这东西你是不是就不爱吃了?同理,编译型语言也是一样,我这个语言编译好了,注意,我编译好了是在某台机器上编译的,是对某种硬件编译的。比如说我这个代码是在英特尔CPU上编译的,那我这个代码就是专门对英特尔CU来执行的,那这时候可能会有一个问题。
07:30
我挪到了哪呢?挪到了AMDCP上可能就不能用了,或者说我是在Windows系统中编译的,我挪到了LIC下就不能用了,所以这时候就必须要干嘛,我要用C语言编写代码,我要在Windows上编译一个版本,我要在Linux上编译一个版本,如果还有其他系统,我还得在其他系统上进行重新的编译,所以跨平台性比较差,你必须得重新写啊,你要想跨平台必须得重新去写啊。这也是我们说的编译型语言它的特点,然后再来说我们的解释型语言,它的特点什么呢?特点叫什么呀?哎,执行速度,哎,执行速度比较慢啊,执行速度比较慢,可想而知,你涮完肉你得一边涮一边吃,你中间多了一个涮的过程,肯定要比那个东西直接吃菜要要慢,同理,我代码执行的时候,人家是都已经编完了,就直接执行了,而你这还在干嘛呀,解释编一个执行一个,编一个执行一个,你是不是有一个编译这个转换的一个步骤啊,所以执行速度会比我们这种这种什么呀,编译型语言要慢。
08:30
一点啊,要慢一点,但是呢,其实这个东西呢,现在其实不太重要了,因为我们的系统速度,运行速度越来越快,越来越快,所以这个差距基本上体现不出来啊,点不出来,还有就是由于我们现在做的应用都是网络型应用,也就是我要通过网络,通过云来提供服务,而我们网速它其实没那么快,所以基本上你这个两个语言的速度差距,基本上都被你那个网速给你给你盖过了啊,给你盖过了啊,所以这块注意执行速度比较慢,但是什么呢?但是它的快平台跨平台性,哎跨平台性哎比较什么呀,比较好啊,跨平台性也就是说我们的解释型语言都是可以跨平台的,什么意思啊,还是那句话,它是源码直接通过解释器去执行的,那它的特点就是,如果你的解释器是运行在Windows里的,它就会解释成Windows代码去执行,如果是在Linux里,就解成Linux代码执行,就像吃火锅一样,吃火锅你说你想吃辣的蘸。
09:30
大条了,你不想吃饭你就不占辣条了,不就完了吗?它的跨平台性比较好啊,所以注意两个语言各有特点,边形语言、解成语言各有特点,但是现在我们用的比较多的还都是这种解释型语言,C语言也会用到,但是都是一些对性能要求比较高的时候才会用到,一般情况下都是解释性语言,所以像Python GS Java这些都是解释型语言,在这里你只要区分一下它们的区别就OK了,编译型语言需要进行编译啊,而解释语言直接交给解释器执行就OK了啊。好,我们还是来听一下。
我来说两句