网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理PPT教学课件-第1章 编译引论.ppt

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

为什么要学习编译原理 程序设计语言是计算机软件专业的重要核心 学习编程的历程: C语言--汇编语言--数据结构 为什么要学习编译原理 计算机软件学科理论与实践相结合的典范。 在学习过程中既要注重该领域在理论上取得的完美结论,也要注重这些理论在实际中的应用。 教学内容 1.1.程序的翻译 1.2. 编译程序的组成 1.3. 编译程序构造 1.4. 编译技术的应用及发展 低级语言(Low level Language) 字位码、机器语言、汇编语言 特点:与特定的机器有关,功效高,但使用复杂、繁 琐、费时、易出错 高级语言 -- Fortran、Pascal、C 语言等 特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。 源程序的编译和运行 编译或汇编阶段 运行阶段 工作过程 “编译-解释执行”系统 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。 翻译和编译工作的比较 并行编译技术 目的:提高并行计算机体系结构的性能,超大规模计算的日益增长的需求 两种实现方法 利用重构技术将串行程序并行化 直接编写并行程序 交叉编译技术 管理各种符号表(常数、标号、变量、过程、结构……) 查、填(登记、查找)源程序中出现的符号和编译程序生成的符号,为编译的各个阶段提供信息 辅助语法检查、语义检查 完成静态绑定、管理编译过程 Hash表、链表等各种查、填表技术 进行各种错误的检查、报告、纠正,以及相应的续编译处理(如:错误的定位与局部化) 词法:拼写、定义、…… 语法:语句结构、表达式结构、…… 语义:类型不匹配、…… 模块分类 编译程序8项功能对应8个模块 翻译 辅助 符号表管理 出错处理 中间代码生成 代码优化 目标代码生成 词法分析 语法分析 语义分析 分析 典型的编译程序具有7个逻辑部分 S.P O.P 语义分析及生成中间代码程序 目标代码生成程序 代码优化程序 语法分析程序 词法分析程序 错 误 处 理 符 号 表 管 理 第一遍 第二遍 …… S.P 中间形式1 S.P 中间形式2 C2 C1 S.P O.P 上一遍的结果是下一遍的输入,最后一遍生成目标程序。 对源程序(包括源程序中间形式)从头到尾扫描一次,并做有关的加工处理 ,生成新的源程序中间形式或目标程序,通常称之为一遍。 遍 一遍扫描即可完成整个编译工作的称为一遍扫描编译程序 遍的划分视具体情况而定(内存的大小、源语言的繁简、目标程序质量的高低) 优点: 1、减少对内存容量的要求 2、编译程序结构清晰、各遍功能独立、相互联系简单 缺点: 增加读写中间文件的次数,降低效率 根据编译程序各部分功能,将编译程序分成前端和后端 前端:通常将与源程序有关的编译部分称为前端。 词法分析、语法分析、语义分析、中间代码生成 ---分析部分 特点:与源语言有关 后端:与目标机有关的部分称为后端。 代码优化、代码生成        ---综合部分 特点:与目标机有关 1.2.3 编译阶段的组合 .java java源程序文件 .class 二进制字节码文件 Java虚拟机(JVM) 本地计算机系统 编译 同一前端+不同后端 ? 不同机器构成同一语言的编译程序 例如Java语言 同一前端+不同后端 ? 不同机器构成同一语言的编译程序 例如.NET框架 不同前端+同一后端 ? 同一机器生成几个语言的编译程序 例如GCC 构造编译程序必须精通: 源 语 言 目标语言 编译方法 1.3 编译程序的构造 T 形图 表示语言翻译的 T 形图 源语言 表示语言 目标语言 功能 1)交叉编译(Cross Compiling)/移植 Q1:A机上有一个C语言编译器,是否可利用此编译器实现B机上的C语言编译器? 条件:A 机有 C 语言的编译程序(P1) 目的:实现 B 机的 C 语言的编译(P3) 1. (人)用C语言编制B机的C编译程序P0(C→B) C语言 C语 言 B机器 P0 C语言 A机器 A机器 P1 C语言 A机器 B机器 P2 2. (A机的C编译P1)编译P0,得到在A机上可运行的P2(C→B) C语言 C语言 B机器 P0 C语言 A机器 A机器 P1 C语言 A机器 B机器 P2 获得

文档评论(0)

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

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

1亿VIP精品文档

相关文档