关闭

编译性语言、解释性语言和脚本语言

标签: 语言脚本java平台java开发工具javascript
343人阅读 评论(0) 收藏 举报



 

2006-04-20 10:20 5086人阅读 评论(4) 收藏 举报

 什么是编译性语言、解释性语言和脚本语言

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

 翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。 

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

 

 什么是脚本语言? 

1.脚本语言(JavaScript,VBscript等)介于HTML和C,C++,Java,C#等编程语言之间。 
HTML通常用于格式化和链结文本。而编程语言通常用于向机器发出一系列复杂的指令。 
2.脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些. 
3.与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。 
注:脚本语言一般都有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。JAVASCRIPT,ASP,PHP,PERL都是脚本语言。C/C++编译、链接后,可形成独立执行的exe文件。 
4.脚本语言是一种解释性的语言,例如vc,javascript,installshield script等等,它不象c/c++等可以编译成二进制代码,以可执行文件的形式存在. 
脚本语言不需要编译,可以直接用,由解释器来负责解释。 
5.脚本语言一般都是以文本形式存在,类似于一种命令. 
举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件. 
你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言.

 

JAVA语言


 java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。下图说明了它是如何工作的:

1flow.gif (3652 bytes)

可以把Java字节码看作运行在Java虚拟机(Java VM)上的机器代码指令。每中Java解释器,不管是Java开发工具还是可以运行Java小应用程序的Web浏览器,都是一种Java VM的实例。JavaVM也可以由硬件实现。

 Java字节码使“写一次,到处运行”成为可能。可以在任何有Java编译器的平台上把Java程序编译成字节码。这个字节码可以运行在任何Java VM上。例如,同一个Java程序可以运行在WindowsNT、Solaris和Macintosh上。

2comp.gif (6076 bytes)

Java平台

 平台是程序运行的硬件或软件环境。Java平台与大多数其它平台不同之处在于它是运行于其它基于硬件平台的纯软件平台。大多数其它平台是硬件和操作系统的结合。

Java平台由两部分组成:

  • Java虚拟机(Java VM)
  • Java应用程序界面(Java API)

我们已经介绍了Java VM,它是Java平台的基础,可以移植到各种基于硬件的平台上。Java API是软件组件的集合,它们提供了很多有用的功能,如图
形用户界面(GUI)。Java API被分组为相关组件的库(包)。

 下图描述了一个运行在Java平台上的Java程序,如应用程序(application)或小应用程序(applet)。如图中显示的,JavaAPI和VM把Java程序从硬件依赖中分离出来。

3play.gif (1479 bytes)

作为一种独立于平台的环境,Java比本地代码慢一些。然而,聪明的编译器、很好地调制过的解释器和即时字节码编译器可以在不牺牲可移植性的条件下使Java的表现接近本地代码。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1023512次
    • 积分:12768
    • 等级:
    • 排名:第1065名
    • 原创:133篇
    • 转载:727篇
    • 译文:38篇
    • 评论:38条
    最新评论