编译原理第1章研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 编译程序的结构 源程序 语义分析和中间代码生成程序 语法分析程序 词法分析程序 代码优化程序 目标代码生成程序 目标程序 表 格 管 理 程 序 出 错 处 理 程 序 ( 字符串) * 1.3 编译程序的生成方法 对源语言和目标语言认真分析 设计编译算法 选择语言编制程序 调试编译程序 提交相关文档资料 编译程序是一个复杂的系统程序,要生成一个编译程序一般要考虑以下几方面: * 编译程序的自动生成 如目前已广为使用词法分析程序的自动生成系统LEX和语法分析程序自动生成系统YACC等,此外, 还有可用来自动产生整个编译程序的软件工具:编译程序产生器, 它的功能是将任一语言的词法规则、语法规则和语义解释的描述作为输入,自动生成该语言的编译程序。 随着编译技术和自动机理论的发展, 近年来已研制出了一些编译程序的自动生成系统。 * 编译程序的自动生成 生成编译程序的方法还常采用自编译方式和移植方式。 随着并行技术和并行语言的发展,处理并行语言的并行编译技术和将串行程序转换成并行程序的自动并行编译技术正在深入研究之中。 * 1.4 编译技术在软件开发中的应用 虽然我们只有少数人从事构造或维护程序语言编译程序的工作,但是,大部分系统软件和应用软件的开发,通常要用到编译的原理和技术。 * 1.4 编译技术在软件开发中的应用 例如,设计词法分析器的串匹配技术已用于正文编辑器、信息检索系统和模式识别程序;上下文无关文法和语法制导定义已用于创建诸如排版、绘图系统和语言结构化编辑器中,代码优化技术已用于程序验证器和从非结构化的程序产生结构化程序的编程之中。 * 本章小结 什么是编译程序 编译过程的五个阶段 编译程序的结构框图 编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。 词法分析、语法分析、语义分析和中间代码生成、代码优化、目标代码生成 * 本章小结 源程序 语义分析和中间代码生成程序 语法分析程序 词法分析程序 代码优化程序 目标代码生成程序 目标程序 表 格 管 理 程 序 出 错 处 理 程 序 ( 字符串) * * * 高级语言所写程序转换(翻译)成机器语言程序计算机才能执行 * 高级语言所写程序转换(翻译)成机器语言程序计算机才能执行 * * * * * * * * 编译原理 * 第1章 编译概述 什么是编译程序 参考 编译原理这门课程主要介绍设计和构造编译程序的基本原理和常用的技术和方法。 本章重点介绍编译程序的基本概念。 编译的过程 编译程序的结构 * 1.1 翻译程序与编译程序 翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成等价的另一种语言(称作目标语言)的程序(目标程序)。 高级语言程序 机器语言程序 翻译程序 #include stdio.h int main(void) { printf(hello, world\n); return 0; } 00 00 10 10….. * 1.1 翻译程序与编译程序 编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。 源程序 高级语言程序 编译程序 目标程序 汇编语言或者机器语言程序 * 程序运行阶段 采用编译方式在计算机上执行用高级语言编写的程序,需分阶段进行。 第一种情况: 源程序 编 译 程 序 机器语言 目标程序 初始数据 运行系统 结果 编 译 阶 段 运 行 阶 段 高级语言 程序 * 第二种情况: 源程序 编 译 程 序 机器 语言 目标 程序 初始数据 运行系统 结果 编 译 阶 段 运行阶段 汇 编 程 序 汇编 语言 目标 程序 汇 编 阶 段 高级语言 程序 程序运行阶段 * 1.2 编译过程与编译程序的基本结构 将英文句子 “I wish you success ”翻译成中文句子的大致过程是: 词法分析 语法分析 语义分析 修饰工作 翻译成文 * 编译过程 编译程序是将一种语言形式翻译成另一种语言形式,因此,其工作过程一般可划分为如下五个阶段: 词法分析 语法分析 语义分析和中间代码生成 代码优化 目标代码生成 * float r,h,s; s = 2*3.1416 * r *(r+h); 例如 计算圆柱体表面积的程序 片断如下: 编译过程 * 词法分析阶段的任

文档评论(0)

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

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

1亿VIP精品文档

相关文档