zoukankan      html  css  js  c++  java
  • 编译型语言、解释型语言、脚本语言的区别

    计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。

    把高级语言翻译成机器语言的两种方式:一种是编译,一种是解释。两种方式只是翻译的时间不通。

    1.编译

    编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。

    最典型的例子就是C语言。

    2.解释

    解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。

    此外,随着Java等基于虚拟机的语言的兴起,我们又不能把语言纯粹地分成解释型和编译型这两种。

    用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

    再换成C#,C#首先是通过编译器将C#文件编译成IL文件,然后在通过CLR将IL文件编译成机器文件。所以我们说C#是一门纯编译语言,但是C#是一门需要二次编译的语言。同理也可等效运用到基于.NET平台上的其他语言。


    脚本语言

    脚本语言是一种解释性的语言

    脚本语言又被称为扩建的语言,或者动态语言,脚本语言不需要编译,可以直接用,由解释器来负责解释。

    脚本语言一般都是以文本形式存在,类似于一种命令.

    举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.

    你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言

    解释型语言是不是完全等同于脚本语言? 
    何为解释型语言?典型的是java,凡是运行java作的程序都得装个虚拟机(jre),这个jre就是解释器。脚本,我比较熟悉的是perl,也是典型的解释型语言。但是显然java不是脚本语言,脚本语言的特征主要有无类型、无内存管理等等,功能较弱,但是使用方便。

    出自:http://blog.csdn.net/u011026329/article/details/51119402

  • 相关阅读:
    深入理解JavaScript闭包
    冒泡排序
    Objective-C中的self和super
    IOS中UIKit——UIButton的背景图像无法正常显示的原因
    IOS绘图——简单三角形
    NSDateFormatter中时间格式串的含义
    IOS屏幕布局
    IOS学习感想
    WWDC————苹果全球开发者大会
    刚开始学IOS遇到的类和方法
  • 原文地址:https://www.cnblogs.com/aieceo/p/8064675.html
Copyright © 2011-2022 走看看