- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.1.3 语法制导定义与翻译方案的设计1. 语法制导定义与翻译方案之例(1) 语法制导定义 (计算算术表达式值) 例 从中缀表达式生成后缀表达式的翻译方案 基于自顶向下语法分析技术的翻译方案之设计 文法G[E]: E::=E+T E::=E-T E::=T T::=T*F T::=T/F T::=F F::=(E) F::=N文法等价变换得到文法G?[E]: E::=TE? E?::=+TE? E?::=-TE? E?::=? T::=FT? T?::=*FT? T?::=/FT? T?::=? F::=(E) F::=N 为了设计翻译方案,通过例子观察分析设计思路。假定输入符号串为3*2,可为其构造语法分析树与相应的依赖图(部分)如下图所示。 关于输入符号串3*2的语法分析树与部分依赖图。 E::=T { E?.i:=T.val } E? {E.val:=E?.val }E?::= + T {E?1.i:= E?.i +T.val } E?1 { E?.val:= E?1.val }E?::= - T { E?1.i:= E?.i -T.val } E?1 { E?.val:= E?1.val }E?::= ? { E?.val:=E?.i }T::=F { T?.i:=F.val } T?{T.val:=T?.val } 类型表达式是基本类型或者是由类型构造符作用于其他类型表达式而形成的类型。1) 基本类型是类型表达式: integer(整)、real(实)、char(字符)、boolean(逻辑)等, 另外还引进type_error与void类型。2) 对类型表达式命名的类型名是类型表达式;3) 类型构造符作用于类型表达式的结果是类型表达式。 其中的几个函数说明如下。 函数调用SearchConstT(value)的功能是:在常量表中查value,如果未查到,把value登录入常量表。不论查到与否,回送value在常量表中的序号。 函数LookType(value)的功能是取得value的类型,常量的类型可以是整型、实型与字符型等。 函数调用add (entry, kind, type, order)的功能是:把种类kind、类型type与序号order 添加入由entry指明的符号表条目中。为了表达种类是常量,可以引进枚举值CONSTANT,表示一个标识符的种类是常量。 概括说,种类部分描述是怎样的对象,特征部分给出与相应对象相关的类型属性等信息。 可具体设计如下。属性字共32位,即, ?0?1…?4?5…?15?16…?31,其中,?0=0, 非特定符号类; ?1…?4:种类,其值从1到15,让:1对应于常量、 2对应于简单变量、…、9对应于函数,10对应于过程、11对应于类型等。 让 15对应于主函数。 ?5…?15:特征,?5=1是整型(?5=0,非整型),?6=1是实型, ?7=1是字符型,?8=1是枚举型,?11=1是形参, ?12=1是有参数,?13=1是系统定义的标识符,?14=1是成员变量。当必要时,可以置?15为函数(过程)定义是否递归的标志。 但在设计属性文法时,通过设置属性值填入符号表,如id.kind=CONSTANT(常量)。 可以如下设计符号表条目类型: typedef struct { int 特定符号标志位; /* 0:非特定符号 */ int 种类; /* 取值1~15 */ struct { int 整型标志位; int 实型标志位; int 字符型标志位; int 枚举型标志位; int 成员变量标志位; int 函数有值标志位; int 形参标志位;
您可能关注的文档
- 汽车电气设备维修课件作者郑烨珺1-5项目一项目一情景一.ppt
- 汽车电气设备维修课件作者郑烨珺1-5项目一项目一项目概述.ppt
- 汽车电气设备维修课件作者郑烨珺6-10项目八项目八情景二.ppt
- 汽车电气设备维修课件作者郑烨珺6-10项目八项目八情景一.ppt
- 中国名菜课件.ppt
- 汽车电气设备维修课件作者郑烨珺6-10项目九项目九情景二.ppt
- 毕业设计指导课件作者电类高职课件作者董锦凤第1-4章节第1章节.ppt
- 汽车构造与原理上册发动机第2版课件作者蔡兴旺主编第2章节曲柄连杆机构与机体组件.ppt
- 汽车电气设备维修课件作者郑烨珺6-10项目九项目九情景三.ppt
- 汽车电气设备维修课件作者郑烨珺6-10项目九项目九情景一.ppt
- 编译原理——编译程序构造实践教程课件作者张幸儿戴新宇602编译程序构造与实践教程第六章节.ppt
- 汽车机械基础课件作者陈红第九章节.ppt
- 编译原理——编译程序构造实践教程课件作者张幸儿戴新宇701编译程序构造与实践教程第七章节.ppt
- 汽车电气系统结构与维修图解教程课件作者谭本忠4第四章节照明及信号装置系统.ppt
- 编译原理——编译程序构造实践教程课件作者张幸儿戴新宇702编译程序构造与实践教程第七章节.ppt
- 编译原理基础(刘坚)第1章节.ppt
- 编译原理基础(刘坚)第2章节.ppt
- 编译原理基础(刘坚)第3章节.ppt
- 编译原理基础(刘坚)第4章节.ppt
- 汽车机械基础课件作者陈红第六章节.ppt
文档评论(0)