网站大量收购独家精品文档,联系QQ:2885784924

编译原理课件Chapter-10.pdf

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 语义分析和代码生成 10.1 语义分析的概念 10.2 栈式抽象机及其汇编指令 10.3 声明的处理 10.4 表达式的处理 10.5 赋值语句的处理 10.6 控制语句的处理 10.7 过程调用和返回 1 假定: • 源语言: 通用的过程语言 • 生成代码:栈式抽象机的(伪)汇编程序 • 翻译方法:自顶向下的属性翻译 • 语法成分翻译子程序参数设置: – 继承属性为值形参 – 综合属性为变量形参 • 语法成分翻译动作子程序参数设置: – 继承属性为值形参 – 综合属性不设形参,而作为动作子程序的返回值 (由RETURN语句返回) 2 5.2.3 (1) L-属性翻译文法(L-ATG ) 这是属性翻译文法中较简单的一种。其输入文法要求是 LL(1)文法,可用自顶向下分析构造分析器。在分析过程中可进 行属性求值。 定义5.2: L-属性翻译文法是带有下列说明的翻译文法: 1. 文法中的终结符,非终结符及动作符号都带有属性,且每 个属性都有一个值域 2. 非终结符及动作符号的属性可分为继承属性和综合属性 3. 开始符号的继承属性具有指定的初始值 4. 输入符号(终结符号) 的每个综合属性具有指定的初始值 5.属性值的求值规则: (略) 3 10.1 语义分析的概念 1、上下文有关分析:即标识符的作用域 2、类型的一致性检查 3 、语义处理: 声明语句:其语义是声明变量的类型等,并不要求做其 他的操作。 语义分析程序的工作是填符号表,登录名字 的特征信息,分配存储。 执行语句:语义是要做某种操作。 语义处理的任务:按某种操作的目标结构生 成中间代码或目标代码。 4 用上下文无关文法只能描述语言的语法结构,而不 能描述其语义!此时最好采用上下文相关文法进行描述。 例如,对于有嵌套子程序结构的程序段: BEGIN … BEGIN α INT I β I END … I … END BEGIN … 若存在文法规则:VAR ::= I 则 BEGIN BEGIN … BEGIN α INT I β VAR END … I … END α INT I 此时内层子程序可归约为BLOCK β BEGIN … BLOCK … I ... END 第一次I的归约正确 I END 第二次I的归约错误 … BEGIN … δ VAR ... END δ ∈V*且不包含变量I 的声明 I … ∴文法规则应改为:INT I β VAR ::= INT I β I END 上下文相关文法

文档评论(0)

JuanHuang + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档