- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理第12章-运行时存储组织
;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;运行时存储组织;面向对象程序运行时组织; 面向对象程序运行时的特征; 创建根对象时的存储结构; 例程运行时的特征
每个例程都必定是某个类的成员,且每个例程都只能
把它的计算施加在它所属类所创建的对象上。因而在
一个例程执行前,首先要求它所施加计算的对象已经
存在,否则要求先创建该对象。
一个例程执行时,其参数除实参外,还用到它所施加
计算的对象,它们与该例程的局部量及返回值一起组
成一个该例程的工作区(放在栈式存储区中)。
例程工作区中的局部量若是较为复杂数据结构,则在
工作区中存放对该复杂数据结构的一个引用,并在堆
式存储区中创建一个该复杂数据结构的对象。; 对象的存储组织; 另一种方法是在执行时将类结构的一个完整的描述保
存在每个类的存储中,由超类指针维护继承性(形成
所谓的继承图)。每个对象保存一个指向其定义类的
指针,作为一个附加的域和它的属性变量放在一起,
通过这个类就可找到所有(局部和继承的)的例程。
此时,只记录一次例程指针(在类结构中),且对于
每个对象并不将其复制到存储器中。
其缺点在于:虽然属性变量具有可预测的偏移量(如
在标准环境中的局部变量一样),但例程却没有, 它
们必须由带有查询功能的符号表结构中的名字来维护。
这是对于诸如 Smalltalk 等强动态性语言的合理??结构,
因为类结构可以在执行中改变。; 一种折衷方案:计算出每个类的可用例程的代码指针列
表(称为例程索引表,如 C++ 的 Vtable,简称虚表)。
其优点在于:可做出安排以使每个例程都有一个可预测
的偏移量,而且也不再需要用一系列表查询遍历类的层
次结构。这样,每个对象不仅包括属性变量,还包括了
一个相应的例程索引表的指针(不是类结构的指针)。; 某个单继承O-O语言的对象存储示例; 某个单继承O-O语言的对象存储示例; 某个单继承O-O语言的对象存储示例; 其他话题;;Thank You
您可能关注的文档
最近下载
- 支票打印模板.xls VIP
- 疫情监测人员值班和调休工作制度.docx VIP
- 自动喷水灭火系统联动试验记录.docx VIP
- ISO 9001(DIS)-2026《质量管理体系要求》主要变化分析及其对策和建议清单(雷泽佳编制-2025年9月).pdf VIP
- 学院报告厅装饰装修施工组织设计方案.doc VIP
- ISO 9001(DIS)-2026与ISO 9001-2015《质量管理体系要求》主要变化对比说明(雷泽佳编制-2025年9月).pdf VIP
- 城市“灰空间”--机动车高架桥下部空间改造利用研究.pdf VIP
- 2025年政府采购评审专家考试题(带完整答案).docx VIP
- 计算污泥产量教学文稿.xls VIP
- 实验二、用Excel-Solver解供应链问题.doc VIP
原创力文档


文档评论(0)