zoukankan      html  css  js  c++  java
  • 解释与编译

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

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

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

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


         看一张图:


                                       


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

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


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


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


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


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

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

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

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

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

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

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


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


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

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


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

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


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



  • 相关阅读:
    C++11 并发指南四(<future> 详解三 std::future & std::shared_future)(转)
    转: 关于 ssl的建立链接的过程
    工信部电信投诉网站入口
    rfc 标准文档目录
    转: 七牛云的开源播放器的使用指南
    转: Android基于HLS和RTMP协议的第三方SDK选择
    转:Android中Context详解 ---- 你所不知道的Context
    android开发推荐书籍列表
    转:java 类名 this 的使用
    转: android studio 消除SDK更新时的“https://dl-ssl.google.com refused”错误
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7399316.html
Copyright © 2011-2022 走看看