编译原理01分析.ppt

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

编 译 原 理 西安电子科技大学 软件工程研究所 张立勇 题外话 题外话(续1) 题外话(续2) 题外话(续3) 题外话(续4) 第一章 引言 1 计算机语言举例(续1) 1 计算机语言举例(续2) 2 按范型划分的程序设计语言 3 其他面向特定应用领域的语言 1.2 语言之间的翻译 1.3 编译器与解释器 1.3 编译器与解释器(续) 1.4 编译器的工作原理与基本组成 1.4.1 通用程序设计语言的主要成份 1.4.2 以阶段划分编译器 1.4.3 编译器各阶段的工作 1.4.3 编译器各阶段的工作(续1) 1.4.3 编译器各阶段的工作(续2) 1.4.3 编译器各阶段的工作(续3) 1.4.4 编译器的分析/综合模式 1.4.4 编译器的分析/综合模式(续1) 第-次课 结束 1.4.2 以阶段划分编译器 1.4.3 编译器各阶段的工作 1.4.3 编译器各阶段的工作(续1) 1.4.3 编译器各阶段的工作(续2) 1.4.3 编译器各阶段的工作(续3) 1.4.4 编译器的分析/综合模式 1.4.4 编译器的分析/综合模式(续1) 1.4.5 编译器扫描的遍数 1.5 编译器的编写 1.6 本章小结 第一章 结束 例6 一Pascal的过程如下 每个阶段将程序完整分析一遍的工作模式称为一遍扫描。早期编译器的一遍定义为从外存读入内存再写到外存; 确定扫描遍数的因素: 软、硬件条件,如内存太小,或全局优化 语言结构,如规定标识符的先声明后引用 … x := f(a, b, c); … function f(a:integer; b:integer):integer; 编译技术,如拉链-回填 … goto lab1; … lab1: … 直接使用汇编语言和程序设计语言; 利用编译器编写工具:词/语法、语法制导翻译、代码生成、数据流分析等; 基于编译器基础架构的编译器构造系统(开放式编译器,如GCC、SUIF等)。 1.语言与语言的翻译 2.编译器的基本组成(工作) 3.编译器的分析/综合模式,编译器基础架构 4.扫描遍数 5.编译器的编写 其它 作业:教材中除标记*的全做;根据课程进度做;第二、五章交一次,第三、四章交两次; 课代表:收缴作业、联系上机、反映同学意见,等 答疑:时间(地点); 上机作业:交上机报告,作业由辅导教师验收。 返回 (1) procedure sample(y: integer); {过程头} (2) var x : integer; {过程体(开始)} (3) begin x := y; (4) if x100 then x := 0 (5) end; {过程体(结束)} (1)是过程头,它是一个声明性的语句,为使用者提供调用信息,包括过程名、参数、返回值(若有的话)等。(接口) (2)至(5)是过程体,它是一个语句序列。语句序列中既包括声明性语句也包括操作性语句。(实现) (2)是声明性语句,而(3)至(5)是操作性语句。 编译器对声明性语句的处理一般是生成相应的环境(存储空间),而对操作性语句则是生成此环境中的可执行代码序列。 为了便于编译器的处理,操作性语句中使用的每个操作对象,均应在使用前声明,即符合先声明后引用的原则。 * * 一、本课程讨论的领域和希望达到的目的 1.2 CCC 2002 中国计算机科学与技术学科教程(China Computing Curricula 2002,CCC2002)提出的计算机科学与技术学科的知识体系,包括了14个基本的知识领域。与本课程相关的: 1.程序设计基础(PF):程序设计基本结构、算法与问题求解、基本数据结构、递归、事件驱动程序设计。(PLA) 2.程序设计语言(PL):程序设计语言概论、虚拟机、语言翻译简介、声明和类型、抽象机制、面向对象程序设计(以上是核心);函数程序设计、语言翻译系统、类型系统、程序设计语言的语义、程序设计语言的设计(以上是选修)。(PLA、PLT、PLD) 1.1 领域 程序设计语言的应用-程序设计(PLA) 程序设计语言的翻译-编译器的构造(PLT) 程序设计语言的设计-语法、语义(PLD) 1.3 目的 1.了解PL的基本要素、工作原理、语言翻译的基本方法; 2.用不同的PL进行程序设计,即自学计算机语言的能力; 3.具备语言翻译的基本技能。 二、学习方法 2.1 本课程的特点 理论与实践并重 理论学习要严谨、方法掌握要灵活 提高自学能力(push与pull) 2.

文档评论(0)

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

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

1亿VIP精品文档

相关文档