中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第9章 面向对象语言的编译

第9章 面向对象语言的编译 本章内容 概述面向对象语言的重要概念和实现技术 以C++语言为例,介绍如何将C++程序翻译 成C程序 实际的编译器大都把C++程序直接翻译成低 级语言程序
第9章 面向对象语言的编译 本章内容 • 概述面向对象语言的重要概念和实现技术 • 以C++语言为例,介绍如何将C++程序翻译 成C程序 • 实 的编译 大都把 实际的编译器大都把C++程序直接翻译成低 程序直接翻译成低 级语言程序

9.1面向对象语言的概念 9.1.1对象和对象类 对象 一由一组属性和操作于这组属性的过程组成 一属性到值的映射称为对象的状态,过程称为方法 对象类 一类对象的总称,规范了该类中对象的属性和方 法,包括它们的类型和原型 对象有自己存放属性的存储单元;同一个类的对 象可以共享方法的代码 对象类形成了面向对象语言的模块单元 下面将把术语“类”和“类型”看成是同义的
9 1. 面向对象语言的概念 9.1.1 对象和对象类 • 对象 – 由一组属性和操作于这组属性的过程组成 – 属性到值的映射称为对象的状态,过程称为方法 • 对象类 – 一类对象的总称,规范了该类中对象的属性和方 法,包括它们的类型和原型 – 对象有自己存放属性的存储单元;同一个类的对 象 以共享方法的代 象可以共享方法的代码 – 对象类形成了面向对象语言的模块单元 – 下面将把术语“类”和“类型”看成是同义的

9.1面向对象语言的概念 9.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area
9 1. 面向对象语言的概念 9.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics … … length area Ellipse translate PolyGon area … … scale area R l Ti l … … Rectangle area Triangle

9.1面向对象语言的概念 继承 基类、派生类、子类、抽象类 子类型规则 当某个类型的一个对象在某个输入位置被需要或作 为函数的返回值时,其任何子类型的对象允许出现 在这些地方 类B的一个对象,若它不同时是B的某个真子 类的对象,那么称该对象是B的真对象,称B 是该对象的运行时类型
9 1. 面向对象语言的概念 继承 • 基类、派生类、子类、抽象类 • 子类型规则 当某个类型的一个对象在某个输入位置被需要或作 为函数的返回值时,其任何子类型的对象允许出现 在这些地方 • 类B的一个对象,若它不同时是B的某个真子 类的对象,那么称该对象是 那么称该对象是B的真对象,称B 是该对象的运行时类型

9.1面向对象语言的概念 9.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area
9 1. 面向对象语言的概念 9.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics … … length area Ellipse translate PolyGon area … … B scale area area R l Ti l … … B Rectangle area Triangle

9.1面向对象语言的概念 方法选择规则 如果类B继承类A并且重写了方法m,那么对 类B的对象b来说,即使它作为类A的对象使用, 也必须使用在类B中定义的方法m
9 1. 面向对象语言的概念 • 方法选择规则 如果类B继承类A并且重写了方法 并且重写了方法m,那么对 类B的对象b来说, 即使它作为类A的对象使用, 也必须使用在类B中定义的方法m

9.1面向对象语言的概念 9.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area
9 1. 面向对象语言的概念 9.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics … … length A area Ellipse translate PolyGon area … … B scale area area R l Ti l … … B Rectangle area Triangle

9.1面向对象语言的概念 动态绑定规则 当对象o的一个方法可能被子类重新定义时, 如果编译器不能确定o的运行时类型,那么必 须对该方法进行动态绑定 void zoom (GraphicalObj &obj,double zoom factor,Point ¢er){ obj.translate (-center.x,-center.y); /将“中心”移至“点(0,0)” obj.scale(zoom_factor);/缩放
9 1. 面向对象语言的概念 • 动态绑定规则 当对象o的一个方法可能被子类重新定义时, 如果编译器不能确定o的运行时类型,那么必 须对该方法进行动态绑定 void zoom (GraphicalObj &obj double void zoom (GraphicalObj &obj, double zoom_factor, Point ¢er) { obj.translate (center.x, center.y); // 将“中心”移至“点(0 0) ,” obj.scale (zoom_factor); // 缩放 }

9.1面向对象语言的概念 9.1.3信息封装 大多数面向对象语言提供了一种机制,它可 用来将类的特征分成私有的和公共的 某些面向对象语言用不同的上下文区分作用 域,如“在一个类中”、 在派生类中” “在友元类中”等等 由编译器来实现这些作用域规则是简单而又 明显的
9 1. 面向对象语言的概念 9.1.3 信息封装 • 大多数面向对象语言提供了 种机制 大多数面向对象语言提供了一种机制,它可 用来将类的特征分成私有的和公共的 • 某些面向对象语言用不同的上下文区分作用 域,如“在 个类中 一 ”、“在派生类中”、 “在友元类中”等等 • 由编译器来实现这些作用域规则是简单而又 明显的

9.2 方法的编译 先定义一般的图形对象类GraphicalObj如下: class GraphicalObj virtual void translate (double x offset,double y_offset); virtual void scale (double factor); /可能还有一些其它方法
9 2. 方法的编译 先定义一般的图形对象类GraphicalObj如下: class GraphicalObj { class GraphicalObj { virtual virtual void translate translate (double (double x offset, x_offset, double y_offset); virtual void scale (double factor); ... // 可能还有 些其它方法 可能还有一些其它方法 };
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第8章 编译系统和运行系统.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第7章 代码生成和代码优化.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第6章 中间代码生成.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第5章 运行时存储空间的组织和管理.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第4章 类型检查.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第3章 语法分析.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第2章 词法分析.pdf
- 中国科学技术大学:《编译原理与技术》课程教学资源(课件讲稿)第1章 引论(主讲:张昱、陈意云).pdf
- 《编译原理与技术》课程教学资源(教材书籍)Practical Foundations for Programming Languages(SECOND EDITION,Robert Harper Carnegie Mellon University).pdf
- 成都大学:信息科学与工程学院信息科学与计算专业课程教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院物联网工程专业课程教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院通信工程专业教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院数字媒体技术专业课程教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院软件工程专业课程教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院计算机科学与技术专业课程教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院计算机科学与技术专业课程教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院电子信息专业教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院电工专业教学大纲(汇编).pdf
- 成都大学:信息科学与工程学院网络工程专业教学大纲(汇编).pdf
- 佛山科学技术学院:2017版理论课教学大纲物联网(合集).pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第1章 绪论(主讲:张昱、马建辉).pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(教案讲义)第1章 绪论(主讲:张昱、马建辉).doc
- 中国科学技术大学:《数据结构及其算法》课程教学资源(教案讲义)第2章 线性表.doc
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第2章 线性表.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第3章 栈和队列.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(教案讲义)第3章 栈和队列.doc
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第4章 串.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(教案讲义)第4章 串、数组和广义表.doc
- 中国科学技术大学:《数据结构及其算法》课程教学资源(教案讲义)第6章 树和二叉树.doc
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第6章 树和二叉树.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(教案讲义)第7章 图(图的遍历算法及其应用).doc
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第7章 图.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第5章 广义表.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第9章 查找.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第8章 动态存储管理.pdf
- 中国科学技术大学:《数据结构及其算法》课程教学资源(课件讲稿)第12章 文件.pdf
- On the Similarity between von Neumann Graph Entropy and Structural Information:Interpretation, Computation, and Applications.pdf
- Coded Caching under Arbitrary Popularity Distributions.pdf
- Coded Caching under Arbitrary Popularity Distributions.pptx
- Distributed Multicast Tree Construction in Wireless Sensor Networks.pdf