




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 编译原理 2 本课程学习任务本课程学习任务 l编译原理课程以介绍程序设计语言编译程序构造的 基本原理和设计方法为教学目标。通过本课程的学 习,一方面使学生掌握和理解编译系统的结构、工 作流程以及编译程序各组成部分的设计原理和实现 技术,获得分析、设计、实现和维护编译系统的初 步能力;另一方面,通过学习编译的理论和方法, 提高学生对程序设计语言、操作系统、计算机原理 和体系结构等课程知识的综合理解。 3 l编译技术集中体现了计算机科学发展的重要成果与 精华。ACM图灵奖是授予在计算机技术领域作出突出 贡献的科学家的最高奖励,自1966年设立以来,程 序设计语言、编译理论与方法的方面的得奖成果约 占总数的1/3。 l对于将来从事编译系统设计工作的学生来说,编译 原理课程将为其打下坚实的能力和知识基础;对于 从事其它工作的学生,也能够提高他们对计算机系 统总体的认识。此外,课程介绍的经典的语言分析 方法和工具,对于设计一些实用的工具和软件,如 自然语言理解、网络信息处理、网络协议的分析与 实现等,都是必备的基础。因此,编译原理课程是 高等学校培养计算机专业人才的核心课程。 本课程地位本课程地位 4 教材教材 l教材: 编译原理,张素琴 等编著,清华大学出版社 l参考书目: 编译程序设计原理,杜淑敏 等编著,北京大学 出版社 编译原理教程,胡元义 等编著,西安电子科技 大学出版社 l相关知识:程序设计语言、计算机组成原理、数据 结构、汇编语言、离散数学、操作系统等。 5 第1章 编译程序概论 l教学要求:本章讲解编译程序、 解释程序的基 本概念,概述编译过程,介绍编译程序的逻辑结 构和编译程序的组织形式。要求理解编译程序、 解释程序和遍的基本概念;掌握编译过程各阶段 的任务和编译程序逻辑结构及其各部分的基本功 能。 l教学重点:编译程序工作的基本过程及其各阶段 的基本任务,编译程序总体框架。 6 l基本概念 机器语言:能够被计算机的硬件系统直 接执行的指令程序。 汇编语言:将硬件指令用一些助记符表 示。如ADD表示加法操作,SUB表示减 法操作等等 高级语言:使用便于理解的自然语言。 7 语言处理程序 l解释程序(器):接受某种语言源程序,然后 直接解释执行源程序。 l编译程序(器):接受某种语言的源语 言程序后,将它改造成另一种逻辑上等价的目 标语言程序。 8 需预处理的源程序 预处理程序 源程序 编译程序 汇编程序 装配/连接编辑程序 目标汇编程序 可再装配的机器代码 绝对机器代码 可再装配目标文件 高级语言程序的高级语言程序的 处理过程处理过程 9 表 格 管 理 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 出 错 处 理 源程序 目标程序 编译的各个阶段编译的各个阶段 10 词法分析 词法分析的功能是从左到右读入源程序的每词法分析的功能是从左到右读入源程序的每 个字符,对构成源程序的字符流进行扫描和个字符,对构成源程序的字符流进行扫描和 分解,从而识别出一个个单词(也叫单词符分解,从而识别出一个个单词(也叫单词符 号或符号)。号或符号)。 依据:语言的构词规则。依据:语言的构词规则。 单词:逻辑上紧密相连的一组字符,这些字单词:逻辑上紧密相连的一组字符,这些字 符具有集体含义。符具有集体含义。 如:标识符、保留字(关键字或基本字)、如:标识符、保留字(关键字或基本字)、 算符、界符等。算符、界符等。 11 语法分析 语法分析的功给是将单词序列分解成各类语法分析的功给是将单词序列分解成各类 语法短语(也叫语法单位,句子),确定整语法短语(也叫语法单位,句子),确定整 个输入串是否构成一个语法上正确的程序。个输入串是否构成一个语法上正确的程序。 依据:语言的语法规则。依据:语言的语法规则。 12 语句的表示:语句的表示: 1.1.标识符标识符:=:=表达式表达式 是语句。是语句。 2.2.while (while (表达式表达式) ) do do 语句语句 if ( if (表达式表达式) ) then then 语句语句 else else 语句语句 都是语句。都是语句。 13 l语义分析的功能是审查源程序有无语义 错误,为代码生成阶段收集类型信息。 l语义分析主要能识别的语义错误有变量 没有声明就使用,变量重复声明,运算 对象类型是否匹配等等。 语义分析 14 中间代码生成 中间代码:一种结构简单、含义明确的记号系统中间代码:一种结构简单、含义明确的记号系统 。 原则:原则: 容易生成;容易生成; 容易将它翻译成目标代码。容易将它翻译成目标代码。 如四元式如四元式: (运算符,运算对象(运算符,运算对象1 1,运算对象,运算对象2 2,结果),结果) 将源程序生成一种内部表示形式,这种内部表将源程序生成一种内部表示形式,这种内部表 示形式叫中间代码。示形式叫中间代码。 15 如:源程序如:源程序 sum := first + count * 10sum := first + count * 10 生成的四元式可以是:生成的四元式可以是: ( ( inttorealinttoreal, 1010,- -,t1 )t1 ) ( *( *,id3id3, t1t1,t2 )t2 ) ( +( +,id2id2, t2t2,t3 )t3 ) ( :=( :=,t3t3,- -,id1)id1) id1id1id2id2id3id3 16 代码优化 ( ( inttorealinttoreal, 1010,- -,t1 )t1 ) ( *( *,id3id3, t1t1,t2 )t2 ) ( +( +,id2id2, t2t2,t3 )t3 ) ( :=( :=,t3t3,- -,id1)id1) ( *( *, id3id3, 10.010.0, t2 )t2 ) ( +( +,id2id2, t2t2,id1 )id1 ) ( *( *, id3id3, 10.010.0, t1 )t1 ) ( +( +,id2id2, t1t1,id1 )id1 ) 目的:使目标代码运行时间较短,占用空 间较小。 17 目标代码生成 任务任务:把中间代码变换成特定机器上:把中间代码变换成特定机器上 的绝对指令代码或可重定位的指令代的绝对指令代码或可重定位的指令代 码或汇编指令代码。码或汇编指令代码。 特点特点:与硬件系统结构和指令含义有:与硬件系统结构和指令含义有 关,涉及到硬件系统功能部件的运用关,涉及到硬件系统功能部件的运用 、机器指令的选择、各种数据类型变、机器指令的选择、各种数据类型变 量的存储空间分配以及寄存器和后缓量的存储空间分配以及寄存器和后缓 寄存器的调度等。寄存器的调度等。 18 中间代码:中间代码:( *( *,id3id3, 10.010.0, t1 )t1 ) ( + ( +,id2id2, t1t1,id1 )id1 ) 源程序:源程序:sum := first + count * 10sum := first + count * 10 目标代码:目标代码:MOVFMOVFid3,id3, R R2 2 MULF MULF10.0,10.0, R R2 2 MOVF MOVFid2,id2, R R1 1 ADDF ADDF R R1 1 , , R R2 2 MOV MOV R R1 1 , , id1id1 19 l符号表用来记录源程序中出现的标识符, 并收集每个标识符的各种属性信息。 l符号表是由若干记录组成的数据结构,每 个标识符在表中有一条记录,每条记录有 多个域,每个域记载标识符的一个属性。 符号表管理 20 表 格 管 理 程 序 词法分析程序 语法分析程序 语义分析程序 中间代码生成程序 代码优化程序 目标代码生成程序 出 错 处 理 程 序 源程序 目标程序 编译程序的结构编译程序的结构 21 有关名词:有关名词: 前端(前端(front endfront end):):主要依赖于源语言而与目主要依赖于源语言而与目 标机器无关的编译阶段。如:词法分析、语法分标机器无关的编译阶段。如:词法分析、语法分 析、语义分析、中间代码生成、部分优化工作、析、语义分析、中间代码生成、部分优化工作、 与前端有关的出错处理工作和符号表管理工作。与前端有关的出错处理工作和符号表管理工作。 后端(后端(back endback end):):依赖于目标机而一般不依赖依赖于目标机而一般不依赖 于源语言,只与中间代码有关的编译阶段。如:于源语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑协议书汇编15篇
- 1+X幼儿照护(初级)知到智慧树答案
- 《红楼梦》“三书”浅说知到智慧树答案
- 《创新创业过程与方法》知到智慧树答案
- 零售行业变革与挑战
- (高级)审计理论与实务知到智慧树答案
- 机电设备抗震加固与设计方案
- 供水管网工程施工人员培训方案
- 燃气项目施工临时设施方案
- 水稻小麦课件
- 厨房消防安全培训
- 小陈 税务风险应对常见指标与答复思路
- 2025年《中华人民共和国档案法》知识培训试题及答案
- 2026年高考政治一轮复习:必修2《经济与社会》知识点背诵提纲
- 2025至2030年中国建筑膜行业市场调查研究及发展趋势预测报告
- 2025年急诊急救试题(附答案)
- 2025年北京市中考语文试卷(含答案与解析)
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 实验报告-探究杠杆的平衡条件
- 第3章access2010查询操作-上传
- 钳工手工制作六角螺母详细
评论
0/150
提交评论