[发明专利]用于托管程序集的增量式生成的方法和系统有效

专利信息
申请号: 201210053833.5 申请日: 2012-03-02
公开(公告)号: CN102707982B 公开(公告)日: 2017-06-09
发明(设计)人: G·A·P·伊巴拉;P·维拉森 申请(专利权)人: 微软技术许可有限责任公司
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 上海专利商标事务所有限公司31100 代理人: 蔡悦
地址: 美国华*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 托管 汇编 增量 生成
【说明书】:

技术领域

本申请涉及计算机应用,尤其涉及程序集的生成。

背景技术

.NET框架是一种公共语言基础结构(CLI)框架,该框架提供编译时和运行时功能以便建立和运行按遵循公共语言规范(CLS)的语言来编写的各应用。.NET框架由两个核心组件构成:公共语言运行时(CLR)以及框架类库(FCL)。CLR是.NET框架的执行环境。CLR向顺应CLS的编程语言与操作系统(OS)之间的与语言无关的抽象层提供以下主要功能:将顺应CLS的语言编译器所生成的公共中间语言(CIL)代码即时(JIT)编译成对该OS的本机代码。在应用的执行期间,CLR负责存储器管理、线程执行、垃圾收集、异常处理、公共类型系统定义、代码安全验证、以及其他系统服务。FCL是语言无关的且类型安全的可重用类、接口、以及值类型的库,这些语言无关的且类型安全的可重用类、接口、以及值类型加速和优化开发过程并提供对系统功能的访问。

以顺应CLS的编程语言来编写的源代码被编译成CIL代码,作为类型和资源的集合(被称为程序集)。每一程序集包含程序集清单以及可移植可执行(PE)代码。程序集可包括一个或多个程序文件。程序文件可以是以PE文件格式被存储为进程程序集(.exe)或是库程序集(.dll)的可执行文件。可将程序集的PE代码存储在一个或多个代码模块(例如,.net模块)中。在这一情况中,.net模块与要由JIT编译器执行的程序集中的程序集清单相关联。程序集清单包含带有描述该程序集及其内容且自身可被存储在PE文件中的信息的一组元数据。

.NET程序集是用于诸如C#、VB.NET以及C++/CLI等托管语言的不可变逻辑单元。如果存在源代码的改变,则整个源代码都需要被重新编译以重新创建程序集。在程序集较小时、或在构建时间不是问题时,重新编译是合适的。然而,对于其中快速应用开发是重要的且(例如,出于测试目的)要求较小改变被迅速编译的场景,无法增量式地生成程序集导致降低的开发者生产率。

此处所做出的本公开正是关于这些和其他考虑事项而提出的。

发明内容

本文描述了用于托管程序集的增量式生成的概念和技术。根据此处公开的概念和技术,编译器增量式地生成托管程序集,由此便于其中程序集的改变仅需要重新编译程序集的已改变部分而不是重新汇编整个程序集的快速应用开发环境。

根据一个方面,编译器生成包括程序集清单和多个代码模块的程序集,每一个代码模块包含公共中间语言(CIL)代码。如果类型改变发生在多个代码模块中的任一个的CIL代码内,则编译器重新生成其中发生过该类型改变的代码模块,以形成重新生成的代码模块。重新生成的代码模块包括重新生成的CIL代码,该重新生成的CIL代码替换代码模块的至少一部分CIL代码。编译器生成包括重新生成的代码模块的临时程序集。编译器用临时程序集的重新生成的代码模块来替换程序集的代码模块,并重新生成程序集清单。

根据另一个方面,编译器生成包括多个类型的主程序集。如果经编译的代码引入对现有类型的一个或多个改变,则编译器生成包括已改变的类型的新程序集,已改变的类型反映对该类型的类型改变。编译器随后用来自新程序集的已改变的类型替换主程序集中的类型。

根据又一方面,编译器将以托管编程语言所编写的源代码编译成CIL代码和元数据,由此生成程序集。程序集包括动态链接的库(.d11)文件,该文件包含程序集清单,程序集清单包括与该程序集以及多个代码模块文件有关的元数据,每一个代码模块文件包括一部分CIL代码。多个代码模块文件可以例如按.net模块文件格式来存储。程序集被表示在文件系统的第一位置中。

如果类型改变发生在.net模块文件的一个或多个内,则编译器重新生成在其中检测到类型改变的.net模块文件,由此形成重新生成的.net模块文件。编译器生成包括重新生成的.net模块文件的临时程序集。临时程序集被表示在文件系统的第二位置中。编译器随后从文件系统的第二位置复制重新生成的.net模块文件,并且用从文件系统的第二位置所复制的重新生成的.net模块文件来替换文件系统的第一位置中的.net模块文件。编译器重新生成包含程序集清单的.dll文件。

应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其它特征将变得显而易见。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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