[发明专利]变量闭包有效

专利信息
申请号: 201110080598.6 申请日: 2011-03-23
公开(公告)号: CN102200911A 公开(公告)日: 2011-09-28
发明(设计)人: I·任科夫斯基;H·坎恩塔姆那尼 申请(专利权)人: 微软公司
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 上海专利商标事务所有限公司 31100 代理人: 顾嘉运
地址: 美国华*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 变量
【说明书】:

技术领域

发明涉及基于计算机的方法和系统,尤其涉及访问计算机程序函数中定义的闭包变量。

背景技术

一些计算机编程语言包括被称为闭包的概念。闭包是捕捉诸如程序变量之类的环境元素以供后续使用的的一种方式,即便原始元素已经改变或不再存在了。例如,内函数可以引用在外函数内定义的局部变量。内函数可分配到变量并被调用。概念上,内函数所引用的变量可以在赋值的时候被保存,并且这些已保存的变量可以在内函数的后续调用期间使用。一种实施方式可以将变量保存在所分配的堆存储器中,并在不再需要这些变量时解除这些堆存储器的分配。对内函数的多次调用引用所保存的变量的相同副本。引用外函数的局部变量的内函数被称为拉姆达(lambda)函数,或简称为拉姆达。

发明内容

提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。

简要地,一种系统、方法和组件用于当对多个闭包变量中的一个的引用是在计算机程序的闭包函数的拉姆达表达式中时,访问在该闭包函数中定义的闭包变量。闭包变量可以是对闭包函数而言局部的并被存储在运行时栈上的栈框架中,该栈框架对应于闭包函数的一个实例。响应于进入闭包函数,可以将指向每一个闭包变量的指针存储在诸如堆存储器或其他类型的存储器之类的数据结构中。响应于提取变量值的指令(该指令在拉姆达表达式中),可以使用变量指针来定位运行时栈上的框架中的变量,并提取该变量值。

在一个实施方式中,响应于对闭包函数的实例的调用,可以生成对应于该实例的闭包对象,该闭包对象包括指向栈指针的指针。

在一个实施方式中,可以通过解析计算机程序并插入指令以便于提取闭包变量而插装(instrument)该计算机程序。这可包括:插入指令以创建闭包对象,并在调用该闭包函数时存储变量指针。这可包括插入指令以响应于拉姆达表达式中的引用而提取闭包变量。这可进一步包括插入指令以便在退出闭包函数时删除对象。

为了实现前述及相关目的,在这里结合以下描述及附图来描述该系统的某些说明性方面。然而,这些方面仅指示了可采用本发明的原理的各种方法中的少数几种,且本发明旨在包括所有这样的方面及其等效方面。通过结合附图考虑本发明的以下具体实施方式,本发明的其它优点以及新颖的特征将变得显而易见。

附图说明

参考下述附图描述了本发明的非限制性且非穷尽性实施方式。在这些附图中,相同的附图标记指代各附图中的相同部分,除非另外指明。

为了帮助理解本发明,将参考与附图相关联地阅读的具体实施方式,在附图中:

图1是采用在此描述的机制的计算机系统的框图。图2是可被用于实现在此描述的机制中的至少某一些的一组数据结构。

图3是示出实现变量闭包的过程的示例实施方式的流程图。图4是示出对拉姆达函数中的闭包变量进行处理的过程的示例实施方式的流程图。

图5是用于插装程序代码以便于图3和4的过程的过程的流程图;

图6示出了计算机设备的一个实施方式,示出了可被用于执行在此描述的功能的计算机设备的所选组件。

具体实施方式

下文中将参考附图来更全面地描述本发明的各示例实施方式,附图构成实施方式的一部分且在其中作为示例示出了可在其中实践本发明的各特定示例实施方式。然而,本发明可被实现为许多不同的形式并且不应被解释为被限于此处描述的各实施方式;相反,提供这些实施方式以使得本公开变得透彻和完整,并且将本发明的范围完全传达给本领域技术人员。特别地,本发明可被实现为方法或设备。因此,本发明可采用完全硬件实施方式、完全软件实施方式或者结合软件和硬件方面实施方式的形式。因此,以下详细描述并非是局限性的。

贯穿说明书和权利要求书,下列术语采用此处显式相关联的含义,除非该上下文在其他地方另有清楚指示。如此处所使用的,短语“在一个实施方式中”尽管它可以但不一定指前一实施方式。此外,如此处所使用的,短语“在另一个实施方式中”尽管它可以但不一定指前不同的实施方式。因此,可以容易地组合本发明的各实施方式而不背离本发明的范围或精神。类似地,如此处所使用的,短语“在一个实现中”尽管它可以但不一定指相同的实现,并且可以组合各种实现的技术。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110080598.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top