当前位置: 首页 > 专利查询>微软公司专利>正文

库一致性检查器制造技术

技术编号:6924211 阅读:158 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了库一致性检查器。库管理系统可比较编程库之间的合约,以标识库之间的并集、交集及差集。管理系统可带有合约分析器,该合约分析器可从现有的库中移除合约定义以形成库合约。库合约可作为编程环境内的第一类项来管理,并且可被用作比较库的现有版本与新版本的参考。库管理系统可使用两个或多个相交的库来创建引用库,以供程序员编写应用程序以及其他用途。

【技术实现步骤摘要】
库一致性检查器
本专利技术涉及计算机领域,尤其涉及计算机领域中的库的管理。
技术介绍
使用许多计算机编程系统,例程库可被分布并且由许多不同的程序员使用。库可包含可在许多不同设置中重用的许多操作。例如,一组库可生成用户界面组件,执行与文件有关的操作,或执行网络通信。程序员可使用库来创建许多不同类型的应用。库(有时被称为部件)可随时间演化和改变,并且可为不同的硬件平台或不同的应用形成库的不同变体。
技术实现思路
库管理系统可比较编程库之间的合约,以标识库之间的并集、交集及差集。管理系统可带有合约分析器,该合约分析器可从现有的库提取合约定义以形成库合约。库合约可作为编程环境内的第一类项来管理,并且可被用作比较库的现有版本与新版本的参考。库管理系统可使用两个或多个相交的库来创建引用库,以供程序员编写应用程序以及其他用途。提供本
技术实现思路
以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本
技术实现思路
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。附图说明在附图中,图1是示出网络设置中代码开发环境的实施例的图示。图2是示出维恩(Venn)图的示例实施例的图示,该维恩图示出库覆盖。图3是示出一致性检查器的使用场景的示例性实施例的图示。图4是示出用于对库进行准备以供分析的方法的实施例的流程图。图5是示出用于将应用程序与库作比较的方法的实施例的流程图。图6是示出用于将库与主合约定义作比较的方法的实施例的流程图。具体实施方式例程库的合约可作为库族内的“第一类”项来管理。一致性检查器可执行实际库与库合约之间的、以及不同合约组之间的各种比较。合约可作为“第一类”项来管理,其中可在库的生存期期间定义并控制合约定义,并且其中合约可被用作与库作比较的主定义。在许多编程环境中,库可包含可由程序员用于开发应用程序的可重用例程。例如,可为台式或服务器计算机开发强调执行速度的例程库,而可为可针对能量效率来开发例程的便携式设备开发第二个库。这两种库可实现相同的合约集,并且可被用于在两个不同的平台上开发应用程序。库的合约可为该库中的每一例程定义输入和输出参数。在代码管理系统内,合约可被登记并作为第一类项来管理。第一类项可被认为是其他编程操作可针对它来发生的标准。在一典型的实施例中,可在库内编写例程的实现之前定义库的一组合约。在编码之前可协商合约定义并达成一致,并且一致性检查器可验证所编码的库符合合约定义。一致性检查器可允许若干不同的使用场景。在带有两个或多个版本的库的实施例中,可使用一致性检查器来标识两个库之间的交集。该交集对标识两个库所共有的例程子集是有用的,使得当程序被限制于该交集时,该程序可与两个不同的库兼容。在另一使用场景中,两个版本的库的并集可由一致性检查器来标识。两个版本的交集可标识例程的全集,可在标识新例程时使用该全集以确保新例程的名称先前在任何库中没有被定义。在又一使用场景中,一致性检查器可确定第一个库与第二个库之间的差集。在某些情况下,库管理系统可尝试迫使不存在差集——诸如在实现被假设成精确地符合给定合约的库时。在其他情况下,库管理系统可能想要迫使库支持现有合约的超集。在该情况下,差集可以是“定制”或专用于其他库的额外例程。差集可由程序员分析以确定例如从其应用程序移除哪些调用,使得该应用程序被移植到另一库。本说明书通篇中,在所有附图的描述中,相似的附图标记表示相同的元素。在将元素称为被“连接”或“耦合”时,这些元素可以直接连接或耦合在一起,或者也可以存在一个或多个中间元素。相反,在将元素称为被“直接连接”或“直接耦合”时,不存在中间元素。本专利技术主题可被具体化为设备、系统、方法、和/或计算机程序产品。因此,本专利技术主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本专利技术主题可以采用其上嵌入有供指令执行系统使用或结合其使用的计算机可使用或计算机可读的程序代码的计算机可使用或计算机可读的存储介质上的计算机程序产品的形式。在本文的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其它介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或其它合适的介质,因为程序可以经由例如对纸张或其它介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其它合适的方式处理,并随后存储在计算机存储器中。通信介质通常以诸如载波或其他传输机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”可以被定义为其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。当本专利技术主题在计算机可执行指令的一般上下文中具体化时,该实施例可以包括由一个或多个系统、计算机、或其它设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。图1是示出具有库的一致性检查器的系统的实施例100的图示。实施例100是其中可开发、测试以及部署可执行代码的网络环境的简化示例。图1的图示出了系统的各个功能组件。在某些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。某些组件可以是应用层软件,而其他组件可以是操作系统层组件。在某些情况下,一个组件到另一个组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其它情况下,连接可以通过跨长距离的网络连接来形成。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。实施例100是其中可开发可执行代码的网络环境的示例。可执行代码可按任何类型的编程语言来编写以及编译或解释,以创建机器可读代码,该机器可读代码有时被称为“二进制代码”或“可执行代码”。贯穿本说明书和权利要求书,对术语“代码”的引用可以是对任何类型的软件的引用并且可在“代码”之前加上修饰,诸如“源代码”、“已编译代码”、“中间代码”以及“可执行代码”。术语“源代码”可被用于指代处于其原始编写形式的计算机软件。在许多情况下,“源代码”可以是人类可读形式,并且可由程序员使用编辑器应用程序来编辑以及操纵。源代码的示例可使用诸如BASIC、C、COBAL、F本文档来自技高网...
库一致性检查器

