将
高级语言翻译成机器语言有两种方式:编译和解释。二者区别在于翻译的时间不同。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成
为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执
行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程
序,每个语句都是执行的时候才翻译。(在运行程序的时候才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨
平台性好.)
C语
言是编译型的。
Java
比较特殊,Java程序也需要编译,但是没有直接编译成机器语言,而是
编译成字节码,然后用解释方式执行字节码。
C
程序——>机器语言(编译)
Java程序——>字
节码(编译)——>机器语言(解释)
脚本语言介于
HTML和C,C++,Java,C#等编程语言之间。
HTML通常用于格式化和链结文本。而编程语言通常用于向机器发出一系列复杂的指令。
脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一
些.
脚本与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。
注:脚本语言一般都有相应的脚本引擎来解释执行。他们一般需要解释器才能运行。JAVASCRIPT、ASP、PHP、PERL都是脚本语言。C/C++
编译、链接后,可形成独立执行的exe文件。
脚本语言是一种解释性的语言,例如vbscript、javascript、installshield
script等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在。
脚本语言不需要编译,可以直接用,由解释器来负责解释。
脚本语言一般都是以文本形式存在,类似于一种命令。
举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件。你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa
文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言。
JAVA语言
java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字
节码。Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 -
可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。下图说
明了它是如何工作的:
可以把Java字节码看作运行在Java虚拟机(Java
VM)上的机器代码指令。每种Java解释器,不管是Java开发工具还是可以运行Java小应用程序的Web浏览器,都是一种Java
VM的实例。JavaVM也可以由硬件实现。
Java字节码使“写一次,到处运行”成为可能。可以在任何有Java编译器的平台上把Java程序编译成字节码。这个字节码可以运行在任何
Java VM上。例如,同一个Java程序可以运行在WindowsNT、Solaris和Macintosh上。
Java平台
平台是程序运行的硬件或软件环境。Java平台与大多数其它平台不同之处在于它是运行于其它基于硬件平台的纯软件平台。大多数其它平台是硬件和操
作系统的结合。
Java平台由两部分组成:
•Java虚拟机(Java VM)
•Java应用程序界面(Java API)
Java VM是Java平台的基础,可以移植到各种基于硬件的平台上。Java
API是软件组件的集合,它们提供了很多有用的功能,如图形用户界面(GUI)。Java API被分组为相关组件的库(包)。
下图描述了一个运行在Java平台上的Java程序,如应用程序(application)或小应用程序(applet)。如图中显示
的,JavaAPI和VM把Java程序从硬件依赖中分离出来。
作为一种独立于平台的环境,Java比本地代码慢一些。然而,聪明的编译器、很好地调制过的解释器和即时字节码编译器可以在不牺牲可移植性的条件下
使Java的表现接近本地代码。