收藏 分享(赏)

抽象语法树.ppt

上传人:scg750829 文档编号:6563782 上传时间:2019-04-17 格式:PPT 页数:28 大小:332.50KB
下载 相关 举报
抽象语法树.ppt_第1页
第1页 / 共28页
抽象语法树.ppt_第2页
第2页 / 共28页
抽象语法树.ppt_第3页
第3页 / 共28页
抽象语法树.ppt_第4页
第4页 / 共28页
抽象语法树.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、抽象语法树,语法分析树,S,句子: 1 + (2 + (3 + 4) + 5 文法: S E | S + EE (S) | Number,语法分析树,S,为了表达这个表达式,是否真的需要如此复杂的树结构?,抽象语法树 (ASTs),+,+,5,1,+,2,+,3,4,S,S,+,E,5,S + E,1,( S ),S + E,E,4,S + E,2,E,( S ),3,E,为了表达这个表达式,是否真的需要如此复杂的树结构?NO! 只需要使用 Abstract Syntax Trees 来替代.,如何来构建AST?,构建抽象语法树的最佳途径是伴随句子的语法分析过程;为每个“重要的”产生式规则构建

2、内部的树结点,使用指针指向其叶子结点规则。需要能够掠过那些不重要的规则(例如一个直接的转换)或者以后的分析中不要的部分(括号;变量声名等),AST的结构,AST的叶子结点是什么?变量variable数字 number等 一般来说:一个文法规则,如果右侧产生式仅仅含有终结符,其将会成为AST的叶子结点。这些规则将会首先进行归约。,抽象语法树,画这颗语法分析树 1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,抽象语法树,画这颗语法树 1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Nu

3、mber 在AST中,哪些规则应该被表示出来?,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number只有Nnumber应该被看作一个叶子结点。,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number只有Nnumber应该被看作一个叶子结点。,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number不重要的运算符在AST中不出现。,抽象语法树,1 + 2 * (3 + 4) + 5S E | S

4、 + EE T | E * TT (S) | Number不重要的运算符在AST中不出现。,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number不重要的运算符在AST中不出现。.,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number从AST中可以移除这些内容,直接从子树连接到父亲结点。,抽象语法树,Draw the tree for: 1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number从AST中可

5、以移除这些内容,直接从子树连接到父亲结点。,S,S + E,1,5,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number产生式右部具有几个算符的规则可以归约为一个非终结符,使用一个结点表示。,S,S + E,1,5,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number产生式右部具有几个算符的规则可以归约为一个非终结符,使用一个结点表示。,S,S + E,1,5,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E |

6、 S + EE T | E * TT (S) | Number,S,S + E,1,5,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,S,1,5,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,S,1,5,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,S,1,5,+,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S

7、 E | S + EE T | E * TT (S) | Number,S,1,5,+,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,S,1,5,*,+,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,S,1,5,*,+,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | Number,+,+,1,5,*,+,2,3,4,抽象语法树,1 + 2 * (3 + 4) + 5S E | S + EE T | E * TT (S) | NumberDONE!,+,+,1,5,*,+,2,3,4,从抽象语法树如何进行翻译,visit,visit (left),visit (right),TRx + 42,T,A,Load_Mem x, R1,Load_Const 42, R2,Add_Reg R2, R1,Load_Mem x, R1,Load_Const 42, R2,Add_Reg R2, R1,T=R1,A=R2,Rn,T=R1,A=R2,Rn,T=R2,A=R3,Rn,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 语法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报