编译器和解释器

学过编译原理的人都知道,对于静态语言来说(如Java、C++、C),处理上述这些事情的叫编译器(Compiler),相应地对于JavaScript这样的动态语言则叫解释器(Interpreter)。这两者的区别用一句话来概括就是:编译器是将源代码编译为另外一种代码(比如机器码,或者字节码),而解释器是直接解析并将代码运行结果输出。 比方说,firebug的console就是一个JavaScript的解释器。

但是,现在很难去界定说,JavaScript引擎它到底算是个解释器还是个编译器,因为,比如像V8(Chrome的JS引擎),它其实为了提高JS的运行性能,在运行之前会先将JS编译为本地的机器码(native machine code),然后再去执行机器码(这样速度就快很多),相信大家对JIT(Just In Time Compilation)一定不陌生吧。

参考文献

  1. 我们应该如何去了解JavaScript引擎的工作原理(这里的引擎应该确切地说是解析器引擎
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 导读:本文就从几个方面着重介绍一下编译器和解释器的区别,令我感到意外的竟然是编译器比解释器既更快又更慢。 根据他们...
    极小光阅读 13,579评论 0 4
  • 机器码和字节码 字节码是一种中间状态(中间码)的二进制代码(文件) 机器码也是二进制代码,是电脑CPU直接读取运行...
    清水芦苇阅读 3,613评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 怀旧小游戏 高中时玩过一些有意思的小游戏,最美应用上看的,但是有的忘记了名字,比如一个滑稽的跑步游戏,操控人的腿控...
    不想告诉你我是谁阅读 838评论 0 0
  • 一、前两周活动回顾 1、小组打卡表 小组的打卡表第二周我们组这次垫底,有天日计划打卡迟到,拉低了小组评分。针对打卡...
    点墨在进化阅读 1,560评论 0 1