1编译技术概述讲解
4. 代码优化 代码优化的任务是对前阶段产生的中间代码进行等价变换或改造,以期获得更为高效即省时间和空间的目标代码。优化主要包括局部优化和循环优化等,例如上述四元式经局部优化后得: (1) ( *, 6.28, r, T2 ) (2) ( +, h, r, T3 ) (3) ( *, T2, T3, T4 ) (4) ( =, T4, __, s ) 5.目标代码生成 目标代码生成的任务是将中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。 表格管理和错误处理 编译程序在工作过程中需要建立一些表格,以登记源程序中所提供的或在编译过程中所产生的一些信息,编译各个阶段的工作都涉及到构造、查找、修改或存取有关表格中的信息,因此,在编译程序中必须有一组管理各种表格的程序。 在编译程序的各个阶段中,都要涉及表格管理和错误处理。 表格管理和错误处理 一个好的编译程序在编译过程中,应具有广泛的程序查错能力,并能准确地报告错误的种类及出错位置,以便用户查找和纠正,因此,在编译程序中还必须有一个出错处理程序。 编译程序的结构 源程序 语义分析和中间代码生成程序 语法分析程序 词法分析程序 代码优化程序 目标代码生成程序 目标程序 表 格 管 理 程 序 出 错 处 理 程 序 ( 字符串) 上述五个阶段是编译程序的五个主要功能,设计编译程序可按不同的执行流程来组织上述工作。 一个编译过程可分为一遍、两遍或多遍完成,每一遍完成所规定的任务。 编译程序的分遍: “遍”是指编译程序对源程序或其等价的中间语言程序从头到尾扫描一遍,并完成规定任务的过程。 分多遍完成编译过程可以使整个编译程序的逻辑结构清晰,但会增加读写中间文件的次数,从而消耗过多的时间。 例如,分3遍完成 第一遍只完成词法分析的任务, 第二遍完成语法分析和语义加工工作并生成中间代码, 第三遍再实现代码优化和目标代码生成。 条件允许可一遍完成整个翻译工作。 1.3 编译程序的生成方法 对源语言和目标语言认真分析 设计编译算法 选择语言编制程序 调试编译程序 提交相关文档资料 编译程序是一个复杂的系统程序,要生成一个编译程序一般要考虑以下几方面: 编译程序的生成方法 1.自编译:用某种高级语言书写自己的编译程序称为自编译。 2.交叉编译:是指用A机器上的编译程序来产生可在B机器上运行的目标代码。 3.移植:是指A机器上的某种高级语言的编译程序稍加改动后在B机器上运行。 4.自展 确定一个非常简单的核心语言L0,然后用机器语言或汇编语言书写它的编译程序T0, 再把语言L0扩充到L1,并用L0编写L1的编译程序T1(即自编译), 这样不断扩展下去,直到完成所要求的编译程序为止。 5. 并行编译技术 编译程序的自动生成 词法分析程序自动生成系统LEX 语法分析程序自动生成系统YACC 随着编译技术和自动机理论的发展, 近年来已研制出了一些编译程序的自动生成系统。 编译程序产生器:自动产生整个编译程序的软件工具 将任一语言的词法规则、语法规则和语义解释的描述作为输入,自动生成该语言的编译程序。 编译程序的自动生成 1.4 编译技术在软件开发中的应用 虽然我们只有少数人从事构造或维护程序语言编译程序的工作,但是,大部分系统软件和应用软件的开发,通常要用到编译的原理和技术。 1.4 编译技术在软件开发中的应用 设计词法分析器的串匹配技术已用于正文编辑器、信息检索系统和模式识别程序; 上下文无关文法和语法制导定义已用于创建诸如排版、绘图系统和语言结构化编辑器中; 代码优化技术已用于程序验证器和从非结构化的程序产生结构化程序的编程之中。 本章小结 什么是编译程序 编译过程的五个阶段 编译程序的结构框图 编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。 词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成 本章小结 源程序 语义分析和中间代码生成程序 语法分析程序 词法分析程序 代码优化程序 目标代码生成程序 目标程序 表 格 管 理 程 序 出 错 处 理 程 序 ( 字符串) * * * 高
您可能关注的文档
- 1机械安全防护装置的设计安装要求讲解.ppt
- 1汽轮机说明书讲解.doc
- 1湘教版八年级上册滚滚长江讲解.ppt
- 1环境生物技术概论讲解.ppt
- 1温室效应与温室气体讲解.ppt
- 1生物药物分析与检验概论讲解.ppt
- 1电路模型和电路定律讲解.ppt
- 1电工试题讲解.doc
- 1王树群-能源与动力工程专业概论-课件-第一章讲解.ppt
- 1男孩女孩看过来讲解.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 部编版(26春)小学语文一年级下册教学设计全册.docx VIP
- 春节复工煤矿工人培训教案.pptx VIP
- Haier海尔蒸箱ST450-30S说明书.pdf
- Joyoung九阳电饭煲F30S-S160使用说明书.pdf
- 2025年新疆中考物理试题(含答案详解)原卷.pdf
- 79博客-目录书签跳转版.pdf VIP
- 计算智能 课件全套 第1--11章 绪论、模糊系统理论---新型群智能优化算法.pptx
- 2025年国庆节后煤矿复产复工'六个一'安全资料汇编.docx VIP
- 2023中国生物材料大会会议手册-ok.pdf VIP
- Midea 美的 ET1065QL-01SE嵌入式电烤箱 说明书.pdf
原创力文档

文档评论(0)