郑州大学编译原理第1章.ppt

上传人:赵** 文档编号:65767175 上传时间:2022-12-08 格式:PPT 页数:26 大小:377KB
返回 下载 相关 举报
郑州大学编译原理第1章.ppt_第1页
第1页 / 共26页
郑州大学编译原理第1章.ppt_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《郑州大学编译原理第1章.ppt》由会员分享,可在线阅读,更多相关《郑州大学编译原理第1章.ppt(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、编编 译译 原原 理理赵东赵东明明课程目标掌握高级语言的 编译原理和方法第一章 引 论l 什么是编译程序l 编译过程概述l 编译程序的结构l 编译程序与程序设计环境l 编译程序的生成1.1 什么叫编译程序计算机是如何实现用户的计算需求?1.1 什么叫编译程序 大多数用户是利用高级语言为工具编程来实现需求的1.1 什么叫编译程序 为什么不能执行源程序 test.c?必须翻译成机器语言程序test.exe 1.1 什么叫编译程序 计算机如何执行高级语言程序?实现用户的计算需求 高级语言的作用?首先将高级语言程序翻译为机器语言程序 然后运行机器语言程序求得计算结果 翻译程序高级语言程序 低级语言程序

2、将一种语言程序转换成逻辑上等价的另一种语言程序 编译程序(C C、C+C+)(汇编、机器语言)解释程序 以源程序作为输入,边解释边执行源程序本身,并不产生目标程序。源目标 编译程序的分类 诊断编译程序 Diagnostic CompilerDiagnostic Compiler (方便调试)优化编译程序 Optimizing CompilerOptimizing Compiler (提高目标代码效率)交叉编译程序 Cross CompilerCross Compiler (宿主机与目标机不同)可变目标编译程序 RetargetableRetargetable Compiler Compiler

3、 (便于移植)编译程序的发展史 Compiler是随着高级语言的发展而发展的。第一个编译程序是FORTRAN编译程序 Algol 60语言是计算机语言的研究成为一门科学的标志。1.2 编译过程概述 编译程序的工作过程:源程序 目标程序*.C*.C *.exe*.exe编译程序Turbo CTurbo C例如例如例如:英文句子 中文句子 His words came out in qiack succession.(1)词法分析 识别出一个个单词,并指出单词错误。quick(2)语法分析:各类语法范畴。主语:His words 谓语:came out 状语:in quick succession

4、 (3)初步翻译:他的话用快的连续的方式说出来。(4)优化:in quick succession 机关枪似的。(5)译文:他说话像机关枪似的。1.2 编译过程概述编译程序的五个阶段:l词法分析l语法分析l语义分析与中间代码产生l优化l目标代码生成例如:for (i=1;i=N;i+)基本字 for 标识符 i N 常 数 1 界 符 ();运算符 =+词法分析任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词(或符号)。(线性分析)描述词法规则的工具 正则式、有限自动机、正规文法 语法分析 任务:在词法分析的基础上,根据语言的语法规则,把单词串分解成各类语法单位(语法范畴

5、)。描述语法规则的工具:上下文无关文法例如:z=x+0.618*y ;z=x+0.618*y ;语义分析与中间代码产生 任务:对各类语法范畴,分析其含义,并进行初步翻译、产生中间代码。描述语义规则的工具:属性文法(2)中间代码的翻译 (独立于具体硬件、且含义明确的记号系统)(1)静态语义检查 (变量是否定义、类型是否正确)举例:Z:=X+0.618*Y Z:=X+0.618*Y;序号算符左操作数 右操作数结果(1)*0.6180.618Y YT1T1(2)+X XT1T1T2T2(3):=T2T2Z Z对应的中间代码形式(四元式):优化 任务:对前段产生的中间代码进行加工变换,力求在最后阶段能

6、产生出更高效的目标代码。优化的原则:程序的等价变换规则举例 for(k=1;kjk k100100(9)(9)(3)*1010k kT1T1(4)+a aT1T1m m(5)*1010k kT2T2(6)-b bT2T2n n(7)+k k1 1K K(8)j j(2)(2)(9)中间代码:序号算符左操作数右操作数结果(1):=:=a am m(2):=:=b bn n(3):=:=1 1K K(4)jjk k100100(9)(9)(5)+m m1010m m(6)-n n1010n n(7)+k k1 1K K(8)j j(4)(4)(9)优化后的中间代码:目标代码生成任务:把中间代码变换

7、成依赖于特定机器上的低级语言代码。目标代码的三种形式:(1)绝对指令代码 (2)汇编指令代码 (3)可重定位的指令代码 1.3 编译过程的结构 词法分析器 语法分析器 语义分析与中间代码产生器 优化器 目标代码生成器 出 错 处 理表 格 管 理源程序源程序单词符号单词符号语法单位语法单位中间代码中间代码中间代码中间代码目标代码目标代码遍(pass)对源程序或源程序的中间结果从头至尾扫描一次,并做有关的加工处理技术,并生成新的中间结果或目标程序。编译前端:与源语言有关,与目标机无关的部分。(词法分析、语法分析、语义分析与 中间代码生成、优化 )编译后端:与源语言无关,与目标机有关的部分。(优化

8、、目标代码生成)1.4 编译程序与程序设计环境l编辑程序(智能提示、词法查错)l编译程序l连接程序l调试工具l配置管理程序l控制流分析工具1.5 编译程序的生成l 机器/汇编语言直接编写l 在现有编译器基础上用高级语言编写l 先实现语言的内核编译,再进行自编译扩展l 先实现某语言的编译,再用该语言实现另一语言的编译,即编译编译程序l 利用编译程序产生器输入源语言和目标语言的形式描述而 自动产生自动产生 编译程序作业(1)一、术语解释 翻译程序 编译程序 解释程序 遍 编译前端 编译后端 二、简答:1.编译程序分为哪几个阶段?各阶段的任务是什么?2.描述词法规则、语法规则和语义规则的工具是什么?3.画出编译程序的结构框图。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com