关于资源引用的寿命的声明的制作方法

文档序号:9457652阅读:195来源:国知局
关于资源引用的寿命的声明的制作方法
【专利说明】关于资源引用的寿命的声明
[0001] 背景
[0002] 计算系统通过执行软件程序,获得高级功能。程序包括以某种持久形式,诸如在硬 盘驱动器、光盘、拇指驱动器、闪存等等上保存的计算机可执行指令。在执行过程中,这样的 计算机可执行指令可以常常被加载到随机存取存储器中,并由计算系统的一个或多个处理 器执行,导致计算系统执行任务。
[0003] 在面向对象的编程中,这些计算机可执行指令被组织成通过函数调用进行交互, 并且可以具有一个或多个属性的对象。受管理的代码是在提供类型安全性(但也可以提供 存储器管理和异常处理)的受管理的环境中运行的代码。在受管理的代码中,对象具有不 受限的寿命,没有对存储器的限制,访问限制的方法涉及间接或额外的资源。
[0004] 系统级编程基于对于对整个系统中的资源(诸如对象)的访问以及资源的寿命的 严密的并且有效率的管理。提供此严密管理的一种常见的方式是使用应用程序编程接口 (API)来管理资源的寿命以及对资源的访问。

【发明内容】

[0005] 此处所描述的至少一些实施例涉及通过指定表示资源的引用的寿命来提高系统 编程中的安全性的语言扩展。根据语言扩展,寿命以这样的方式引用特定作用域,以便编译 器生成将引用的寿命强制为特定作用域的寿命的的函数(例如,不比其长)的计算机可执 行指令。相应地,可以预先指定资源寿命,以具有特定作用域。这会帮助执行资源管理,因 为典型的受管理的语言程序可以允许资源无限地存在。此外,由于资源具有定义的有限寿 命,因此,它们可以更方便地在栈上(而不是在堆上)被分配,以便更高效的处理。
[0006] 本
【发明内容】
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的作用域。
[0007] 附图简述
[0008] 为了描述可以获得本发明的上文所列举的及其他优点和特征的方式,下面将通过 参考附图来呈现对各实施例的更具体的描述。可以理解,这些附图只描绘了示例实施例,并 且因此不被认为是对其作用域的限制,将通过使用附图并利用附加特征和细节来描述和解 释各实施例,在附图中:
[0009] 图1抽象地示出了可以在其中使用此处所描述的一些实施例的计算系统;
[0010] 图2示出了其中可以使用此处所描述的各实施例的系统,系统包括类型定义生成 组件、类型定义访问组件、以及编译组件;
[0011] 图3示出了用于声明软件程序中的特定引用具有有限寿命的方法的流程图;以及
[0012] 图4示出了用于编译具有注释的计算机程序的方法的流程图。
【具体实施方式】
[0013] 根据此处所描述的各实施例,描述了通过指定表示资源的引用的寿命来提高系统 编程中的安全性的语言扩展。根据该语言扩展,寿命以这样的方式引用特定作用域,其中编 译器生成将引用的寿命强制为基于特定作用域的寿命(例如,不比其长)的计算机可执行 指令。相应地,可以预先指定资源寿命具有特定作用域。这会帮助执行资源管理,因为典型 的受管理的语言程序可以允许资源无限制地存在。此外,由于资源具有定义的有限寿命,因 此,它们可以更方便地在栈上(而不是在堆上)被分配,以便更高效的处理。
[0014] 首先,将参考图1来描述对计算系统的一些介绍性讨论。然后,将参考图2描述受 管理的代码系统的原理。最后,将参考图3和4描述定义引用寿命的语言扩展的原理。
[0015] 计算系统现在越来越多地采取多种多样的形式。计算系统可以例如是手持式设 备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统,或者甚至通常不被视为计 算系统的设备。在此说明书和权利要求书中,术语"计算系统"被广泛地定义为包括其中包 括至少一个物理并且有形的处理器,以及能够在其上具有可以由处理器执行的计算机可执 行指令的物理并且有形的存储器的任何设备或系统(或其组合)。存储器可以采取任何形 式,并可以取决于计算系统的特性和形式。计算系统可以分布在网络环境中,并可包括多个 组分计算系统。
[0016] 如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102 和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易 失性、或两者的某种组合。此处也可以使用术语"存储器"来指诸如物理存储介质之类的非 易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分 布式的。如此处所使用的,术语"可执行模块"或"可执行组件"可以是指可以在计算系统 上执行的软件对象、路由,或方法。此处所描述的不同组件、模块、引擎,以及服务可以实现 为在计算系统上执行的对象或进程(例如,作为分开的线程)。
[0017] 在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果 这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已 经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以 在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数 据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统1〇〇的存储器 104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通 信的通信信道108。
[0018] 此处所描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包 括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。此处所 描述的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和 其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统能够访问的任何 可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行 指令的计算机可读介质是传输介质。如此,作为示例,而不作为限制,本发明的实施例可以 包括至少两个显然不同种类的计算机可读介质:计算机存储介质和传输介质。
[0019] 计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他 磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由 通用或专用计算机访问的任何其他介质。
[0020] "网络"被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子 数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连 线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输 介质可以包括可以用来携带所需要的以计算机可执行的指令或数据结构的形式存在的程 序代码装置并可以被通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包 括在计算机可读介质的作用域内。
[0021] 此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程 序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或 数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,"NIC") 内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算 机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输 介质的计算机系统组件中。
[0022] 计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或 专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进 制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动 作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特 征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0023] 本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络 计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息 处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型 计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过 网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的 组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统 环境中,程序模块可位于本地和远程存储器存储设备中。
[0024] 系统编程中的主要挑战是控制对资源的访问。在面向对象的编程中,资源是作为 对象暴露的。为了进行有效率的资源使用和存储器分配,重要的是,资源不存活得比拥有资 源的代码打算存活得长。常常,资源是为被预期为有限使用持续时间的对象提供的。然而, 在受管理的编程中,没有什么能阻止组件无限地存储资源,并因此任意延长其使用。例如, 资源可以这样的方式被包裹,其中所有者撤销对资源的有用的访问,但是这充其量会导致 系统中的运行时故障。此处所描述的原理通过将寿命语义提供到类型系统中并在编译时强 制执行限制来解决此问题。
[0025] 被限定了作用域的引用是将引用的访问限制到特定作用域的值。作用域是用于将 寿命指定到诸如对象、代码块或栈框架之类的概念的方法。被限定了作用域的引用可以与 具有可证明地比拥有该引用的项目短的寿命的作用域相关联,但是不与寿命长于拥有该引 用的项目的作用域相关联。通过管理这些作用域,可以获得被限定了作用域的引用不会存 活到超过系统中的某一点的保证。
[0026] 图2示出了包括类型定义生成组件201、类型定义访问组件202、以及编译组件203 的系统200。
[0027] 类型定义生成组件201生成包括被限定了作用域的引用212的类型定义211,被限 定了作用域的引用212包括与特定作用域215相关联214的引用213。作为示例,类型定义 生成组件201可以是创作软件的组件,或可以是自动地生成代码(诸如源代码、中间代码、 或机器代码)的软件的组件。关联214可以是例如引用213的作用域215的注释。作用域 215不定义引用212的访问特权,而是定义将被编译器203强制
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1