- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S的中间代码(ENDWHILE,_,_,_).ppt
第七章 中间代码生成;中间语言;三地址中间代码;语法制导方法;类型检查和类型转换;中间代码生成中的几个问题;简单表达式的LL语法制导;下标变量中间代码生成;表达式中间代码生成的例子;赋值语句的形式为:Left := Right
赋值语句的四元式结构 :
Left 的中间代码
Right 的中间代码
(FLOAT , right , —, t )
(ASSIG , Right(t), n , Left )
语法制导: S ?L:=R #ASSIGN
#ASSIGN:
从语义栈中取出赋值号左右分量的语义信息;
比较类型是否相同,如果不同,则生成类型转换中间代码;
生成赋值四元式(ASSIG , Right (t), n , Left )。 ;过函调用的中间代码
f(E1,E2,…,En): E1.tuple
…
En.tuple
(ACT,E1.Arg)
…
(ACT,En.Arg)
(CALL,f,—,result)
或(CALL,f,—) ;形参实参结合中间代码:
(VALACT, Ei.Arg, offseti, sizei)……值参
(VARACT, Ei.Arg, offseti, sizei)……变参
(FUNCACT, Ei.Arg, offseti, sizei)……函数参数
(PROACT, Ei.Arg, offseti, sizei)……过程参数;例:x + f (H(10), g(Y))
其中x是整型变量,H为形参函数名,H的形参为
值参,f、g为实在函数名,f的参数均为值参,
g的参数为变参。
( VALACT,10,?1,1 )
( CALL, H, false, t1 )
( VARACT, Y,?1,1 )
( CALL, g, true, t2 )
( VALACT, t1, ?1,size1 )
( VALACT, t2, ?2,size2 )
( CALL, f, true, t3 )
( ADDI, x, t3, t4 );过/函调用中间代码的生成;过/函调用的语法制导;GOTO语句和标号语句的中间代码;条件语句的中间代码;条件语句的语法制导
S→ if E then #ThenIf S ElsePart #EndIf
ElsePart → else #ElseIf S
ElsePart → ?
#ThenIf
根据Sem [ top ]的值,检查它的类型是否为boolean类型,如果是则产生中间代码 (THEN, Sem[top], _, _)。
#ElseIf
产生中间代码 (ELSE, _, _, _)
#EndIf
产生中间代码 (ENDIF, _, _, _) ;While语句的中间代码;while语句的语法制导
S→ while #StartWhile E do #DoWhile S #EndWhile
#StartWhile
产生中间代码 (WHILE, _, _, _)
#DoWhile
遇 do 时(表达式E处理完,其值在Sem[top]):
⑴ 类型检查:检查E是否为boolean类型;
⑵ 产生中间代码 (DO, E.FORM , _, _);
⑶ E弹栈:pop(1);
#EndWhile
产生中间代码 (ENDWHILE, _, _, _) ;过程/函数声明的中间代码;过/函声明的中间代码形式;过程声明的例子;过程/函数声明的语法制导
您可能关注的文档
- Lecture1-苏州工业园区服务外包职业学院.doc
- lesson11.ppt-北京科技大学天津学院.ppt
- LCD日常使用的保养和维护-乐清教育局.ppt
- LessonTwo【形容词比较级及最高级】的变化形式一、规则变化a.原级.doc
- Levo大容量手动移液器-大龙仪器.doc
- LifeKeeperv4.1.1forWindows2000安装指南-HPECommunity.doc
- Lii-260充电器说明书B.doc.doc
- linux内核模块设计.ppt.ppt
- Linux桌面开发以及社区发展-deepin.ppt
- linux系统的文件系统.ppt
- 2024-2025学年初中信息技术(信息科技)七年级下册粤教清华版教学设计合集.docx
- 2024-2025学年初中美术七年级上册岭南版(2024)教学设计合集.docx
- 2024-2025学年初中生物学七年级下册苏教版(2024)教学设计合集.docx
- 2024-2025学年初中信息技术(信息科技)第一册粤教版(广州)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)青岛版(2024)第六册教学设计合集.docx
- 2024-2025学年高中生物学《生物科学与社会》(选修2)苏教版教学设计合集.docx
- 2024-2025学年小学数学一年级下沪教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)三年级下册西师大版教学设计合集.docx
- 2024-2025学年高中语文必修二北师大版教学设计合集.docx
- 2024-2025学年初中劳动九年级下册湘人版(2022)教学设计合集.docx
文档评论(0)