当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《编译原理》课程教学资源(PPT课件讲稿)第七章 语义分析和中间代码生成

资源类别:文库,文档格式:PPT,文档页数:123,文件大小:575KB,团购合买
本章内容: 介绍几种常用的中间表示:后缀表示、图形表示和三地址代码; 用语法制导定义和翻译方案的方法来说明程序设计语言的结构怎样被翻译成中间形式; 7.1 中间语言 7.2 说明语句 7.3 赋值语句 7.4 布尔表达式的翻译 7.5 控制语句的翻译 7.6 过程调用的处理 7.7 类型检查
点击下载完整版文档(PPT)

第七章语义分析和中间代码生成 本章内容 介绍几种常用的中间表示:后缀表示、图 形表示和三地址代码 用语法制导定义和翻译方案的方法来说明 程序设计语言的结构怎样被翻译成中间形式

第七章 语义分析和中间代码生成 本章内容 –介绍几种常用的中间表示:后缀表示、图 形表示和三地址代码 –用语法制导定义和翻译方案的方法来说明 程序设计语言的结构怎样被翻译成中间形式

71中间语言 71.1后缀式 表达式E的后缀式可以如下递归定义 ·如果碮变量或常数,那么E的后缀式就是E 本身

7.1 中 间 语 言 7.1.1 后缀式 表达式E的后缀式可以如下递归定义 • 如果E是变量或常数,那么E的后缀式就是E 本身

71中间语言 71.1后缀表示 表达式E的后缀表示可以如下递归定义 如果碮变量或常数,那么E的后缀表示就是 E本身。 如果E是形式为E1pE2的表达式,那么E的后 缀式是E1E2o,其中E1和E2分别是E1和E2 的后缀式

7.1 中 间 语 言 7.1.1 后缀表示 表达式E的后缀表示可以如下递归定义 • 如果E是变量或常数,那么E的后缀表示就是 E本身。 • 如果E是形式为E1 opE2的表达式,那么E的后 缀式是E1  E2  op,其中E1 和E2 分别是E1和E2 的后缀式

71中间语言 71.1后缀式 表达式E的后缀式可以如下递归定义 ·如果碮变量或常数,那么E的后缀式就是E 本身。 如果E是形式为E1pE2的表达式,那么E的后 缀式是E1E2o,其中E1和E2分别是E1和E2 的后缀式。 如果E是形式为(E1)的表达式,那么E的后缀 表示也是E的后缀式

7.1 中 间 语 言 7.1.1 后缀式 表达式E的后缀式可以如下递归定义 • 如果E是变量或常数,那么E的后缀式就是E 本身。 • 如果E是形式为E1 opE2的表达式,那么E的后 缀式是E1  E2  op,其中E1 和E2 分别是E1和E2 的后缀式。 • 如果E是形式为(E1 )的表达式,那么E1的后缀 表示也是E的后缀式

71中间语言 后缀式表示法是波兰逻辑学家卢卡西维奇( Lukasiewicz)发明的一种表示表达式的方法 因此又称逆波兰表示法。这种表示法是把运 算量(操作数)写在前面把算符写在后面( 后缀)

7.1 中 间 语 言 • 后缀式表示法是波兰逻辑学家卢卡西维奇( Lukasiewicz)发明的一种表示表达式的方法 因此又称逆波兰表示法。这种表示法是把运 算量(操作数)写在前面把算符写在后面( 后缀)

71中间语言 把表达式翻译为后缀式的语义规则描述 产生式 语义规则 E→→E10pE2E.code:=E1 code e2, code op E(EE. code:=E code E→id E. code =id

7.1 中 间 语 言 把表达式翻译为后缀式的语义规则描述 产 生 式 语 义 规 则 E→E1 op E2 E.code :=E1 .code || E2 .code || op E→(E1) E.code := E1 .code E→id E.code :=id

71中间语言 后缀式不需要括号 (8-4)+2的后缀表示是84-2+ 后缀式的最大优点是便于计算机处理表达式 后缀式很容易拓广到含一元算符的表达式 后缀式也可以拓广到其它语言成分 演示Tab1e71

7.1 中 间 语 言 后缀式不需要括号 (8 − 4) + 2 的后缀表示是8 4 −2 + • 后缀式的最大优点是便于计算机处理表达式 • 后缀式很容易拓广到含一元算符的表达式 • 后缀式也可以拓广到其它语言成分 演示Table7_1

71中间语言 712图表示法 图表示法包括DAG与抽象语法树 抽象语法树 assign a ulmus d d b (a)语法树 a:=(-b+c*d)+c*d抽象语法树

7.1 中 间 语 言 7.1.2 图表示法 图表示法包括DAG与抽象语法树 • 抽象语法树 assign a + +   b c d uminus c d (a) 语法树 a := (−b + cd ) + cd抽象语法树

71中间语言 712图表示法 有向无环图也是一种中间表示 assign assign a ulmus d umnus d d b b (a)语法树 (bDAG a:=(-b+c*d)+c*d的图形表示

7.1 中 间 语 言 7.1.2 图表示法 • 有向无环图也是一种中间表示 assign a + +   b c d uminus c d assign a + +  b c d uminus (a) 语法树 (b)DAG a := (−b + cd ) + cd的图形表示

71中间语言 构造赋值语句抽象语法树的属性文法 演示 Table72 立生式 语义规则 S→id:=E|S.np:= mknodecassign”, maleat(id, identry), E.nptr) E→E1+E2E.mp:= mknode(+’,E1-npt,E2ptm) E,El*E2Enptr:=mknode(*, Er nptr, E, nptr) E,-E1 Enptr:= mkunode(, Ernptr) E→(E1)E.mp:=E,npt E→id E nptr: = mkleaf (id, identry)

7.1 中 间 语 言 构造赋值语句抽象语法树的属性文法 演示Table7_2 产 生 式 语 义 规 则 S → id :=E S.nptr := mknode(‘assign’, mkleaf (id, id.entry), E.nptr) E → E1 +E2 E.nptr := mknode( ‘+’, E1 .nptr, E2 .nptr) E → E1 E2 E.nptr := mknode( ‘’, E1 .nptr, E2 .nptr) E → −E1 E.nptr := mkunode( ‘uminus’, E1 .nptr) E → (E1 ) E.nptr := E1 .nptr E→ id E.nptr := mkleaf (id, id.entry)

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共123页,可试读30页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有