1.
编译型语言:程序源码经过编译过程,直接生成机器可执行的程序。例如C++经过编译链接生成的.exe(二进制代码),生成的可执行程序可以直接在计算机上运行。
C/C++、Pascal/Object Pascal(Delphi)、VB等基本都可视为编译语言
解释型语言:程序在运行的时候才翻译成机器语言。程序运行中包含“解释“过程的都是解释型语言。只要不是"直接编译成机器指令并直接运行机器指令执行档"的编译语言,就属于解释型语言。
Java、VBScript、Perl、Python、MATLAB 等等都是解释类语言。
Most so-called interpreted languages use an intermediate representation, which combines compiling and interpreting. In this case, a compiler may output some form of bytecode or threaded code, which is then executed by a bytecode interpreter.
大多数所谓的解释型语言都采用某种结合编译和解释的中间形态。以编译器输出某种字节码或线程码,然后由字节码解释器执行。 ---维基百科-解释型语言条
java程序在生成jar包的时候也有一个编译成字节码的过程,但在程序(jar)运行时,是由JVM将字节码翻译成机器码执行的,java程序运行时是解释运行的。
脚本语言:可以由解释器直接运行的程序,完全的解释型语言。
JAVASCRIPT,ASP,PHP,PERL,Nuva都是脚本语言
2.编译型语言和解释型语言的区别:前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它。而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言。
不管是编译型语言还是解释型语言,都是程序执行的不同方式,都是让计算机执行我们编写的程序。现在虚拟机逐渐多样化,机器指令的硬件相关性逐渐淡化。所以编译语言和解释语言的概念越来越少被提到了
附:
机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
(计算机直接识别的二进制代码)
机器语言是硬件相关的,不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行
-
指令部份的示例
-
0000 代表 加载(LOAD)
-
0001 代表 存储(STORE)
-
- 暂存器部份的示例