版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译程序概论第1页,共21页,2023年,2月20日,星期四本课程学习任务编译原理课程以介绍程序设计语言编译程序构造的基本原理和设计方法为教学目标。通过本课程的学习,一方面使学生掌握和理解编译系统的结构、工作流程以及编译程序各组成部分的设计原理和实现技术,获得分析、设计、实现和维护编译系统的初步能力;另一方面,通过学习编译的理论和方法,提高学生对程序设计语言、操作系统、计算机原理和体系结构等课程知识的综合理解。第2页,共21页,2023年,2月20日,星期四编译技术集中体现了计算机科学发展的重要成果与精华。ACM图灵奖是授予在计算机技术领域作出突出贡献的科学家的最高奖励,自1966年设立以来,程序设计语言、编译理论与方法的方面的得奖成果约占总数的1/3。对于将来从事编译系统设计工作的学生来说,编译原理课程将为其打下坚实的能力和知识基础;对于从事其它工作的学生,也能够提高他们对计算机系统总体的认识。此外,课程介绍的经典的语言分析方法和工具,对于设计一些实用的工具和软件,如自然语言理解、网络信息处理、网络协议的分析与实现等,都是必备的基础。因此,编译原理课程是高等学校培养计算机专业人才的核心课程。
本课程地位第3页,共21页,2023年,2月20日,星期四教材教材:《编译原理》,张素琴等编著,清华大学出版社参考书目:《编译程序设计原理》,杜淑敏等编著,北京大学出版社《编译原理教程》,胡元义等编著,西安电子科技大学出版社相关知识:程序设计语言、计算机组成原理、数据结构、汇编语言、离散数学、操作系统等。
第4页,共21页,2023年,2月20日,星期四第1章编译程序概论教学要求:本章讲解编译程序、解释程序的基本概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式。要求理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。教学重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。第5页,共21页,2023年,2月20日,星期四基本概念机器语言:能够被计算机的硬件系统直接执行的指令程序。汇编语言:将硬件指令用一些助记符表示。如ADD表示加法操作,SUB表示减法操作等等高级语言:使用便于理解的自然语言。
第6页,共21页,2023年,2月20日,星期四语言处理程序解释程序(器):接受某种语言源程序,然后直接解释执行源程序。编译程序(器):接受某种语言的源语言程序后,将它改造成另一种逻辑上等价的目标语言程序。第7页,共21页,2023年,2月20日,星期四需预处理的源程序预处理程序源程序编译程序汇编程序装配/连接编辑程序目标汇编程序可再装配的机器代码绝对机器代码可再装配目标文件高级语言程序的处理过程第8页,共21页,2023年,2月20日,星期四表格管理词法分析语法分析语义分析中间代码生成代码优化目标代码生成出错处理源程序目标程序编译的各个阶段第9页,共21页,2023年,2月20日,星期四词法分析词法分析的功能是从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。依据:语言的构词规则。单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。如:标识符、保留字(关键字或基本字)、算符、界符等。第10页,共21页,2023年,2月20日,星期四语法分析语法分析的功给是将单词序列分解成各类语法短语(也叫语法单位,句子),确定整个输入串是否构成一个语法上正确的程序。依据:语言的语法规则。第11页,共21页,2023年,2月20日,星期四语句的表示:标识符:=表达式是语句。while(表达式)do语句
if(表达式)then语句else语句都是语句。第12页,共21页,2023年,2月20日,星期四语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。语义分析主要能识别的语义错误有变量没有声明就使用,变量重复声明,运算对象类型是否匹配等等。语义分析第13页,共21页,2023年,2月20日,星期四中间代码生成中间代码:一种结构简单、含义明确的记号系统。原则:容易生成;容易将它翻译成目标代码。如四元式:(运算符,运算对象1,运算对象2,结果)将源程序生成一种内部表示形式,这种内部表示形式叫中间代码。第14页,共21页,2023年,2月20日,星期四如:源程序
sum:=first+count*10生成的四元式可以是:(inttoreal, 10, -, t1)(*, id3, t1, t2)(+, id2, t2, t3)(:=, t3, -, id1)id1id2id3第15页,共21页,2023年,2月20日,星期四代码优化(inttoreal, 10, -, t1)(*, id3, t1, t2)(+, id2, t2, t3)(:=, t3, -, id1)(*, id3, 10.0, t2)(+, id2, t2, id1)(*, id3, 10.0, t1)(+, id2, t1, id1)目的:使目标代码运行时间较短,占用空间较小。第16页,共21页,2023年,2月20日,星期四目标代码生成任务:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。特点:与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的选择、各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。第17页,共21页,2023年,2月20日,星期四中间代码:(*, id3, 10.0, t1)(+, id2, t1, id1)源程序:sum:=first+count*10目标代码:MOVF id3, R2MULF 10.0, R2MOVF id2, R1ADDF R1, R2MOV R1, id1第18页,共21页,2023年,2月20日,星期四符号表用来记录源程序中出现的标识符,并收集每个标识符的各种属性信息。符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录,每条记录有多个域,每个域记载标识符的一个属性。符号表管理第19页,共21页,2023年,2月20日,星期四表格管理程序词法分析程序语法分析程序语义分析程序中间代码生成程序代码优化程序目标代码生成程序出错处理程序源程序目标程序编译程序的结构第20页,共21页,2023年,2月20日,星期四有关名词:前端(frontend):主要依赖于源语言而与目标机器无关的编译阶段。如:词法分析、语法分析、语义分析、中间代码生成、部分优化工作、与前端有关的出错处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智能化煤炭配送服务协议4篇
- 终止2025年度保险代理合同并规定终止费用分配2篇
- 2025年度生态旅游区绿化规划合同4篇
- 2025版绿化苗木养护及病虫害防治合同4篇
- 二零二五年度高速公路安全监控设备采购协议3篇
- 2025年度销售人员聘用合同范本:教育行业销售团队组建合同
- 二零二五年度网络直播临时演员聘用协议4篇
- 二零二五年金融机构保安劳务派遣安全协议范本3篇
- 2025年消防工程验收鉴定与消防安全教育培训合同3篇
- 二零二五年甲乙间商业贷款及担保合同6篇
- 高二物理竞赛霍尔效应 课件
- 金融数学-(南京大学)
- 基于核心素养下的英语写作能力的培养策略
- 现场安全文明施工考核评分表
- 亚什兰版胶衣操作指南
- 四年级上册数学教案 6.1口算除法 人教版
- DB32-T 3129-2016适合机械化作业的单体钢架塑料大棚 技术规范-(高清现行)
- 6.农业产值与增加值核算统计报表制度(2020年)
- 人工挖孔桩施工监测监控措施
- 供应商物料质量问题赔偿协议(终端)
- 物理人教版(2019)必修第二册5.2运动的合成与分解(共19张ppt)
评论
0/150
提交评论