PHP,DDD,CQRS,Event Sourcing,Kubernetes,Docker,Golang

0%

编译器(Compiler)和解释器(Interpreter)

编译器(Compiler)和解释器(Interpreter)是两种不同的工具,都可以将编程语言脚本语言转换为机器语言

编译器可以将整个程序转换为目标代码(object code),这些目标代码通常存储在文件中。目标代码也被称为二进制代码,在进行链接(link)后可以被机器直接执行。典型的编译型程序语言有CC++

解释器(Interpreter)能够直接执行程序或脚本语言中编写的指令,而不需要预先将这些程序或脚本语言转换成目标代码或者机器码。典型的解释型语言有PerlPythonPHPMatlab

以下是关于编译器解释器有趣的方面:

  1. 编译器解释器都能将源代码(文本文件)转换为其他符号;都能生成语法树(parse tree);都能生成立即指令(immediate instructions,即该指令中要操作的数据已经包含在了指令中,而不是在指令中操作数据所在的地址)。它们的不同之处是,编译器包含了链接器(linker),生成独立的机器代码程序,而解释器是直接执行高级语言所描述的操作。

  2. 一旦程序被编译了,则它的源代码对于运行程序来说没用处了。而解释型程序的源代码在运行程序的时候是始终都需要被用到。

  3. 解释型程序一般会比编译型程序运行效率低。

  4. Java程序首先会被编译器编译成中间状态(即字节码),然后再被解释器执行。