- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 计算机科学技术系 李薇 livaye@163.com 为什么要学习编译原理 必修主干课程,操作系统和编译系统构成程序设计者与计算机之间的基本界面。 通过学习该课程,掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统结构和机理。能运用所学技术解决实际问题,能独立编写一个小型编译系统。 此外,通过学习编译原理可以更好地理解程序语言的内部机制,从而更好地理解和运用程序设计语言。能运用编译程序构造的原理和技术完成相关软件工具的设计和开发工作。 课 程 简 介 课程内容 介绍编译器构造的一般原理和基本实现方法 介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法、类型论等 强调形式描述技术和自动生成技术 教材和参考书 李建中译,《编译原理》(龙书),机械工业出版社 陈火旺 刘春林等,《程序设计语言编译原理》,国防工业出版社 吕映芝,张素琴等,《编译原理》,清华大学出版社 李冬梅,施海虎,《编译原理》,人民邮电出版社 要求及学习方法 课程特点:理论性强,算法复杂 平时(20%) 无故旷课:-5 一本教材,认真听课:以讲义为主,做适当的笔记 认真完成课堂和课后作业 完成要求的课外实验内容 期末(80%):闭卷笔试 第一章 编译概述 1.1 程序的翻译 语言和翻译:语言是人类交流思想和信息的工具。如自然语言,世界上存在着许多种语言,各国之间要交流信息,就要有各种语言之间的翻译。计算机语言同样是丰富多彩的。 程序语言的分类 低级语言(Low level Language) 字位码、机器语言、汇编语言 特点:与特定的机器有关,功效高,但使用复杂、繁 琐、费时、易出错 高级语言 -- Fortran、Pascal、C 语言等 特点:不依赖具体机器,移植性好、对用户要求低、易使用、易维护等。 计算机硬件只懂自己的指令系统,那么它是如何识别除机器语言以外的另一种语言呢?? 解决这一问题的方法:翻译程序!! 翻译程序 翻译程序:能够把某一种语言程序(称为源语言程序)转换成另一种语言程序(称为目标语言程序)的一个程序,而后者与前者在逻辑上是等价的。 程序翻译的方式通常有两种,一种是编译方式,另一种是解释方式。 编译方式—编译程序 编译程序:如果一个翻译程序的源语言是某种高级语言,其目标语言是相对于某一计算机的汇编语言或机器语言,则称这种翻译程序为编译程序(或称为编译器)。 若编译生成的目标程序不是机器代码,而是汇编语言程序,则还要增加一个会变程序将其会变为机器代码。 汇编程序 如果一个翻译程序的源语言是某种汇编语言,其目标语言是某一计算机的机器语言,则称这种翻译程序为汇编程序。 解释方式—解释程序 解释程序: 是一种语言处理程序,它以源程序作为输入,但不产生目标代码,它将源程序中的语句按动态顺序,逐句翻译成课执行代码,一旦具备执行条件,则立即执行这一阶段代码得到部分结果。 编译和解释程序 编译程序的工作相当于载翻译一本原著,计算机运行编译后的目标程序,相当于阅读一本译著;而解释程序的工作相当于在进行同声翻译,计算机运行解释程序,相当于我们直接通过翻译听外宾讲话。 程序的编译执行: 程序的解释执行: 如:BASIC、Prolog,问题:效率低下 编译程序与解释程序的差别 根本区别:是否生成目标代码! “编译+解释执行”系统 例如Java语言 编译程序在计算机系统中的位置 编译程序是一种软件,是系统软件。通常认为系统软件是居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。 几个概念 宿主机:运行编译程序的计算机 目标机:运行编译程序所产生的目标代码的计算机 交叉编译程序:一个编译程序产生不同于其宿主机的机器代码 可变目标编译程序:不需要重写编译程序中与机器无关的部分就能改变目标机 1.2 编译的过程 1.编译程序的工作过程 2.编译器各阶段的工作 1.编译程序的工作过程 编译过程本身是一种语言的翻译过程,类似于外文的翻译。 将英文句子“I wish you success翻译成中文。 翻译外文资料: 1、能识别出句子中的一个单词; 2、分析句子的语法结构; 3、根据句子的含义进行初步翻译; 4、对译文进行修饰; 5、写出最后的译文。 翻译外文资料与编译源程序进行类比 将编译过程划分为5个基本阶段 从概念上来讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的。 事实上,某些阶段可能组合在一起,这些阶段间的源程序的中间表示形式就没必要构造出来了。 1.2 编译的过程 1.编译程序的工作过程 2.编译器各阶段的工作 2.编译器各阶段的工作 (1)词法分析 词
您可能关注的文档
最近下载
- 成本会计学第9版张敏.pdf VIP
- 公路养护日常小修保养施工组织设计 附公路隧道施工技术规范.doc VIP
- 国家开放大学电大《组织行为学》机考终结性2套题库及答案.doc VIP
- 2024秋国开一网一 微积分大作业word版答案.docx VIP
- 湛江市麻章区数学小升初数学试卷.doc VIP
- 《好利来食品盈利能力研究》文献综述3000字.docx VIP
- 学校安保服务投标方案(技术方案).doc
- 广东省湛江市麻章区2023年小升初数学试卷(含答案).pdf VIP
- 四川大学《微机原理与接口技术》2022-2023学年第一学期期末试卷.pdf VIP
- 海浦蒙特COOL100炫系列别墅电梯控制柜用户手册-中-V1.2.pdf VIP
文档评论(0)