开发者社区> 问答> 正文

什么是AST?

已解决

什么是AST?

展开
收起
詹姆斯邦德00 2022-10-25 15:57:32 1165 0
来自:大淘宝技术
1 条回答
写回答
取消 提交回答
  • 推荐回答

    在计算机科学中,抽象语法树(Abstract Syntax Tree,AST)或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。

    这是一段引自百科上的解释,什么意思呢?让我们一起来看下面这个例子:

    image.png

    可以看到,非常简单的一句初始化赋值代码 var str = ""hello world"" 被拆解成了多个部分,并用一棵树的形式表示了出来。(如果想查看更多源代码对应的 AST,可以使用神器 astexplorer 在线尝试)

    其实,我们每天日常工作都在使用的 js 代码编译工具 — Babel,它也离不开AST。为了将 ES6 甚至更高版本的 js 语法转换成浏览器兼容性更好的 ES5 代码,Babel 每次都需要先将源代码解析成 AST,然后修改 AST 使其符合 ES5 语法,最后再重新生成代码。总结一下就是3 个阶段:parse -> transform -> generate。

    以上内容摘自《大促背后的前端核心业务实践》电子书,点击https://developer.aliyun.com/topic/download?id=728可下载完整版。

    2022-10-25 16:12:28
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载