- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作符 左操作符数 右操作数 表达式的三元式: w*x+(y+z) (1) *, w, x (2) +, y, z (3) +, (1), (2) 第三个三元 式中的操作数(1) (2)表示第(1)和第 (2)条三元式的计 算结果。 三元式 例: A=B+C*D/E F=C*D 三元式 (1) *, C, D (2) / , (1), E (3) +, B, (2) (4) =, A, (3) (5) *, C, D (6) =, F, (1) 不便于代码优化:删除某些三元式后可能需作一系列的修改 三元式 (1) *, C, D (2) / , (1), E (3) +, B, (2) (4) =, A, (3) (5) =, F, (1) 间接三元式 执行顺序 (1) (2) (3) (4) (1) (5) 三元式的执行次序用另一张表表示, 优化时三元式可以不变,仅仅改变其执行顺序表 例:x =?y +y?z + y?z 抽象语法树 5.3.3 图形表示 有向无环图 5.9 PL/0编译程序的语义分析 特点:将语义子程序嵌入到每个递归过程中,通过递归子程序内部的局部量和参数传递语义信息。 对于某个产生式,不必产生式右部所有符号扫描后再处理,可在处理一个符号后,随时加进有关该符号的语义子程序。 自顶向下语法制导翻译 回忆“4.7 PL/0编译程序的语法分析”(见第4章讲义) 说明部分 5.9.1 说明部分的分析 对每个过程的说明对象填写符号表 具体要填写标识符的名字、属性、所在层次和分配的相对位置等 标识符的属性不同时,所需要填写的信息也有所不同 符号表的填写是由enter函数来完成的 enum object{constant,variable,procedure}; //枚举定义常量、变量和过程 enum object kind; struct table1 //符号表为结构体型数据 {char name [AL]; //标识符名字,最长为AL,已定义为10 enum object kind; //标识符名字的属性,为常量、变量或过程 int val,level,adr, size; }; struct table1 table[TXMAX+1]; //符号表用一维数组table来表示,最多有TXMAX项,TXMAX已定义为100 const a=35,b=49;var c,d,e;procedure p;var g name kind level/val adr size 表格管理 变量定义语句的处理 if(strcmp(sym,varsym)==0){ getsym(); do{ vardeclaration( );//处理一个变量 while (strcmp(sym,comma)==0){ getsym(); vardeclaration( ); } if (strcmp(sym,semicolon)==0) getsym(); else error(5); }while (strcmp(sym,ident)==0); } if(strcmp(sym,varsym)==0){ /* 遇到变量说明符号,处理变量说明 */ getsym(); do{ vardeclaration(); /* 处理一个变量 */ while (strcmp(sym,comma)==0){ getsym(); vardeclaration(); } if(strcmp(sym,semicolon)==0) getsym(); else error(5); /* 漏掉了,或; */ }while (strcmp(sym
您可能关注的文档
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 10.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 11.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 01.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 02.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 03.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 04.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 05.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 06.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 07.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 08.ppt
最近下载
- 长期卧床患者的体位护理技巧.pptx VIP
- JBT14159.3-2022 空气分离设备能效限额第3部分:液化设备.pdf VIP
- 《民用建筑设计通则》图示.docx VIP
- 灭火应急疏散预案.doc VIP
- 铁路内燃、电力司机考试题库.doc VIP
- 新概念英语第一册 Lesson 55-56 课件.ppt VIP
- 2025AI+BI峰会:DeepInsight Copilot 演进史以及未来探索.pdf VIP
- 《临床药学文献阅读汇报抗感染粘菌素在治疗鲍曼不动杆菌感染vap中的应用》课件模板.ppt VIP
- 2025年福建公需课答案.pdf VIP
- 2020四川园林绿化工程说明及计算规则.pdf VIP
文档评论(0)