解释器和编译器

解释器(英语:Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。解释器不会一次把整个程序转译出来

Python、TCL和各种Shell程序一般而言是使用解释器执行的。微软公司的Qbasic语言也是解释方式,它不能生成可执行程序(但Quick Basic和Visual Basic可以);运用广泛的网络编程语言java则同时有解释和编译方式。

解释器运行程序的方法有:

1.直接运行高级编程语言 (如 Shell 自带的解释器)

2.转换高级编程语言码到一些有效率的字节码 (Bytecode),并运行这些字节码Perl,Python,MATLAB,与Ruby

3.以解释器包含的编译器对高级语言编译,并指示处理器运行编译后的程序 (例如:JIT)

Java解释器:解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并在特定的平台进行运行。简单一点,java的解释器只是一个基于虚拟机JVM平台的程序 ,即jdk或jre目录下bin目录中的java.exe文件。 Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。

步骤1:可以通过操作系统设置,也可不用设置,一般编译环境会为你设置,其中CLASSPATH包含一个或多个目录,用来查找.class文件的根目录。

步骤2:需要从根目录进行查询,解释器获取包的名称,将点号替换为反斜杠,具体哪种反斜杠视操作系统而定。

步骤3:将得到的路径与CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找与你创建的类名称相关的.class文件。

编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。

对于C#、VB等高级语言而言,此时编译器完成的功能是把源码(SourceCode)编译成通用中间语言(MSIL/CIL)的字节码(ByteCode)

你可能感兴趣的:(解释器和编译器)