编译原理_01引论研讨.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理_01引论研讨

* 第1章 引 论 1.1 什么是编译程序 1.2 编译过程和编译程序的结构 1.3 解释程序和一些软件工具 1.4 程序设计语言范型 主要内容 课题: 引论 目的要求: 1.了解编译技术的产生与发展; 2.掌握并理解编译技术中的基本概念和术语;? 3.掌握编译程序的结构及编译各阶段的基本功能。 教学重点: 1.编译程序的基本结构; 2.编译过程各阶段的基本功能 教学难点 : 编译阶段的组合 教学课时: 2 教学方法: 多媒体教学 教学内容和步骤 :(如下) 第 一 讲 1.1 什么是编译程序 计算机只能直接执行用机器语言编写的程序,但是机器语言对计算机依赖性强、直观性差、编写程序工作量大、程序结构也欠清晰。因此人们多数都是用接近自然语言的高级程序设计语言来编写程序,但计算机不能直接接受和执行用高级语言编写的这些程序,需要通过一个翻译程序将它翻译成等价的机器语言程序才能执行。翻译程序的功能是:把一种语言(称做源语言)所写的程序(源程序)翻译成与之等价的另一种语言(称做目标语言)的程序(目标程序)。 源程序 翻译程序 目标程序 翻译程序工作示意图: 编译程序是翻译程序的一种。 编译程序 高级语言程序 (源程序) 低级语言程序 (目标程序) 编译程序是现代计算机系统的基本组成之一,多数计算机系统都配备了多个高级语言编译程序,有时为了某种需要,甚至会为某一高级语言配备几个不同性能的编译程序。 采用编译方式在计算机上执行用高级语言编写的程序,一般分为两大阶段进行,即编译阶段和运行阶段 : 编译程序 运行系统 目标程序 输入数据 计算结果 源程序 源程序经过编译后生成的目标程序可以使机器代码,也可以使汇编语言程序。如果是汇编语言程序,那么在运行之前还要进行汇编。 需预处理的源程序 预处理程序 源程序 编译程序 汇编程序 连接/装配程序 目标汇编程序 可再装配的机器代码 绝对机器代码 可再装配目标文件 高级语言程序的处理过程 一个源程序可能被分成多个模块存放在不同的文件中,在编译之前需要将这些模块汇集到一起,这个过程称为预处理。 1.2 编译过程和编译程序的结构 编译过程一般可分为六个阶段: 1.词法分析; 2.语法分析; 3.语义分析; 4.中间代码生成; 5.代码优化; 6.目标代码生成; 表格管理和出错处理分布在上述每个阶段之中. 并非所有的编译程序都分成六个阶段. 1.2.1 编译过程概述 表 格 管 理 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 出 错 处 理 源程序 目标程序 编译的各个阶段 从左到右读入源程序的每个字符,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也叫单词符号或符号)。 单词:逻辑上紧密相连的一组字符,这些字符具有集体含义。 如:标识符、保留字(关键字或基本字)、算符、界符、数字等。 在识别单词时,单词间的空格被滤掉。 词法分析 例. 某源程序片断如下: begin var sum,first,count:real; sum := first + count * 10 end. 保留字 begin 保留字 var 标识符 sum 逗号 , 标识符 first 逗号 , 标识符 count 冒号 : 保留字 real 分号 ; 标识符 sum 赋值号 := 标识符 first 加号 + 标识符 count 乘号 * 整数 10 保留字 end 界符 . 主要功能:依据语言的语法规则将单词序列分解成各类语法短语(也叫语法单位),如“程序”、“语句”、“表达式”等。 通过语法分析确定整个输入串是否构成一个语法上正确的程序。 语法分析是编译过程的重要组成部分 语法分析 语法分析识别的语法成分通常用递归的方式定义。 如,表达式的递归定义如下: 1.任何标识符是表达式。 2.任何常数(整常数、实常数)是表达式。 3.若表达式1和表达式2都是表达式,那么 表达式1 + 表达式2 表达式1 * 表达式2 (表达式1) 都是表达式。 id1:=id2+id3*10 的语法树 赋值语句 标识符 表达式 表达式 + 表达式 表达式 标识符 整数 标识符 := 表达式 * id1 sum id2 first id3 count 10 语法分析的过程形成一棵语法树 id1:=id2+id3*10 的语法树的另一种形式 := id1 + id2 * id3 10 依据语言的语义规则对语法结构做静态语义检查。如:类型检查。 := id1 + id2 * id3 10 intto

文档评论(0)

bbnm58850 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档