09第9章 语义分析与代码生成.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
09第9章 语义分析与代码生成

第9章 语义分析和代码生成 ;第9章 语义分析和代码生成 ;9.2 中间代码 ;9.2.1波兰后缀表示 ;9.2.1波兰后缀表示;9.2.2 N-元表示 ;9.2.2 N-元表示;9.2.2 N-元表示;9.2.2 N-元表示;9.2.2 N-元表示;9.2.3 栈式抽象机及其汇编指令 ;9.2.3 栈式抽象机及其汇编指令;9.2 栈式抽象机及其汇编指令;9.3 声明的处理 ;9.3 声明的处理;9.3.1 符号常量 ;9.3.1 符号常量;9.3.2 简单变量 ;9.3.2 简单变量;9.3.2 简单变量;9.3.2 简单变量;9.3.2 简单变量;9.3.3 数组 ;9.3.3 数组;9.3.3 数组;9.3.3 数组;9.3.3 数组;9.3.4 过程声明 ;9.4 表达式语句 ;TEST语言的表达式与其它语言的表达式区别在于表达式中含有赋值运算符,其属性翻译文法如下: expression::=ID↑n@LOOK↓n↑d@ASSIGN=bool_expr@STO↓d |bool_expr bool_expr::=additive_expr | additive_expr additive_expr@GT | additive_expr additive_expr@LES | additive_expr =additive_expr @GE | additive_expr = additive_expr @LE | additive_expr == additive_expr @EQ | additive_expr != additive_expr @NOTEQ additive_expr::=term{(+ term @ADD |-项@SUB)} term ::=factor{(* factor @MULT | / factor @DIV)} factor ::=( expression )| ID↑n@LOOK↓n↑d@LOAD↓d |NUM↑i@LOADI↓i ;9.4 表达式语句 ;9.5 if 语句 ;9.5 if 语句;9.6 while语句 ;9.7 for循环语句 ; 9.7 for循环语句;9.8 write_语句 ;9.9 read_语句 ;9.10 过程调用和返回 ;9.10.1 参数的基本传递形式 ;9.10.1 参数的基本传递形式;9.10.2 过程调用 ;9.10.2 过程调用;9.10.3 过程定义的处理 ;过程声明处理:遇到过程名填符号表,将此时的指令记数作为过程的地址。维数一栏标记为过程或函数。过程定义属性翻译文法如下: 过程定义::=类型 过程名([形参{,形参}]) 复合语句 过程定义::=类型 ↑t过程名↑n @INSERT↓n, ↑allop, i=0,vartable1,ard[形参↓i,ard{,形参↓i,ard}]) @INSERTI↓i,vartable1@ALLOCATE↑allop@STO↓I 复合语句↓ard@ALLO↓allop,ard 形参↓i,ard::=类型↑t标识符↑n@INARD↓n,t,ard @INSERT↓n, ↑allop, i=0:将过程名及函数指令的起始位置插入符号表,为过程的返回值开辟数据空间,形参数=0,符号栈升级,初始化活动记录ard,用allop记住函数指令的起始位置。 @INSERTI↓i,vartable1:回填形参数。 @ALLOCATE:产生申请活动记录的指令, 但大小此时不能填,所以前面用allop记住指令的位置。 @ALLO↓allop,ard:回填活动记录大小。 @STO↓i:按形参声明的逆序产生存贮形参的指令。;9.10.4 返回语句和过程终止 ;9.11 语义分析及代码生成实现 ;9.12 错误处理 ;习题

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档