- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章节 编译概述
编译原理 李冬梅 为什么要学习编译原理 程序设计语言是计算机软件专业的重要核心 学习编程的历程: C语言--汇编语言--数据结构 为什么要学习编译原理 必修主干课程,操作系统和编译系统构成程序设计者与计算机之间的基本界面。 通过学习该课程,掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统结构和机理。能运用所学技术解决实际问题,能独立编写一个小型编译系统。 此外,通过学习编译原理可以更好地理解程序语言的内部机制,从而更好地理解和运用程序设计语言。能运用编译程序构造的原理和技术完成相关软件工具的设计和开发工作。 为什么要学习编译原理 计算机软件学科理论与实践相结合的典范。 在学习过程中既要注重该领域在理论上取得的完美结论,也要注重这些理论在实际中的应用。 李冬梅,施海虎,《编译原理》,人民邮电出版社 教学内容 1.1.程序的翻译 1.2. 编译程序的组成 1.3. 编译程序构造 1.4. 编译技术的应用及发展 低级语言(Low level Language) 字位码、机器语言、汇编语言 特点:与特定的机器有关,功效高,但使用复杂、繁 琐、费时、易出错 高级语言 -- Fortran、Pascal、C 语言等 特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。 源程序的编译和运行 编译或汇编阶段 运行阶段 工作过程 “编译-解释执行”系统 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。 翻译和编译工作的比较 并行编译技术 目的:提高并行计算机体系结构的性能,超大规模计算的日益增长的需求 两种实现方法 利用重构技术将串行程序并行化 直接编写并行程序 交叉编译技术 有关术语 中间代码生成(intermediate code generation) This is where the intermediate representation of the source program is created.We want this representation to be easy to generate,and easy to translate into the target program.The representation can have a variety of forms,but a common one is called three-address code or 4- tuple code. 任务:对中间代码进行加工变换,以得到高质量的目标代码 四、代码优化 y t3 = (4) t3 x t2 + (3) t2 t1 r * (2) t1 -- 6 Inttoreal (1) 结果 右运算对象 左运算对象 运算符 y x t1 + (2) t1 6.0 r * (1) 结果 右运算对象 左运算对象 运算符 t1 -- 6 inttoreal (1) y t3 = (4) 例:y = x + r * 6 有关术语 代码优化(Intermediate code optimization) The optimizer accepts input in the intermediate representation and output a version still in the intermediate representation .In this phase,the compiler attempts to produce the smallest,fastest and most efficient running result by applying various techniques. 五、目标代码生成 任务:把中间代码变换成特定机器上的低级语言代码 mov r, R1 mul #6.0, R1 mov x, R2 add R1, R2 mov R2, y y x t1 + (2) t1 6.0 r * (1) 结果 右运算对象 左运算对象 运算符 目标代码 生成程序 代码优化 程序 语义分析 生成中间 代码 语法分析 程序 词法分析 程序 编译过程小结 S.P O.P 按逻辑功能不同,可将编译过程划分为五个基本阶 段,与此相对应,我们将实现整个编译过程的编译程序划 分为五个逻辑阶段(即五个逻辑子过程)。 每个阶段中都要有: 符号表管理和错误处理 诊察错误,并能报告用户错误性质和位置 错误处理能力的优劣是衡量编译程序质量好坏的一个重要指标。 填表:把源程序中的信息和编译过程中所产生的信息登记在
文档评论(0)