[工学]第1章 编译程序概论.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第1章 编译程序概论

编译原理 第1章 编译程序概论 教学要求:本章讲解编译程序、 解释程序的基本概念,概述编译过程,介绍编译程序的逻辑结构和编译程序的组织形式。要求理解编译程序、解释程序和遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。 教学重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。 基本概念 机器语言:能够被计算机的硬件系统直接执行的指令程序。 汇编语言:将硬件指令用一些助记符表示。如ADD表示加法操作,SUB表示减法操作等等 高级语言:使用便于理解的自然语言。 语义分析的功能是审查源程序有无语义错误,为代码生成阶段收集类型信息。 语义分析主要能识别的语义错误有变量没有声明就使用,变量重复声明,运算对象类型是否匹配等等。 符号表管理 符号表用来记录源程序中出现的标识符,并收集每个标识符的各种属性信息。 符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录,每条记录有多个域,每个域记载标识符的一个属性。 语言处理程序 解释程序(器):接受某种语言源程序,然后直接解释执行源程序。 编译程序(器):接受某种语言的源语 言程序后,将它改造成另一种逻辑上等价的目标语言程序。 两种方法数据处理时间不同? 区别:是否生成目标代码. 存储组织不同 解释程序比较慢,空间开销比较大 * * * * 本课程的地位 计算机科学与技术最重要的专业课之一,掌握编译方法和技术是每一个优秀计算机软件专业人员的必备素质。 很多被称为程序设计大师的人都是编译领域的高手.写出第一个微型机上运行的Basic语言的比尔盖茨,设计出Delphi的Borland的“世界上最厉害的程序员”, Sun的JAVA之父, 贝尔实验室的C++之父等等。 学习编译程序的构造原理和实现技术,不仅可以掌握编译程序本身的实现技术,同时也能够提高对程序设计语言的理解,提高语言的设计能力,提高开发大型软件的能力。 学习任务 掌握程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具。了解将高级程序设计语言源程序翻译成计算机能处理的目标代码的整个过程。 相关知识:程序设计语言、计算机体系组成原理、数据结构、操作系统等。 教材 教材: 《编译原理》,张素琴 等编著,清华大学出版社 参考书目: 《编译程序设计原理》,杜淑敏 等编著,北京大学出版社 《编译原理教程》,胡元义 等编著,西安电子科技大学出版社 成绩考核方法 平时成绩占50% 期末考试成绩占50%。 平时成绩为: 课堂考勤5% 平时作业15% 期中考试30% 编译程序(器):接受某种语言的源语言程序后,将它改造成另一种逻辑上等价的目标语言程序。 源语言:像Pascal 或c那样的高级语言 目标语言:像汇编语言 或机器语言那样的低级语言 需预处理的源程序 预处理程序 源程序 编译程序 汇编程序 装配/连接编辑程序 目标汇编程序 可再装配的机器代码 绝对机器代码 可再装配目标文件 高级语言程序的处理过程 表 格 管 理 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 出 错 处 理 源程序 目标程序 编译的各个阶段 词法分析 词法分析的功能是从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。 依据:语言的构词规则。 单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。 如:标识符、保留字(关键字或基本字)、算符、界符等。 (第四章) 例. 某源程序片断如下: begin var sum , first , count : real ; sum := first + count * 10 end. 保留字 begin 保留字 var 标识符 sum 逗号 , 标识符 first 逗号 , 标识符 count 冒号 : 保留字 real 分号 ; 标识符 sum 赋值号 := 标识符 first 加号 + 标识符 count 乘号 * 整数 10 保留字 end 界符 . 语法分析 语法分析的功能是将单词序列分解成各类语法短语(也叫语法单位,句子),确定整个输入串是否构成一个语法上正确的程序。 依据:语言的语法规则,即描述程序结构的规则。 通过语法分析确定整个输入串是否构成一个语法上正确的程序。 (第5,6,7章) 语句的递归定义: 标识符:=表达式 是语句。 while (表达式) do 语句 if (表达式) then 语句 else 语句 都是语句。 表达式的递归定义: 任何标识符是表达式。 任何常数是表达式. 若表达式1和表达式2是表达式,那么表达式1+表达式2,表达式1*

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档