编译原理实践ppt课件

上传人:4**** 文档编号:252367527 上传时间:2024-11-15 格式:PPT 页数:19 大小:219.47KB
返回 下载 相关 举报
编译原理实践ppt课件_第1页
第1页 / 共19页
编译原理实践ppt课件_第2页
第2页 / 共19页
编译原理实践ppt课件_第3页
第3页 / 共19页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,编译原理实践-语义分析与代码生成,编译原理实践-语义分析与代码生成,1,回顾,回顾,2,语义分析与代码生成,table数组和enter过程的扩充,命令代码生成过程gen,表达式、项、因子及关系式的翻译,语句的翻译,生成PL/0目标代码程序,语义分析与代码生成table数组和enter过程的扩充,3,1.table数组和enter过程的扩充,lod l,a将l,a形成的栈地址变量值置入栈顶,sto l,a 将栈顶值保存到l,a形成的栈地址变量,llevel级别之差,变量所处的程序段,静态级别,与,变量被说明时的,静态级别,之差,aoffset,1.table数组和enter过程的扩充lod l,a将,4,table数组和enter过程的扩充,cal l,a调用子程序,llevel级别之差,call语句所处的程序段,静态级别,与,调用过程被说明时的,静态级别,之差,a被调用代码程序段的起始地址,必须将variable和procedure的level保存在合适的地方,table数组和enter过程的扩充cal l,a调用子程,5,table数组和enter过程的扩充,改变符号表,增加相应的字段(P144图11-1),object=(constant,variable,prozedure);,table:array 0.txmax of,record name:alfa;,case kind:,object of constant:(val:integer);,variable,prozedure:,(level,adr,size:integer);,end;,常量:val,变量:静态级别,位移地址,Procedure:程序地址,静态级别,预留存储单元,table数组和enter过程的扩充改变符号表,增加相应的字,6,table数组和enter过程的扩充,procedure enter(k:objekt);,begin(*enter object into table*),tx:=tx+1;,with tabletx do,begin name:=id;kind:=k;,case k of,constant:begin if numamax then,begin error(31);num:=0 end;,val:=num,end;,variable:begin level:=lev;adr:=dx;dx:=dx+1;,end;,prozedure:level:=lev,end,end,end(*enter*);,table数组和enter过程的扩充procedure en,7,2.命令代码生成过程gen,命令代码生成过程gen(P145图11-3),每调用一次过程gen,在程序存储器里产生一条代码指令,2.命令代码生成过程gen命令代码生成过程gen(P145图,8,3.表达式、项、因子及关系式的翻译,表达式的翻译,中缀表达式与后缀表达式,后缀表达式:操作符总是跟随在它操作数的后边,后缀表达式翻译规则,T(“+”term)=T(term),T(“-”term)=T(term)“-”,T(term1”+”term2)=T(term1)T(term2)“+”,T(term1”-”term2)=T(term1)T(term2)“-”,T(term1”*”term2)=T(term1)T(term2)“*”,T(term1”/”term2)=T(term1)T(term2)“/”,T(“(”expression”)”)=T(expression),3.表达式、项、因子及关系式的翻译表达式的翻译,9,表达式、项、因子及关系式的翻译,expression过程的扩充(P147图11-4),term过程的扩充(P147图11-5),表达式、项、因子及关系式的翻译expression过程的扩充,10,表达式、项、因子及关系式的翻译,factor过程的扩充(P148图11-6),condition过程的扩充(P148图11-7),表达式、项、因子及关系式的翻译factor过程的扩充(P14,11,Example,(x+y)/(z-w),后缀表达式xy+zw-/,Lod x,Lod y,Opr 0,2,Lod z,Lod w,Opr 0,3,Opr 0,5,Example后缀表达式xy+zw-/Lod x,12,Another example,T(x-6*(z+w)(x+y)/(12-w),Another example,13,4.语句的翻译,赋值语句的翻译处理,T(Ident”:=”expression),T(expression),Sto lev-level,adr,4.语句的翻译赋值语句的翻译处理T(expression),14,if语句的翻译处理,T(“if”condition“then”statement),T(condition),Jpc,L1,T(statement),L1:,if语句的翻译处理T(condition),15,while语句的翻译处理,T(“while”condition“do”statement),L1:T(condition),Jpc,L2,T(statement),jmp L1,L2:,while语句的翻译处理L1:T(condition),16,call语句的翻译处理,T(“call”ident),cal,lev-level,adr,call语句的翻译处理cal,lev-level,ad,17,编译原理实践ppt课件,18,5.生成PL/0目标代码程序,执行program6,在SI-NS图上执行program6,直接从PL/0程序翻译写出目标代码程序,5.生成PL/0目标代码程序执行program6,19,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!