编译原理实践ppt课件

上传人:4**** 文档编号:252367527 上传时间:2024-11-15 格式:PPT 页数:19 大小:219.47KB
收藏 版权申诉 举报 下载
编译原理实践ppt课件_第1页
第1页 / 共19页
编译原理实践ppt课件_第2页
第2页 / 共19页
编译原理实践ppt课件_第3页
第3页 / 共19页
资源描述:

《编译原理实践ppt课件》由会员分享,可在线阅读,更多相关《编译原理实践ppt课件(19页珍藏版)》请在装配图网上搜索。

1、,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,编译原理实践-语义分析与代码生成,编译原理实践-语义分析与代码生成,1,回顾,回顾,2,语义分析与代码生成,table数组和enter过程的扩充,命令代码生成过程gen,表达式、项、因子及关系式的翻译,语句的翻译,生成PL/0目标代码程序,语义分析与代码生成table数组和enter过程的扩充,3,1.table数组和enter过程的扩充,lod l,a将l,a形成的栈地址变量值置入栈顶,sto l,a 将栈顶值保存到l,a形成的栈地址变量,llevel级别之差,变量所处的程序段,静态级别,与,变量被说明

2、时的,静态级别,之差,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);,tabl

3、e: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

4、;,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,在程

5、序存储器里产生一条代码指令,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

6、)“/”,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

7、,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(

8、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,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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