解释与编译

      昨天看到牛腩老师讲的javascript的基本知识。首先就是简单的介绍了一下javascript。再次特别的提到了javascript是一种编译性语言,然后又进一步具体的说明。

    在人类的世界中,有不同的国家。相同也会有不同的语言。像:汉语,英语。法语,日语等等。可是国际通用的语言是英语。

相同在计算机的世界中也分为高级语言和低级语言。

当然计算机不能直接理解高级语言,仅仅能直接理解机器语言,这就像国际通用语言一样。


     看一张图:


                                   


       上图是对我们计算机语言的一张图。

计算机不能直接理解高级语言,仅仅能直接理解机器语言(低级语言)所以必须把高级语言翻译成机器语言,计算机才干运行高级语言编写的程序。


    翻译的方式有两种,一是编译。而是解释。


    解释性语言:解释性语言编写的程序不进行预先编译。以文本方式存储程序代码,在公布程序的时候,看起来省了道编译的工序。可是在执行程序的时候,解释性语言必须先解释再执行。


    编译性语言:相对于解释性语言存在的。须要一个专门的编译过程,吧程序编译成为机器语言的文件。比方exe文件,以后要执行的话就不用又一次翻译了,直接使用编译的结果就OK了。我们做的牛腩系统是asp.net开发的,它所使用的是c#语言。C#属于编译性的语言,所以第一次我们在执行的时候会感觉非常慢,可是之后每次执行相比第一次就快非常多了。


        接下来举一个实例——读书大比拼

      小红和小强两个人看书。看得都是日语原文的小说。

在看的时候,小红有电子词典,一边看书一边翻译。然后第一遍就非常开看完了。

    小强呢,一边看书,一边查字典,然后将每一句的解释都写在了纸上,这样第一次看书他看得时间相对来说比較慢。

    过一个月又进行一次读书大赛。和上次读的书一样。这次呢小红还是老方法。可是小强就相对非常快,由于他把解释都写下来了,所以读起来就非常快了。

    假设还进行一次比赛,结果和第二次的一样。。。

        小红做的工作就是计算机中的解释性语言所具有的特征,小强呢就是编译性语言所具有的特征。


  由以上样例能够得出二者的不同之处:


    解释性语言:每一个语句用到的时候才会编译,并且不会被保存起来,所以他的运行效率要低,并且不能生成可独立运行的可运行文件。应用程序不能脱离其解释器。

可是这中方式比較灵活能够动态地调节,改动应用程序非常方便。


    编译性语言:把程序编译成机器语言的文件后,然后保存在电脑中,当电脑看到相同的语言后就回去查找曾经编译的,这样他的运行效率会非常高

可是应用程序一旦须要改动,必须先改动源码再又一次生成新的目标文件才干运行。仅仅有目标文件而没有源码。改动非常不方便


    两者还有很多其它的差别,以上仅仅是自己查看资料的理解,假设大家有更好的理解请多多不吝赐教!



posted on 2017-08-20 11:18  blfbuaa  阅读(172)  评论(0编辑  收藏  举报