欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    编译技术编译原理 (41).pdf

    • 资源ID:52748469       资源大小:3.37MB        全文页数:18页
    • 资源格式: PDF        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译技术编译原理 (41).pdf

    编译技术中 间 代 码 生 成编译器2词法分析器语法分析器语义分析器源程序中间代码生成器代码优化器代码生成器目标程序出错管理器符号表管理器前端后端前端:依赖于源语言,独立于目标机器。后端:依赖于目标机器,独立于源语言。中 间 代 码 生 成中间代码:介乎源语言与目标代码之间,比源语言简单,比目标代码复杂。区分编译器的前端与后端,方便提出针对新机器的编译器。可以设计针对中间代码的优化器。语法分析静态语义检查中间代码生成器中间代码记号流代码生成器中 间 代 码 生 成使用中间代码的优点 与机器无关,便于移植。便于进行独立于机器的代码优化。几种常用的中间表示 后缀表示 图形表示 三地址代码用语法制导定义和翻译方案的方法将源程序翻译成中间形式后 缀 表 示表达式E的后缀表示可以如下递归定义 如果E是变量或常数,那么E的后缀表示就是E本身。如果E 是形式为E1 opE2的表达式,那么E 的后缀表示是E1E2op,其中E1和E2分别是E1和E2的后缀表示。如果E是形式为(E1)的表达式,那么E1的后缀表示是E的后缀表示。后缀表示不需要括号后缀表示图形表示三地址代码E1 op E2uop EE1 E2 opE uopid numid num(E)E(8 4)+28 4 2+表达式E后缀式E 最大优点:便于计算机处理表达式(8 4)+2的后缀表示是8 4 2+运行时!注意区分运行与编译的区别。后 缀 表 示返回值和参数控制链访问链和机器状态局部数据临时数据返回值和参数局部数据临时数据 控制链访问链和机器状态top_spbase_sp栈8后缀表示图形表示三地址代码最大优点:便于计算机处理表达式(8 4)+2的后缀表示是8 4 2+后 缀 表 示返回值和参数控制链访问链和机器状态局部数据临时数据返回值和参数局部数据临时数据 控制链访问链和机器状态top_spbase_sp栈84后缀表示图形表示三地址代码最大优点:便于计算机处理表达式(8 4)+2的后缀表示是8 4 2+后 缀 表 示返回值和参数控制链访问链和机器状态局部数据临时数据返回值和参数局部数据临时数据 控制链访问链和机器状态top_spbase_sp栈84-即 8-4=4844后缀表示图形表示三地址代码最大优点:便于计算机处理表达式(8 4)+2的后缀表示是8 4 2+后 缀 表 示返回值和参数控制链访问链和机器状态局部数据临时数据返回值和参数局部数据临时数据 控制链访问链和机器状态top_spbase_sp栈42后缀表示图形表示三地址代码最大优点:便于计算机处理表达式(8 4)+2的后缀表示是8 4 2+后 缀 表 示返回值和参数控制链访问链和机器状态局部数据临时数据返回值和参数局部数据临时数据 控制链访问链和机器状态top_spbase_sp栈84-2+即 8-4+2=6426后缀表示图形表示三地址代码图 形 表 示语法树是一种图形化的中间表示有向无环图也是一种中间表示assigna+bcdcduminus(a)语法树assigna+bcduminus(b)daga:=(b+cd)+cd的图形表示后缀表示图形表示三地址代码图 形 表 示构造赋值语句语法树的语法制导定义修改构造结点的函数可生成有向无环图修改构造结点的函数可生成有向无环图后缀表示图形表示三地址代码产产 生生 式式语语 义义 规规 则则S id:=ES.nptr:=mknode(assign,mkleaf(id,id.entry),E.nptr)E E1+E2E.nptr:=mknode(+,E1.nptr,E2.nptr)E E1 E2E.nptr:=mknode(,E1.nptr,E2.nptr)E E1E.nptr:=mkunode(uminus,E1.nptr)E (E1)E.nptr:=E1.nptrE id E.nptr:=mkleaf(id,id.entry)一般形式:一般形式:x:=y op z表达式x+y z翻译成的三地址语句序列是t1:=y zt2:=x+t1临时变量还记得活动记录中局部变量下面的临时数据区吗?返回值和参数局部数据临时数据 控制链访问链和机器状态栈后缀表示图形表示三地址代码三 地 址 代 码三 地 址 代 码assigna+bcdcduminus(a)语法树assigna+bcduminus(b)dag三地址代码是语法树或三地址代码是语法树或dag的一种线性表示的一种线性表示a:=(b+c d)+c d语法树的代码语法树的代码dag的代码的代码t1:=bt1:=bt2:=c dt2:=c dt3:=t1+t2t3:=t1+t2t4:=c dt4:=t3+t2t5:=t3+t4a:=t4a:=t5后缀表示图形表示三地址代码三 地 址 代 码本书常用的三地址语句 赋值语句x:=y op z,x:=op y,x:=y 无条件转移goto L 条件转移if x relop y goto L 过程调用param x 和call p,n 过程返回 return y 索引赋值x:=yi和 xi:=y 地址和指针赋值x:=&y,x:=y和x:=y后缀表示图形表示三地址代码一种便于某些代码优化的中间表示静 态 单 赋 值 形 式和三地址代码的主要区别所有赋值指令都是对不同名字的变量的赋值三地址代码静态单赋值形式p=a+bp1=a+bq=p cq1=p1 cp=q dp2=q1 dp=e pp3=e p2q=p+q q2=p3+q1一种便于某些代码优化的中间表示静 态 单 赋 值 形 式和三地址代码的主要区别一个变量在不同路径上都定值的解决办法if(flag)x=1;else x=1;y=x*a;改成if(flag)x1=1;else x2=1;x3=(x1,x2);/由flag的值决定用x1还是x2编译技术中 间 代 码 生 成

    注意事项

    本文(编译技术编译原理 (41).pdf)为本站会员(刘静)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开