东南大学 编译原理 教学教案 Cp8.ppt

东南大学 编译原理 教学教案 Cp8.ppt

ID:51348565

大小:225.50 KB

页数:86页

时间:2020-03-22

东南大学 编译原理 教学教案 Cp8.ppt_第1页
东南大学 编译原理 教学教案 Cp8.ppt_第2页
东南大学 编译原理 教学教案 Cp8.ppt_第3页
东南大学 编译原理 教学教案 Cp8.ppt_第4页
东南大学 编译原理 教学教案 Cp8.ppt_第5页
资源描述:

《东南大学 编译原理 教学教案 Cp8.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Chapter8 IntermediateCodeGenerationZhaiYuqingZhouXiaoyuOverviewPositionofIntermediateCodeGeneratorparsertokenstreamStaticcheckersyntaxtreeintermediatecodegeneratorsyntaxtreeintermediatecodecodegeneratorImplementationofIntermediateCodeGeneratorSyntax-directedtranslation,foldedintoparsingIntermediateR

2、epresentationsSyntaxtreePostfixnotationThree-addresscodeQuadrupleBenefitsforUsingaMachine-independentIntermediateFormAmachine-independentcodeoptimizercanbeappliedtotheintermediaterepresentation.Three-addressCode(TAC)Three-addressCode(TAC)Asequenceofstatementsofthegeneralformx=yopz.Thereisonlyoneoper

3、atorontherightsideofastatement.Here,x,y,zarenames,constants,orcompiler-generatedtemporaries;opstandsforanyoperator.Three-addressCode(TAC)Eachthree-addresscodestatementcontainsthreeaddresses,twofortheoperandsandonefortheresult.Threeaddresscodeisalinearizedrepresentationofasyntaxtree.TypesofTACX=yopzX

4、=opyX=ygotoLifxrelopygotoLparamxcallp,nreturnyTypesofTACx=y[i]x[i]=yx=&y/*valueofxisthelocationofy*/x=*y*x=ySyntax-directedTranslationintoTACWecanuseS-attributeddefinitiontogeneratethree-addresscodeforassignmentstatement.Wecreateanewnameeverytimeatemporaryisneeded.ProductionSemanticRulesSid=ES.code

5、=E.code

6、

7、gen(id.place‘=’E.place)EE1+E2E.place=newtemp();E.code=E1.code

8、

9、E2.code

10、

11、gen(E.place,’=’,E1.place‘+’E2.place)EidE.place=id.placeE.code=‘’QuadruplesImplementationsofThree-addressStatementsAthree-addressstatementisanabstractformofintermediatecodesQuadruples(op,arg1,arg2,result)Triples(n)(op,

12、arg1,arg2)(m)(op,(n),arg)AdvantagesofQuadruplesGoodforoptimizingAssignmentStatementsfunctionsNEWTEMP()GEN(OP,ARG1,ARG2,RESULT)SemanticRulesforQuadrupleCodeGenerationAi=E{GEN(=,E•PLACE,_,i.entry}E-E1{T=NEWTEMP();GEN(@,E1•PLACE,_,T);E•PLACE=T}EE1*E2{T=NEWTEMP();GEN(*,E1•PLACE,E2•PLACE,T);E•PLACE=T}

13、SemanticRulesforQuadrupleCodeGenerationEE1+E2{T=NEWTEMP();GEN(+,E1•PLACE,E1•PLACE,T);E•PLACE=T}E(E1){E•PLACE=E1•PLACE}EiE•PLACE=i.entryAddressingArrayElementsAddressingArrayElementsOne-dimensionala

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。