- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2019/2/28 编译原理引论 31 编译过程的扫描遍数 ? 一个编译过程可以由一遍,两遍或者多遍完成。 ? 所谓“遍”,也称作“趟”,是对源程序或其 等价的中间语言程序从头到尾扫视并完成规定 任务的过程。 ? 在实际的编译系统的设计中,编译的几个阶段 的工作应该怎样组合,即编译程序究竟分成几 遍,参考的因素主要是源语言和机器(目标机) 的特征 编 译 原 理 2019/2/28 编译原理引论 2 联系方式 E-mail: leiyu@stdu.edu.cn 手机: 办公室:信息科学与技术学院办公楼 201 2019/2/28 编译原理引论 3 课程简介 ? 重要的计算机专业必修基础课程,理论性强、 算法多、难度大 ? 硕士研究生和博士研究生入学的考试科目 ? 课程性质:必修课, 4 学分 ? 学时: 52 上课 +12 实验 =64 学时 ? 参考教材: – 编译原理 ( 第 2 版 ) ,清华大学出版社,张素琴等编著, 2005 年 2 月出版 2019/2/28 编译原理引论 4 课程要求 ? 课前预习 ? 上课认真听讲,不允许聊天、睡觉、玩游戏、 看与本课程无关的书籍等 ? 无故不得旷课,有事要请假,三次以上无故旷 课取消期末考试资格 ? 课后认真复习,按时独立地完成作业 ? 实验课之前要认真准备,认真、独立做实验 ? 考试前认真复习 第一章 引 论 2019/2/28 编译原理引论 6 主要内容 ? 什么是编译程序 ? 编译过程概述 ? 编译程序的结构 ? 编译阶段的组合 ? 解释程序 ? 一些软件工具 ? 程序设计语言范型 2019/2/28 编译原理引论 7 编程语言的发展历程 ? 第一代语言:机器语言 – 特点:面向机器 ? 第二代语言:汇编语言 – 特点:用针对指令的符号代替二进制码 ? 第三代语言:高级语言 – 包括面向过程的语言和面向对象的语言。 – 例: Pascal , C , C++ , C# , Java 等 ? 第四代语言:面向问题的语言 – 例: SQL ? 编程语言的发展体现了编译技术的发展 2019/2/28 编译原理引论 8 1.1 什么是编译程序 ? 语言翻译程序:把一种语言(称作源语言)书 写的程序翻译成另一种语言(称作目标语言) 的等价的程序 ? 如果源语言是高级语言,目标语言是汇编语言 或机器语言等低级语言,则这种翻译程序称作 编译程序 ? 编译程序的功能: 高级语言程序 ( 源程序 ) 低级语言程序 ( 目标程序 ) 编译 程序 2019/2/28 编译原理引论 9 高级语言程序的处理过程 需预处理的源程序 预处理程序 源程序 编译程序 汇编程序 装载 / 连接编辑程序 目标 汇编程序 可再装配的机器代码 绝对机器代码 可再装配目标文件 2019/2/28 编译原理引论 10 编译器和集成开发环境 ? 编译器:即编译程序,把高级语言经分析翻译为低 级语言。 ? 集成开发环境:简称 IDE ( Integrated Develop Environment ),是用于提供程序开发环境的应用 程序,一般包括代码编辑器、编译器、调试器和图 形用户界面工具。 – 背景:早期程序设计的各个阶段都要用不同的软件来进 行处理 , 如先用字处理软件编辑源程序,再用编译程序进 行编译,然后用链接程序进行函数、模块连接 , 开发者 必须在几种软件间来回切换操作。 ? 人们习惯上经常把 IDE 称为编译器。 2019/2/28 编译原理引论 11 常见语言及其 IDE 语言 IDE C TC2.0 C++ C++ Builder, VC++6.0, TC3.0 C# VS.NET Pascal TP OOPascal Delphi VB VB6.0 ( 解释器 ) Java Eclipse, JBuilder 2019/2/28 编译原理引论 12 1.2 编译过程概述 ? 从概念上来讲,一个编译程序的整个工作过程 是划分成阶段进行的,每个阶段将源程序的一 种表示形式转换成另一种表示形式,各个阶段 进行的操作在逻辑上是紧密连接在一起的。 ? 编译程序分成 词法分析、语法分析、语义分析、 中间代码生成、代码优化和目标代码生成 六个 阶段。另外
文档评论(0)