编译器与解释器的简化解释

编译器与解释器的简化解释

代码种类

  1. 机器码:是可以直接让cpu执行的
  2. 字节码:通常指的是已经经过编译,需要解释器翻译后才能成为机器码的中间代码. 如Java字节码
  3. 源代码:是高级语言编写的代码(对人是可读的)

编译工作流程

  1. 编译阶段:从源代码编译成机器码,然后直接运行输出
  2. 运行阶段:不需要编译器了。只需要直接运行生成的机器码。

特点:高效,但是不能跨平台。因为,机器码是与操作系统平台对应的。不能通用。一般,需要在不同的平台上(或者指定平台编译),进行,编译。所用的编译器,也是因为平台而有所差异。代表语言:C、C++、go……

解释工作流程

  1. 编译阶段:无
  2. 运行阶段:需要解释器,一边把源码翻译成机器码,一边进行机器码的运行。

特点:低效,跨平台。因为,给每个平台定制编译器就可以了。然后,一份代码可以,在多个平台运行。代表语言:python、ruby、php……

半编译型半解释型语言

代表语言:java

  1. 编译阶段:java源代码先编译成字节码.class文件
  2. 运行阶段:然后在不同平台上,通过jvm虚拟机运行代码

特点:高效,跨平台。

未命名文件.jpg

posted @ 2019-08-07 17:25  aaronhua  阅读(331)  评论(0编辑  收藏  举报