版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理本课程学习任务教学目的: ①掌握编译原理的基本知识。 ②掌握一些典型问题的解决办法。 ③对程序有进一步的认识。学习方法: ①了解整体结构。 ②掌握解决具体问题的具体办法。 ③掌握基本概念。编译技术集中体现了计算机科学发展的重要成果与精华。ACM图灵奖是授予在计算机技术领域作出突出贡献的科学家的最高奖励,自1966年设立以来,程序设计语言、编译理论与方法的方面的得奖成果约占总数的1/3。对于将来从事编译系统设计工作的学生来说,编译原理课程将为其打下坚实的能力和知识基础;对于从事其它工作的学生,也能够提高他们对计算机系统总体的认识。此外,课程介绍的经典的语言分析方法和工具,对于设计一些实用的工具和软件,如自然语言理解、网络信息处理、网络协议的分析与实现等,都是必备的基础。因此,编译原理课程是高等学校培养计算机专业人才的核心课程。
本课程地位教材教材:《编译原理》,张素琴等编著,清华大学出版社参考书目:《编译程序设计原理》,杜淑敏等编著,北京大学出版社《编译原理教程》,胡元义等编著,西安电子科技大学出版社相关知识:程序设计语言、计算机组成原理、数据结构、汇编语言、离散数学、操作系统等。
第1章编译程序概论教学要求:本章讲解编译程序、解释程序的基本概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式。要求理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。教学重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。基本概念机器语言:能够被计算机的硬件系统直接执行的指令程序。汇编语言:将硬件指令用一些助记符表示。如ADD表示加法操作,SUB表示减法操作等等高级语言:使用便于理解的自然语言。
语言处理程序解释程序(器):接受某种语言源程序,然后直接解释执行源程序。编译程序(器):接受某种语言的源语言程序后,将它改造成另一种逻辑上等价的目标语言程序。需预处理的源程序预处理程序源程序编译程序汇编程序装配/连接编辑程序目标汇编程序可再装配的机器代码绝对机器代码可再装配目标文件高级语言程序的处理过程表格管理词法分析语法分析语义分析中间代码生成代码优化目标代码生成出错处理源程序目标程序编译的各个阶段词法分析词法分析的功能是从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。依据:语言的构词规则。单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。如:标识符、保留字(关键字或基本字)、算符、界符等。语法分析语法分析的功给是将单词序列分解成各类语法短语(也叫语法单位,句子),确定整个输入串是否构成一个语法上正确的程序。依据:语言的语法规则。语句的表示:标识符:=表达式是语句。while(表达式)do语句if(表达式)then语句else语句都是语句。语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。语义分析主要能识别的语义错误有变量没有声明就使用,变量重复声明,运算对象类型是否匹配等等。语义分析中间代码生成中间代码:一种结构简单、含义明确的记号系统。原则:容易生成;容易将它翻译成目标代码。如四元式:(运算符,运算对象1,运算对象2,结果)将源程序生成一种内部表示形式,这种内部表示形式叫中间代码。如:源程序
sum:=first+count*10生成的四元式可以是:(inttoreal, 10, -, t1)(*, id3, t1, t2)(+, id2, t2, t3)(:=, t3, -, id1)id1id2id3代码优化(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)目的:使目标代码运行时间较短,占用空间较小。目标代码生成任务:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。特点:与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的选择、各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。中间代码:(*, id3, 10.0, t1)(+, id2, t1, id1)源程序:sum:=first+count*10目标代码:MOVF id3, R2MULF 10.0, R2MOVF id2, R1ADDF R1, R2MOV R1, id1符号表用来记录源程序中出现的标识符,并收集每个标识符的各种属性信息。符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录,每条记录有多个域,每个域记载标识符的一个属性。符号表管理表格管理程序词法分析程序语法分析程序语义分析程序中间代码生成程序代码优化程序目标代码生成程序出错处理程序源程序目标程序编译程序的结构有关名词:前端(frontend):主要依赖于源语言而与目标机器无关的编译阶段。如:词法分析、语法分析、语义分析、中间代码生成、部分优化工作、与前端有关的出错处理工作和符号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年黄河水利职业技术学院高职单招职业技能考试模拟试卷附参考答案详解【模拟题】
- 2025年许昌幼儿师范高专单招职业技能考试题库附完整答案详解【考点梳理】
- 2026年贺兰山职业学院高职单招职业技能考试题库附参考答案详解(巩固)
- 2024年湘盛职业学院单招职业技能考试模拟试卷及参考答案详解(典型题)
- 2025年舂盛职业学院单招职业技能考试题库附参考答案详解【轻巧夺冠】
- 2027年重庆乌江职业学院高职单招职业技能考试题库【轻巧夺冠】附答案详解
- 2025年齐鲁师范学院专科部单招综合素质考试模拟试卷附答案详解【考试直接用】
- 2027年湖南高尔夫旅游职业学院单招综合素质考试模拟试卷及参考答案详解(预热题)
- 2025年江西省鹰潭市单招综合素质考试模拟试卷附答案详解【巩固】
- 2025年忻州职业技术学院高职单招职业技能考试模拟试卷及完整答案详解
- 2026学年河南省永城市六年级数学期末自测重点试卷(附答案)详细答案和解析
- 2026年乒乓球裁判证试题(附答案)
- 眉山市2026年医务社会工作服务岗招募(26人)笔试模拟试题及答案详解
- 2025年设备监理师《设备工程质量管理与检验》真题及答案解析
- 华为任职资格体系(6版)
- 第9课《木兰诗》课件- 统编版语文七年级下册
- 《化工企业安全生产与电气仪表管》课件-专题3-1 防爆电气基础与管理
- 2026年移动式压力容器充装R2作业证考试练习题库含答案
- 呼吸科终末期患者管理
- 医疗器械经营质量管理规范现场检查原则试卷含答案
- 2026大疆在线测评题库
评论
0/150
提交评论