编译器与解释器的简化解释
代码种类
- 机器码:是能够直接让cpu执行的
- 字节码:一般指的是已经通过编译,须要解释器翻译后才能成为机器码的中间代码. 如Java字节码
- 源代码:是高级语言编写的代码(对人是可读的)
编译工做流程
- 编译阶段:从源代码编译成机器码,而后直接运行输出
- 运行阶段:不须要编译器了。只须要直接运行生成的机器码。
特色:高效,可是不能跨平台。由于,机器码是与操做系统平台对应的。不能通用。通常,须要在不一样的平台上(或者指定平台编译),进行,编译。所用的编译器,也是由于平台而有所差别。表明语言:C、C++、go……php
解释工做流程
- 编译阶段:无
- 运行阶段:须要解释器,一边把源码翻译成机器码,一边进行机器码的运行。
特色:低效,跨平台。由于,给每一个平台定制编译器就能够了。而后,一份代码能够,在多个平台运行。表明语言:python、ruby、php……java
半编译型半解释型语言
表明语言:javapython
- 编译阶段:java源代码先编译成字节码.class文件
- 运行阶段:而后在不一样平台上,经过jvm虚拟机运行代码
特色:高效,跨平台。ruby