【技术保护点】
1.一种在计算机处理器上执行的方法,所述方法包括:接收第一组例程(402),所述第一组例程中的所述例程中的每一个包括合约以及实现;接收第二组例程(404),所述第二组例程中的所述例程中的每一个包括合约;将所述第一组例程与所述第二组例程作比较(410),以便对所述例程执行至少一个集合运算,所述集合运算通过比较所述合约来执行。

【技术特征摘要】
2010.06.07 US 12/794,7821.一种在计算机处理器上执行的用于确定应用程序是否与多个硬件平台兼容的方法,所述方法包括:接收库的第一版本,所述第一版本包括第一组例程,其中所述第一版本是为第一硬件平台设计的,所述第一组例程中的每一个例程包括标识用于调用该例程的数据类型以及从该例程返回的数据类型的合约,并包括供在所述第一硬件平台处使用的功能的实现;接收所述库的第二版本,所述第二版本包括第二组例程,其中所述第二版本是为第二硬件平台设计的,所述第二组例程中的每一个例程包括标识用于调用该例程的数据类型以及从该例程返回的数据类型的合约;将所述第一组例程与所述第二组例程作比较,以便对所述例程执行至少一个集合运算,所述集合运算通过比较所述合约来执行;生成所述第一组例程与所述第二组例程之间的交集,以生成表示所述交集的只有合约的新的库,所述交集包括一组共有例程;所述方法还包括:接收用于分析的应用程序;扫描所述应用程序以标识所述应用程序对所述新的库中的例程的调用;对于所述调用中的每一者,确定传递给所述新的库中的例程的数据类型以及从所述新的库中的例程接收的数据类型;确定所述新的库的合约是否满足所述调用中的每一者,以便确定所述应用程序是否与所述第一硬件平台和所述第二硬件平台两者兼容。2.如权利要求1所述的方法,其特征在于,所述集合运算包括含有下列各项的组中的至少一项:差集;交集;以及并集。3.如权利要求1所述的方法,其特征在于,所述第一组例程是被编译的。4.如权利要求3所述的方法,其特征在于,所述第一组例程被编译成中间语言。5.如权利要求1所述的方法,其特征在于,所述第二组例程中的所述例程的每一个还包括供在所述第二硬件平台处使用的功能的实现。6.如权利要求5所述的方法,其特征在于,所述第一组例程中的第一例程实现第一接口并且以第一语言来编写;以及所述第二组例程中的第二例程实现第一接口并且以第二语言来编写。7.如权利要求5所述的方法,其特征在于,还包括:反编译所述共有例程组以定义共有例程的主集。8.如权利要求1所述的方法,其特征在于,所述方法用于验证主合约定义,所述主合约定义是所述第二组例程。9...

【专利技术属性】
技术研发人员:R·拜尔斯F·佩斯彻盖里R·克里希纳斯瓦米
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1