- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
免费提供
编译原理
1
学分:
编译原理简明教程(第3版)
冯秀芳崔冬华王会青主编
电子工业出版社2024年出版
课程教材
6
目录
第一章概述
第二章形式语言理论基础
第三章自动机理论基础
第四章词法分析
第五章语法分析—自顶向下分析方法
第六章语法分析—自底向上分析方法
第七章语义分析及中间代码的生成
第八章代码优化
第九章目标代码的生成
第十章符号表和出错处理
第十一章面向对象语言的编译
第十二章并行编译技术
第十三章软件构造
3
2024-11-6
4
学习目标
了解和掌握面向对象的基本概念、类和成员的属性构造以及面向对象编译器的特性
了解和掌握面向对象语言的编译
了解和掌握面向对象的动态存储分配
11.1概述
11.2面向对象语言的语法结构
11.3面向对象的动态存储分配
5
6
11.1.1面向对象语言的基本特征
对象之间通过消息相互通信
封装
继承
多态性
7
11.1.2类和成员的属性构造
声明类的文法规则:
(1)dec→classdec
(2)classdec→classclass_id{memberspec}|classclass_id:class_id{memberspec}
(3)memberspec→memberdecmemberspec|memberdec
(4)memberdec→accessspec:typevar;|accessspec:funcdec;
(5)accessspec→private|protected|public
(6)type→comtype|classtype
(7)classtype→ID
(8)var→ID|ObjDef
(9)funcdec→typeID(paramlist);|typeID(paramlist)funcbody;|ID(paramlist);|ID(paramlist)procbody;
8
类名的特有属性包括种类、继承链和类的成员集。
(1)种类:种类属性用于区分有效类、延迟类、继承类、基类等。如果一个类定义的全部成员中至少有一个成员尚未被具体实现,该类就是一个不能用来创建对象的类,我们称之为延迟类。如果一个类定义中的全部成员都已经按照某种方式具体实现,该类就是一个可以用来创建对象的类,我们称之为有效类。
9
类名的特有属性包括种类、继承链和类的成员集。
(2)继承链:对于继承类来说,可以有若干个父类(被直接继承的类),并且它们在类的定义中的次序必须是严格确定的。
10
这两个成员集的具体实现有两种方式:
①这些成员(包括属性和方法)名的符号表项与它们的类名的符号表项放在一张符号表中,而这两个成员集中存放的是指向各自对应的符号表项的指针;
②每个类构造两张子符号表,即类的属性成员符号表和类的方法成员符号表,这两个成员集中存放这些成员名的符号表项。
类名的特有属性包括种类、继承链和类的成员集。
(3)类成员集:类具有属性成员和方法成员,可以用两张成员表来表示。
11
类的定义中,属性成员是某个类型的实例,这种属性成员的类型有两种方式:
其一,定义该属性成员的类型在包含该成员的类型之外的另一个类型中进行定义;
其二,定义该属性成员的类型在包含该成员的类型之内的一个嵌套的类型定义。
如果属性成员的类型嵌套定义在属性成员所在的类中,属性的结构就会出现嵌套的情况,为了避免下推处理,当一个类中有多个嵌套类型定义的属性成员时,这些局部定义的类型名的符号表项可以组成一张符号表,
12
类成员的特有属性如下。
①类成员的导入属性。通常,类中的成员包括从父类继承的成员和该类自定义的成员,当从父类中继承的成员被重定义或重命名时,需要给出相应的标志。
13
②类成员的访问权限属性。类成员被外部对象访问的权限有三种:类的公有成员、类的私有成员和类的保护成员。属性和方法的私有性是由编译器的类型检查阶段来保证的,在类的成员符号表项中,一个域用来指出该成员的访问权限。
14
③类成员的延迟属性。如果一个类定义的全部成员中至少有一个成员尚未被具体实现,该类就是一个不能用来创建对象的类,我们称之为延迟类,尚未被具体实现的成员,我们称之为延迟成员。在成员符号表项中用一个域指出该成员是类的延迟成员,还是类的有效成员。
15
词法和语法分析
由于类本身是一种数据类型
您可能关注的文档
- 编译原理简明教程(第3版)-课件 第1--3章 概述、形式语言理论基础、自动机原理.pptx
- 编译原理简明教程(第3版)-课件 第4--6章 词法分析、语法分析--自顶向下、 语法分析-自底向上.pptx
- 编译原理简明教程(第3版)-课件 第9、10章 目标代码的生成、符号表和出错处理.pptx
- 编译原理简明教程(第3版)-课件 第12、13章 并行编译技术、 软件构造.pptx
- 编译原理简明教程(第3版)-课件全套 冯秀芳 第1--13章 概述、形式语言理论基础---软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 00引言;01软件开发概述;02模块化软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 03面向对象的软件构造;04数据处理的软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 05用户交互的软件构造;06软件重构与交付;07GUI软件构造.pptx
- 基于案例的软件构造教程(第2版)课件 08应用数据库;09基于复用的软件构造.pptx
- 基于案例的软件构造教程(第2版)课件全套 李劲华 00引言;01软件开发概述---09基于复用的软件构造.pptx
- 2024年人教版初三语文上册期中考试卷(附答案).docx
- 2024年人教版小学六年级语文(下册)期中试卷附答案.docx
- 2024年人教版小学二年级科学(上册)期中试卷及答案.docx
- 2024年人教版七年级语文上册期中考试卷(附答案).docx
- 2024年人教版初三数学上册期末考试卷(附答案).docx
- 2024年人教版七年级历史下册期末考试卷(附答案).docx
- 2024年人教版初三信息技术上册期末考试卷(附答案).docx
- 2024年人教版九年级语文下册期中考试卷(附答案).docx
- 2024年人教版初三英语上册期末考试卷(附答案).docx
- 2024专业个性化减肥服务协议版.docx
文档评论(0)