经典的编译器设计

选自

《JavaScript编译器如何工作》http://blog.jobbole.com/41184/

 

简单编译器是怎么工作的

JavaScript被认为是高级语言,这意味着它是人类可读的并且具有高度的灵活性。编译器的工作是把高级语言转换成计算机本地指令。

一个简单的编译程序有四个处理过程:词法分析器、解析器、翻译器、解释器。

  • 1. 词法分析器(或者说是扫描器,分词器),扫描源码并把它转换为原子单位,称为记号。最常见的实现是使用正则表达式进行模式匹配。
  • 2.  被标记化之后的代码被传入解析器,解析器对代码结构和作用范围进行识别和编码,生成语法树。
  • 3. 这种类似图的结构之后被传入翻译器翻译成字节码。其中最简单的实现是把一个庞大的switch语句标记映射成等价的字节码。
  • 4. 然后字节码被传入字节码解释器,被转换为本机代码。

这是经典的编译器设计,已经存在了很多年。但是桌面程序和浏览器的要求有很大不同。这种经典的结构在多个方面都有缺陷。解决这些问题的创新方式,是浏览器的速度竞赛故事。

posted @ 2013-07-01 22:16  leenuxqt  阅读(250)  评论(0)    收藏  举报