电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

编译原理蒋宗礼第11章

12页
  • 卖家[上传人]:资****亨
  • 文档编号:133852818
  • 上传时间:2020-05-31
  • 文档格式:PPT
  • 文档大小:136.50KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、31 05 2020 1 第11章代码生成 11 1代码生成器设计中的问题11 2目标语言11 3一个简单的代码生成器11 4窥孔优化11 5寄存器分配与指派11 6本章小结 31 05 2020 2 第11章代码生成 代码生成是编译的最后一个阶段 由代码生成器完成 其任务是把中间代码转换为等价的 具有较高质量的目标代码 以充分利用目标机器的资源 当然 代码生成器本身也必须具有较高的运行效率 目标代码可以是绝对地址的机器代码 或相对地址的机器代码 也可以是汇编代码 本章用微型机的汇编指令来表示目标代码 31 05 2020 3 11 1代码生成器设计中的问题 虽然代码生成器的具体实现依赖于目标机器的体系结构 指令系统和操作系统 但存储管理 指令选择 寄存器分配和计算顺序等问题却是设计各种代码生成器都要考虑的问题 本节讨论这类共性问题 31 05 2020 4 11 1 1代码生成器的输入 代码生成器的输入包括中间代码和符号表信息 符号表信息主要用来确定中间代码中的变量所代表的数据对象的运行时地址 假设在代码生成前 编译器的前端已经将源程序扫描 分析和翻译成为足够详细的中间代码 其中变量

      2、的值已经可以表示为目标机器能够直接操作的量 位 整数 实数 指针等 已经完成了必要的类型检查 在需要的地方已经插入了类型转换符 明显的语义错误 如试图把浮点数作为数组下标 也都已经被检测出来了 31 05 2020 5 11 1 2目标代码的形式 代码生成器的输出是目标代码 目标代码的形式主要有如下3种 绝对机器语言代码 所有地址均已定位 可以立即被执行 适于小程序的编译 因为它们可以迅速地被执行 可重定位的机器语言代码 允许分别将子程序编译成一组可重定位模块 再由连接装配器将它们和某些运行程序连接起来 转换成能执行的机器语言程序 好处是比较灵活 并能利用已有的程序资源 代价是增加了连接和装配的开销 汇编语言代码 生成汇编语言代码后还需要经过汇编程序汇编成可执行的机器语言代码 但其好处是简化了代码生成过程并增加了可读性 31 05 2020 6 11 1 3指令选择 所谓指令选择是指寻找一个合适的机器指令序列来实现给定的中间代码 目标机器指令系统的性质决定了指令选择的难易程度指令系统的一致性和完备性是两个重要的因素特殊机器指令的使用和指令速度是另一些重要的因素 31 05 2020 7

      3、 11 1 3指令选择 若不考虑目标程序的效率 指令的选择将非常简单 如 三地址语句x y z翻译成如下代码序列 x y和z都是静态分配 MOVy R0 把y装入寄存器R0 ADDz R0 z加到R0上 MOVR0 x 把R0存入x中 逐个语句地产生代码 常常得到低质量的代码 31 05 2020 8 11 1 3指令选择 语句序列a b cd a e的代码如下MOVb R0ADDc R0MOVR0 a 若a不再使用 第三条也多余MOVa R0 多余的指令ADDe R0MOVR0 d 31 05 2020 9 11 1 3指令选择 如果目标机器有加l指令 INC 则a a 1的最有效实现是 INCa而不是MOVa R0ADD 1 R0MOVR0 a 31 05 2020 10 11 1 4寄存器分配 将运算对象放在寄存器中的指令通常要比将运算对象放在内存中的指令快且短 因此 要想生成高质量的目标代码 必须充分使用目标机器的寄存器 寄存器的使用包括 寄存器分配 为程序的某一点选择驻留在寄存器的一组变量寄存器指派 确定变量将要驻留的具体寄存器 31 05 2020 11 11 1 4寄存器分配 选择最优的寄存器指派方案是一个NP完全问题 如果考虑到目标机器的硬件和 或 操作系统对寄存器的使用约束 该问题还会进一步复杂 有关寄存器分配和指派的策略将在11 5节再进行详细讨论 31 05 2020 12 11 1 5计算顺序选择 计算执行的顺序同样会影响目标代码的效率 后面将会看到 某些计算顺序比其它顺序需要较少的寄存器来保存中间结果 因而其目标代码的效率也要高 选择最佳计算顺序也是一个NP完全问题 为简单起见 只讨论如何按给定的三地址码的顺序生成目标代码

      《编译原理蒋宗礼第11章》由会员资****亨分享,可在线阅读,更多相关《编译原理蒋宗礼第11章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.