编译原理课件:第三章 词法分析.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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * 以自然语言例子:我上课 请开门 做例子讲解非递归的自上而下分析 * * * * * * * * * * * * * * * * * * * * * * * * * S属性定义的自下而上计算 简单计算器的语法制导定义改成栈操作代码 . . . . . . Z Z. z Y Y. y X X.x . . . . . . 栈 state val top 产 生 式 代 码 段 L ? E n print (val [ top?1] ) E ? E1 + T val [top ?2 ] = val [top ?2]+val [top] E ? T T ? T1 ? F val [top ?2 ] = val [top ?2]?val [top] T ? F F? (E) val [top ?2 ] = val [top ?1] F ? digit 第五章 语法制导的翻译: L属性定义 继承属性 int id, id, id 产 生 式 语 义 规 则 D ? TL L.in = T.type T? int T. type = integer T? real T. type = real L? L1, id L1.in = L.in; addType(id.entry, L.in) L? id addType(id.entry, L.in) L属性定义的自上而下计算 L属性定义 如果每个产生式A?X1…Xj-1Xj…Xn的每条语义规则计算的属性是A的综合属性;或者是Xj 的继承属性,但它仅依赖: 该产生式中Xj左边符号X1, X2, …, Xj-1的属性; A的继承属性 S属性定义属于L属性定义 L属性定义的自上而下计算 预测翻译器的设计 为每个非终结符A构造一个函数,A的每个继承属性作为形参,A的综合属性作为返回值 产生式R ? +TR | ? 的分析过程 syntaxTreeNode? R (syntaxTreeNode? i) { syntaxTreeNode ?nptr, ?i1, ?s1, ?s; char addoplexeme; if (lookahead == + ) { /? 产生式 R ? +T R ?/ addoplexeme = lexval; match(+ ); nptr = T(); i1 = mkNode(addoplexeme, i , nptr); s1 = R (i1); s = s1; } else s = i; /? 产生式 R ? ? ?/ return s; } R : i, s T : nptr + : addoplexeme L属性的自下而上计算 分析栈上的继承属性 1、属性位置能预测 例 int p, q, r D ? T {L.in = T.type} L T? int {T. type = integer} T? real {T. type = real} L? {L1.in = L.in } L1, id {addtype (id.entry, L.in )} L? id {addtype (id.entry, L.in )} D T L L , r L , q p int ? type ? ? ? in in in 继承属性的计算可 以略去,引用继承属 性的地方改成引用其 他符号的综合属性 L属性的自下而上计算 D T L L , r L , q p int ? type ? ? ? in in in 产 生 式 代 码 段 D ? TL T? int val[top] = integer T? real val[top] = real L? L1, id addType(val[top], val[top?3]) L? id addType(val[top], val[top?1]) 第六章 类 型 检 查 本章内容 静态检查中最典型的部分 — 类型检查 设计语法制导的类型检查器 忽略其它的静态检查:控制流检查、唯一性检查、关联名字检查 语法 分析 器 类型 检查 器 中间 代码 生成 器 语法树 语法树 中间 表示 记号流 简单类型检查器的说明 类型检查——表达式 E ? E1 [E

文档评论(0)

学习让人进步 + 关注
实名认证
文档贡献者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档