JavaScript是"解释性语言"还是"编译性"语言?

JS代码的编译执行分为三个步骤:

1)Break语法分拆为 token, 比如将 `let x = 5;` 分拆为 let, x, =, 5 和 ;这些 token

2)Parse 将数据流解析为“语法树“ Abst Syntax Tree(AST)。比如对`let x =5` 而言 ,最顶层为 VariableDeclaration,左分支为 Identifier,右分支为 AssignmentExpression, 右分支再往下有 NumericalLiteral (也就是5)。

3)生成代码,JS 引擎将 AST 转成可行性的机器码。

简化以上步骤,JS 的执行分为两个阶段,1) Parse 解析 2) Execute (执行)

因此,从思维层面上而言,JS 是 compiled-language 而非 interpreted-language. 也就是说此归类并非就底层的二进制执行而言,而是帮助我们有效思考 JS 执行原理。

拆解 interpret, inter 是 between 之间,而pret 是price,value;因此 interpret 原意为一手交钱,一手交货,现在引申为实时的同声传译。而在编程术语的具体应用中则是一行一行的实时交互的翻译代码。

拆解 compile,com 是一起, 而 pile 为木桩、桩柱,因此 compile 就是将木桩打捆到一起。到编程术语上,就是将代码整体一块编译,然后再执行,区分与 interpret 的交互模式。

以上,从技术与词源两个层面分析JS的语言特性。

JavaScript是

展开阅读全文

页面更新:2024-02-27

标签:机器码   解释性   词源   木桩   数据流   可行性   底层   分支   术语   语法   层面   实时   也就是说   步骤   两个

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top