CN1570862A - 运行时间多态性 - Google Patents

运行时间多态性 Download PDF

Info

Publication number
CN1570862A
CN1570862A CNA2004100434026A CN200410043402A CN1570862A CN 1570862 A CN1570862 A CN 1570862A CN A2004100434026 A CNA2004100434026 A CN A2004100434026A CN 200410043402 A CN200410043402 A CN 200410043402A CN 1570862 A CN1570862 A CN 1570862A
Authority
CN
China
Prior art keywords
forced
converting objects
mapping
medium
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004100434026A
Other languages
English (en)
Other versions
CN100561426C (zh
Inventor
J·A·米塞克
J·M·罗莱特
J·P·斯诺弗尔
D·T·小特莱维森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1570862A publication Critical patent/CN1570862A/zh
Application granted granted Critical
Publication of CN100561426C publication Critical patent/CN100561426C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Abstract

可以利用元数据来允许运行时间多态性,该元数据可用于将对象强制转换成被强制转换对象。在示范的媒体实现中,处理器可执行指令所引起的操作包括:在运行时间环境中时,至少发现对象的一种类型;以及,通过使用元数据将该对象强制转换为该被转换对象,从该对象中创建被强制转换对象。示范的计算设备实现包括:一个或多个处理器;以及与其进行有效通信的一个或多个媒体,这一个或多个媒体包括:第一种类型的对象;元数据,它能够被用来强制转换运行时间环境中的未知对象;以及处理器可执行指令,当被执行时,这些处理器可执行指令使这一个或多个处理器执行动作,该动作包括:使用该运行时间环境中的该元数据,将这第一种类型的对象强制转换为第二种类型的被强制转换对象,这第一种类型不同于这第二种类型。

Description

运行时间多态性
技术领域
本揭示说明一般涉及运行时间多态性,举例来讲(但不作限制),尤其涉及:通过使用元数据将第一对象强制转换(casting)为第二对象,在运行时间环境中实现多态性。
背景
传统的面向功能的编程方法在很大程度上已由面向对象的编程规程取代。利用面向功能的编程,可围绕动作来组织代码,并可主要根据逻辑来写入代码。利用面向对象的编程,可围绕“对象”来组织代码,并可主要响应于底层数据来写入代码。
面向对象编程提供许多概念上的进步与代码相关的好处(例如,复用性、适应性、模块性等)。这些好处至少部分产生于面向对象编程的根本宗旨和来自那里的原则。例如,面向对象编程通常严格遵守封装、继承和多态性。
“封装”涉及对象通过限制从外部源对其数据的访问来保护其数据的能力和倾向。给定的对象可以规定其数据中的哪些数据可被暴露,并可以限制(如果不完全控制)可如何处理其数据。
“继承”允许一种类别的对象的特征延伸到另一种类别。例如,超类的每个子类继承那个超类的所有这些特征。另外,程序设计者可以规定将为每个继承的子类新包括哪些额外的特征。所产生的一套继承关系由该编译器在编译时间精心构思。由此,利用继承,能实现便于对现有的类的延伸的分层框架。
多态性可以至少部分地指对象对不同的刺激作出不同的反应的能力。换言之,多态性可以是关于能够在不同上下文中对相同的信息指定不同的用法或含义。更明确地说,传统的多态性允许超类的这些编程过程对其相应的子类被重新定义。但是,这种重新定义的能力是有限的。关于这些编程过程的这类重新定义在编译时是固定不变。实际上,程序设计者或设计人员根据关于这些编程过程的可能的输入的期望和/或预测,来建立该潜在多态性。
另外,传统的多态性单单基于该超类及其任何子类的全部类型。那些类型通常相关,使得子类可以被强制转换到其超类。所以,传统的多态性取决于正在被预定义以便允许从特殊源类型进行强制转换的目的类型。
相应地,对于多态性规程而言,需要有可提供提高了可预测性、灵活性和/或多样性的对象。
概述
利用可用于将对象强制转换为被强制转换对象的元数据,可以允许运行时间多态性。在示范的媒体实施中,其处理器可执行指令指示计算设备执行操作,这些操作包括:在运行时间环境中时,至少发现对象的一种类型;并且,通过使用元数据将该对象强制转换为被强制转换对象,来从该对象中创建被强制转换对象。示范的计算设备实现包括:一个或多个处理器;以及与这一个或多个处理器进行有效通信的一个或多个媒体,这一个或多个媒体包括:第一种类型的对象;元数据,它能够被用来强制转换运行时间环境中的未知对象;以及处理器可执行指令,当被执行时,这些处理器可执行指令使这一个或多个处理器执行动作,该动作包括:通过使用该运行时间环境中的该元数据,将这第一种类型的对象强制转换到第二种类型的被强制转换对象,这第一种类型不同于这第二种类型。
这里描述了其他方法、系统、装置、媒体、布置、装置、设备等的实施。
附图简述
贯穿这些附图使用相同的号码来指相似的和/或对应的方面、特点和部件。
图1是框图,展示了运行时间多态性的第一种示范途径。
图2是流程图,展示了关于运行时间多态性的第一种示范方法。
图3是框图,展示了运行时间多态性的第二种示范途径。
图4是流程图,展示了关于运行时间多态性的第二种示范方法。
图5A和5B是框图,分别展示了运行时间多态性的第三种和第四种示范途径。
图6A和6B是流程图,分别展示了关于运行时间多态性的第三种和第四种示范方法。
图7是框图,展示了运行时间多态性的第五种示范途径。
图8是流程图,展示了关于运行时间多态性的第五种示范方法。
图9展示了能够(完全或部分地)实施如这里所述的运行时间多态性的至少一个方面的示范计算操作环境(或一般计算设备)。
详细说明
在所描述的实施中,通过使用该过程的元数据说明,运行时间多态性允许使用增强的多态性模式在运行时间将任意类型的对象强制转换到新的类型中。以下所描述的至少一项实施定义以在运行时间被加以解释的元数据形式定义了多态性,而不是在编译时间定义多态性。
以下所描述的至少一项实施通过包括对该源对象的各个特点的引用,增强了多态性,而不是单单根据类型来使对象多形态。例如,该元数据可以用特殊名称描述关于该源对象的属性,而不考虑其类型。另外,关于运行时间多态性的以下所描述的至少一项实施启用未知的源类型,以便在运行时间发现源类型信息,而不是在编译时间充分定义该源类型信息和该目的类型信息。
此外,利用正用于使任何源类型能进行多对一强制转换的相同的运行时间强制转换定义,以下所描述的至少一项实施可处理多种任意的源类型到目的类型的多态性,而不是依靠一对一强制转换,其中,利用关于每种唯一的源类型的唯一的目的类型,使一特定类型多态化为另一种特定类型。这样,可以使多个源对象多态化为单一的目的对象。而且,以下所描述的至少一项实施在运行时间很灵活,以便不管在运行时间所发现的源类型如何,都可建立目的类型。
图1是框图100,展示了运行时间多态性的第一种示范途径。在所描述的实施中,框图100包括由实线划定界线的运行时间环境(RTE)110。对象102属于第一种类型(例如,第一种类别的类型(比如“类型1”))。如从运行时间环境110的这些实线那里延伸的虚线所指出的,可以在运行时间环境110内或在运行时间环境110外定义对象102,例如,在运行时间环境110初始化之前。
如所展示的,运行时间环境110包括属于第二种类型(例如,第二种类的类型(比如“类型2”))的被强制转换对象104。运行时间环境110也包括强制转换过程106和元数据108。在运行时间环境110中时,通过使用元数据108,并经由强制转换过程106,这第一种类型的对象102多态化为这第二种类型的被强制转换对象104。例如,强制转换过程106涉及解释关于从对象102中创建被强制转换对象104的元数据说明108。
图2是流程图200,展示了关于运行时间多态性的第一种示范方法。流程图200包括三(3)个方框202-206。在方框202处,输入运行时间环境。例如,(图1中的)运行时间环境110可能被启用(或可能已经存在)。在方框204处,发现关于对象的源类型。例如,通过从运行时间环境110内检查对象102,可以发现对象102的类类型或类似的类型。
在方框206处,通过使用元数据从该对象强制转换它,来创建被强制转换对象。例如,可以使用元数据108将对象102强制转换到被强制转换对象104。换言之,在运行时间环境110中时,编码可以将对象102强制转换到被强制转换对象104。另外,在维持运行时间环境110的同时,可以(例如)根据应用程序或响应于用户界面输入,来修改元数据108。也可以在强制转换过程106中使用这种修改过的元数据,以便从(这第一种类型的)对象102中或从其他对象中创建(第三种类型的)被强制转换对象104。
通过使用多态性,可以允许将一种类型用作另一种类型。在所描述的示范实施中,关于运行时间多态性的元数据定义额外的强制转换函数或映射,以允许基于该类型和不一定是整体意义上的该类型的单独的特点的一种类型的强制转换。结果,各种类型本身可以在不同的时间被加以定义,而无须在编译时间具备关于其他类型的特殊知识,同时,这些类型仍然在运行时间被强制转换回(和任选地向前转换)。例如,可以作为强制转换目标的一种或多种类型的这些单独的特点是源对象上所包括的属性的名称和类型以及该源对象上所包括的方法的名称和签名。
在所描述的实施中,四项示范的强制转换操作可以被用于在源对象与目的对象之间映射特点:
(1)方法和属性的1对1映射
这项强制转换操作可以定义从具有特定名称的源属性或方法到具有特定名称的目的属性或方法的映射。这些属性可以具有同一种类型或不同的类型,尤其当可以来回强迫使用那些类型时。此外,可以将该源对象上的方法调用暴露为该目的对象上的属性,反之亦然。
(2)方法和属性的1对无映射
这项强制转换操作可以不将源属性或方法映射到该目的对象中的任何事物。换言之,该目的对象上无该源属性或方法可供使用。
(3)方法和属性的多对1映射
这项强制转换操作允许程序设计者或其他用户将目的属性或方法的该值定义为一个或多个源属性和/或方法调用的函数。这个函数可以是从源对象到目的对象单向的,或者,它可以是双向的。利用双向映射,可以在该目的对象上设置属性或方法,同样可以在该源对象上对其进行自动设置。如同在以上的(1)中,可以将该源对象上的方法调用暴露为该目的对象上的属性,反之亦然。
(4)新的方法和属性
这项强制转换操作允许在不是该源对象的特点或函数的该目的对象上定义新的属性或方法。该目的对象上的这些所产生的属性可以被认为是“expando”属性。
图3是框图300,展示了运行时间多态性的第二种示范途径。框图300包括对象102、被强制转换对象104和运行时间强制转换说明302。运行时间强制转换说明302是(图1中的)元数据108的例子。对象102和被强制转换对象104每个可以包括至少一个特点,或者可以与至少一个特点(例如,方法或属性)有关联。在所描述的实施中,属性是由对象拥有并由用于对象的名称来识别的数据,方法是由该对象拥有的代码例行程序。
更明确地说,对象102和被强制转换对象104每个可以具有一个或多个属性和/或一种或多种方法。如所展示的,对象102包括多个属性102P1、102P2、102P3、102P4、102P5……102Pn,以及多种方法102M1……102Mn。被强制转换对象104包括多个属性104P1、104P2、104P3、104P4……104Pn,以及多种方法104M1……104Mn。
在所描述的实施中,运行时间强制转换说明302包括一项或多项映射说明302M。如所展示的,运行时间强制转换说明302包括至少七(7)项示范映射说明302M:(属性)反映映射说明302M1、变换映射说明302M2、重新命名映射说明302M3、函数映射说明302M4、(属性)宣称映射说明302M5、(方法)反映映射说明302M6和(方法)宣称映射说明302M7。
运行时间强制转换说明302也可以明显地或隐含地包括滤波器映射说明302Mn。例如,在隐含的滤波器映射说明302Mn中,运行时间强制转换说明302可以省略对将不被强制转换(到被强制转换对象104)的(对象102的)实际或潜在的特点的任何引用。例如,在明显的滤波器映射说明302Mn中,运行时间强制转换说明302可以肯定地指出:(对象102的)所列举的特殊的特点和/或未加规定的一般特点将不被强制转换(到被强制转换对象104)。
这七项映射说明302M1……302M7中的每项映射说明对应于各自的映射或特点强制转换操作304(1)……304(7)。明确地说,框图300展示了七(7)个示范的对应的映射304,如下所述:(属性)反映映射304(1)、变换映射304(2)、重新命名映射304(3)、函数映射304(4)、(属性)宣称映射304(5),(方法)反映映射304(6)和(方法)宣称映射304(7)。关于属性特点和方法特点中的任何一种特点或这两种特点的过滤映射304(n)也可以由运行时间强制转换说明302来实施。
所以,可以在强制转换操作中使用映射说明302M中的一项或多项映射说明,以便将对象102强制转换到被强制转换对象104。每项单独的特点强制转换操作304由实线箭头和虚线箭头来表现。该实线箭头指出从对象102到被强制转换对象104的连接,该虚线箭头指出从被强制转换对象104到对象102的“向后”连接。以下进一步描述这个运行时间结合的方面。
单独的特点强制转换操作304可以被实行如下。反映映射304(1)将属性102P1直接反映到属性104P1中。变换映射304(2)为属性104P2转换一个或多个属性(例如,属性102P2的读取、写入、类型等)。重新命名映射304(3)将属性102P3改名为属性104P3。
函数映射304(4)将被强制转换对象104的属性104P4作为对象102的至少一个属性的函数来加以强制转换。如所展示的,属性104P4根据函数映射说明302M4是属性102P4和属性102P5的函数。关于宣称映射304(5),新近为被强制转换对象104宣称了属性104Pn,作为到和/或来自对象102的延伸。关于滤波器映射304(n)和对象102的属性102Pn,属性102Pn被加以过滤,作为解释运行时间强制转换说明302的结果,使得不为被强制转换对象104强制转换与此对应的属性。
反映映射304(6)将方法102M1直接反映到方法104M1中。关于宣称映射304(7),根据宣称映射说明302M7,新近为被强制转换对象104宣称方法104Mn,作为到和/或来自对象102的延伸。关于滤波器映射304(n)和对象102的方法102Mn,方法102Mn被加以过滤,作为解释运行时间强制转换说明302的结果,使得被强制转换对象104中不包括与此对应的方法。
框图300展示了从对象102创建被强制转换对象104的示范强制转换操作。如上所述,这项强制转换操作能够如这些虚线箭头所指出的那样来维持从被强制转换对象104到对象102的向后连接。所以,可以认为对象102与被强制转换对象104之间的连接具有向前的方面和向后的方面。如这些实线箭头所表现的,该向前连接方面在对象102与被强制转换对象104之间建立关系。如这些虚线箭头所表现的,该向后连接方面在对象102与被强制转换对象104之间建立运行时间的绑定。通过分离的方式和/或彼此结合的方式,该向前连接和向后连接促进了(i)对象102到被强制转换对象104和(ii)被强制转换对象104到对象102的运行时间的绑定。
应该注意,每项单独的特点强制转换操作304可能不具备相关的向后连接。例如,关于属性宣称映射304(5)和方法宣称映射304(7)的向后连接可能不相关。另一个例子是:可能难以或无法创立关于特定的函数映射304(4)的向后连接。
在所描述的实施中,运行时间强制转换说明302可能尝试为被强制转换对象104强制转换一目的特点,对于该对象104,没有如该特定的映射说明302M所期望的、对象102中的对应的源特点。例如,变换映射说明302M2期望对预定属性102P2进行定位,用于强制转换到属性104P2。但是,当在运行时间环境110中进行操作时,对象102中可能不存在这种预期的预定特点。关于这类可能发生的事件和/或不测事件,被定义成期望对源对象中的预定特点进行定位的一项或多项(包括所有的)映射说明302M可以包括一个或多个默认参数,用于:当该源对象缺乏该预期的预定特点时,为该目的对象创建被强制转换的特点。
图4是流程图400,展示了关于运行时间多态性的第二种示范方法。流程图400包括六(6)个方框402-412。流程图400提出一种所描述的实施,其中,可能无法在强制转换操作期间从源对象中检索到预期的预定特点。
在方框402处,输入运行时间环境。例如,(图1中的)运行时间环境110可能在代码处理计算设备中被启用(或可能已经存在于代码处理计算设备中)。在方框404处,从运行时间强制转换说明中检索关于对象的预定特点的映射说明。例如,可以从运行时间强制转换说明302中检索关于对象102的预定特点(例如,属性102P或方法102M)的(图3中的)特定的映射说明302M。
在方框406处,确定该对象中是否存在该预定特点。例如,检查对象102的特点102P和102M,以确定对象102内是否存在特定的映射说明302M所预期的预定特点。如果是,则在方框408处,根据该映射说明,将该对象的该预定特点作为被强制转换特点强制转换到被强制转换对象中。例如,根据特定的映射说明302M,将对象102的预期的预定特点102P或102M作为被强制转换特点104P或104M强制转换到被强制转换对象104中。
另一方面,如果在方框406处确定该对象中没有该预期的预定特点,那么,在方框410处,根据该运行时间强制转换说明来确定关于该预定特点(和/或该被强制转换的特点)的默认参数。这类默认参数具体地说可能是该映射说明的一部分,通常也可能是该运行时间强制转换说明的一部分。例如,可以参考全部的运行时间强制转换说明302和/或特定的映射说明302M,以确定关于对象102的预期的预定特点102P或102M(和/或被强制转换对象104的将要被强制转换的特点104P或104M)的默认参数。
在方框412处,根据该映射说明,将这些默认参数作为该被强制转换特点强制转换到该被强制转换对象中。例如,通过应用特定的映射说明302M的命令,并且/或者,通过将该默认参数直接放入被强制转换特点104P或104M而不作修改,可以将该默认参数强制转换到对象104的被强制转换特点104P或104M中。如被环绕的“A”和“B”所指出的,在执行方框408和412中的任何一个方框的动作之后,可以在方框404处继续流程,以处理该运行时间强制转换说明的另一项映射说明。
图5A是框图500A,该框图展示了运行时间多态性的第三种示范途径。框图500A包括:两个应用程序502和504;运行时间强制转换说明302;以及四个对象102(A)、102(B)、104(C1)和104(C2)。如为所描述的实施而展示的,应用程序502和504表现一般应用程序504和(可再用的)服务程序库502,它们可任选地可能是操作系统的一部分。
服务程序库502和应用程序504可以经由消息或类似的机制并使用链路506在彼此之间进行通信。应用程序504包括两个对象或与两个对象有关联,这两个对象是:类型“A”的对象102(A)和类型“B”的对象102(B),其中,类型A不同于类型B。在这个例子中,应用程序504请求:服务程序库502执行运行时间强制转换操作,以便从对象102(A)和对象102(B)中创建具有相同类型的两个对象。应该注意,应用程序504可以作为另一种方式执行该运行时间强制转换操作,而无须调用任何其他的应用程序。
服务程序库502使用运行时间强制转换说明302来控制所请求的运行时间强制转换操作。运行时间强制转换说明302可以由应用程序504、由服务程序库502、由操作系统(图5A中未作明确的展示)、由另一个应用程序等来提供。通过解释运行时间环境110中的运行时间强制转换说明302,可根据强制转换操作304(AC)中的对象102(A)来创建类型“C”的被强制转换对象104(C1)。同样,通过解释运行时间环境110中的运行时间强制转换说明302,可根据强制转换操作304(BC)中的对象102(B)来创建也具有类型“C”的被强制转换对象104(C2)。
这样,两种不同类型A和B的对象102(A)和对象102(B)被分别强制转换到同一种类型C的对象104(C1)和对象104(C2)。另外,不需要从相同的基类中导出对象102(A)和对象102(B)。至少部分地通过使用滤波器映射说明302Mn来过滤并非共有的特点,通过使用宣称映射说明302M5和/或302M7,并且/或者通过当如运行时间强制转换说明302中所规定的预期的预定特点不位于源对象中时依靠默认参数,可以实现不同类型的对象到相同类型的对象的这种强制转换。应该理解:也可以实施其他的映射说明302M,用于将不同类型的对象强制转换到相同类型的对象。
图6A是流程图600A,该流程图展示了关于运行时间多态性的第三种示范方法。流程图600A包括五(5)个方框602-610。在方框602处,应用程序调用服务程序库组件。例如,(图5A中的)应用程序504可以调用服务程序库502。在方框604处,该应用程序将第一种类型的第一对象和第二种类型的第二对象提供给该服务程序库。例如,应用程序504可以使用链接506将类型A的对象102(A)和类型B的对象102(B)(通过指针引用等直接地)提供给服务程序库502。
在方框606处,该服务程序库使用运行时间强制转换说明,将这第一对象强制转换到第三种类型的第一被强制转换对象。例如,服务程序库502可以使用运行时间强制转换说明302,将强制转换操作304(AC)中的对象102(A)强制转换到类型C的被强制转换对象104(C1)。在方框608处,该服务程序库使用该运行时间强制转换说明,将这第二对象强制转换到这第三种类型的第二被强制转换对象。例如,服务程序库502可以使用运行时间强制转换说明302,将强制转换操作304(BC)中的对象102(B)强制转换到类型C的被强制转换对象104(C2)。
在方框610处,该服务程序库维持由这些强制转换操作建立的绑定。这些绑定在这第一对象与这第一被强制转换对象之间,以及在这第二对象与这第二被强制转换对象之间。在终止这第一被强制转换对象和/或这第二被强制转换对象之前,可以维持这些绑定。举例来讲,服务程序库502可以维持对象102(A)与被强制转换对象104(C1)之间的绑定,以及对象102(B)与被强制转换对象104(C2)之间的绑定。作为选择,应用程序504或其他代码可以分别维持对象102(A)和102(B)跟被强制转换对象104(C1)和104(C2)之间的绑定。无论如何,都可以维持这些绑定,而无须进一步引用运行时间强制转换说明302。
图5B是框图500B,该框图展示了运行时间多态性的第四种示范途径。框图500B包括多个对象102(1,2…n)、运行时间强制转换说明302和被强制转换对象104。如所展示的,强制转换操作中涉及对象#1 102(1)、对象#2 102(2)和对象#n 102(n),以便使用运行时间强制转换说明302来创建被强制转换对象104。这样,可以使用运行时间强制转换说明302将两个或更多的对象102(1,2…n)强制转换到被强制转换对象104。
在所描述的实施中,通过使用运行时间强制转换说明302中的一项或多项特点映射说明302MF,从多个对象102(1,2…n)中创建被强制转换对象104。运行时间强制转换说明302包括映射说明302MF1和映射说明302MF2。多个对象102(1,2…n)中的每个对象至少包括一个特点102F(1,2…n),例如,源特点。如框图500B中所示,被强制转换对象104至少包括两个被强制转换特点104F(1,2),例如,目的特点。
映射说明302MF1利用特点映射304(111),将来自一个对象的一个特点映射到该被强制转换对象的一个被强制转换特点。明确地说,特点强制转换操作304(111)将对象#1 102(1)的特点102F1强制转换到被强制转换对象104的被强制转换特点104F1。映射说明302MF2利用特点映射304(222)/304(n22)/304(2n22),将来自多个(不同的)对象的多个特点映射到该被强制转换对象的一个被强制转换特点。明确地说,特点强制转换操作304(222)/304(n22)/304(2n22)将对象#2 102(2)的特点102F2和对象#n 102(n)的特点102Fn强制转换到被强制转换对象104的被强制转换特点104F2。
虽然图5B中如此展示,但是,应该理解:任何单一的强制转换操作中不都需要一定发生特点映射304(111)和特点映射304(222)/304(n22)/304(2n22)。另外,在示范实施中参照以下关于图7和图8的说明,对象#1 102(1)可以对应于字符串表格对象,对象#2 102(2)可以对应于图像对象,对象#3 102(3)(其中,n=3)可以对应于文件对象。应该注意,在这种示范实施中,运行时间强制转换说明302中可能包括不同的映射说明302MF。
图6B是流程图600B,该流程图展示了关于运行时间多态性的第四种示范方法。流程图600B包括两(2)个方框612和614。在方框612处,使用第一映射说明将第一对象的第一个特点强制转换到被强制转换对象的第一个被强制转换特点。例如,可以将对象#1 102(1)的(图5B中的)特点102F1强制转换到被强制转换对象104的被强制转换特点104F1。
在方框614处,使用第二映射说明将第二对象的第二个特点和第三对象的第三个特点强制转换到该被强制转换对象的第二个被强制转换特点。例如,可以将对象#2 102(2)的特点102F2和对象#n 102(n)的特点102Fn强制转换到被强制转换对象104的被强制转换特点104F2。这第一项和第二项(特点)映射说明可能来自相同的运行时间强制转换说明(例如,运行时间强制转换说明302)。作为选择,方框614的动作另一方面可能排除这第三对象的第三个特点,使得这第二项映射说明不是它的函数(并且任选地不是函数类型的映射说明)。
图7是框图700,该框图展示了运行时间多态性的第五种示范途径。框图700包括两个强制转换对象702V和702A、规则704、图形用户界面(GUI)方框706、经由GUI方框706而加以呈现的观看方框708、应用程序710和用户712。强制转换对象702V包括观看对象102V、运行时间强制转换说明302和被强制转换对象104V。观看对象102V包括面向观看的、与文件相关的信息。强制转换对象702A包括应用程序对象102A、运行时间强制转换说明302和被强制转换对象104A。应用程序对象102A包括面向应用的、与文件相关的信息。
在所描述的实施中,强制转换对象702V和702A用作按提钢性方式代表对象的增强型对象。这种提钢性对象表示法可以为更大的系统和/或环境提供关于自身的信息(例如,该增强型对象所暴露的那组属性和方法)。在运行时间,增强型对象使用运行时间强制转换说明,以便应用这些正确的映射来执行源对象与目的对象之间的多态特点层次的强制转换操作。
这种增强型对象能够执行该目的对象的各个特点,并且,它可以通过保持对其的内部引用来包括该源对象。该增强型对象使用该运行时间强制转换说明来创建运行时间绑定,这些运行时间绑定有效地执行如在那里所定义的这些特点强制转换操作。对于每种特点强制转换操作,可能有一种绑定。可以在每个绑定的内部用机会主义的方式(opportunistically)来评估这些特点强制转换操作本身。例如,在一对一属性映射中,当更新该目的属性值时,可以更新该源属性值,反之亦然。该更新可以任选地由该增强型对象来处理。
如关于所述实施的框图700中所示,在使用运行时间强制转换说明302的强制转换操作中,强制转换对象702V从观看对象102V中创建被强制转换对象104V。可能根据其间的单独的特点强制转换操作,通过监视对任何一个对象的变化,并通过响应地执行更新,强制转换对象702V能够维持观看对象102V与被强制转换对象104V之间的各种绑定。
同样,在使用运行时间强制转换说明302的强制转换操作中,强制转换对象702A从应用程序对象102A中创建被强制转换对象104A。可能根据其间的单独的特点强制转换操作,通过监视对任何一个对象的变化,并通过响应地执行更新,强制转换对象702A能够维持应用程序对象102A与被强制转换对象104A之间的各种绑定。
虽然未如此示出,但是,关于强制转换对象702V和702A中的任何一种对象或这两种对象的运行时间强制转换说明302可能仅仅与其有关联,并且不一定作为其一部分而被包括在内。此外,强制转换对象702V和702A可以共享运行时间强制转换说明302。也应该注意,例如,可以使用运行时间强制转换说明302从被强制转换对象104V中创建观看对象102V,以有助于维持应用程序对象102A与观看对象102V之间的一致性。
当使用相同的(例如,完全相同的或本质上类似的)运行时间强制转换说明302来加以创建时,被强制转换对象104V和被强制转换对象104A可能属于同一种类型。实际上,通过使用相同的运行时间强制转换说明302,可确保在被强制转换对象104V和104A的构成方面提高确定性和等效性。关于被强制转换对象104V和104A的特点集的所产生的可预测性促进了规则704的公式化及其随后的应用。
换言之,规则704在代码大小和操作复杂性方面会更有效率,这是因为:(i)不需要执行误差校验;以及(ii)保证将要被实行这些规则的这些被强制转换对象的特点集,作为使用运行时间强制转换说明302来强制转换它们的结果。例如,规则704中不需要适应关于被强制转换对象104V和104A的构成的运行时间期间的意外事件或发现,因为这可以得到有效的保证。
在操作中,当观看对象102V和应用程序对象102A分别被观看方框708/GUI706和应用程序710改变时,强制转换对象702V和702A以及规则704用于维持观看对象102V与应用程序对象102A之间的一致性。当应用程序710改变应用程序对象102A时,强制转换对象702A经由应用程序对象102A与被强制转换对象104A之间的各种绑定,将该变化传播给被强制转换对象104A。当对被强制转换对象104A实行规则704时,检测对被强制转换对象104A的变化。规则704将这个变化传播给被强制转换对象104V。
被强制转换对象104A中的该变化经由规则704到被强制转换对象104V的传播由其特点集的等效性的确定性来加以促进。强制转换对象702V经由其间的各种绑定,将被强制转换对象104V中的变化传播给观看对象102V。关于观看708,GUI 706可以用对于用户712而言显而易见的方式来反映观看对象102V中的变化。
也可以按相反的方向来执行用于维持观看对象102V与应用程序对象102A之间的一致性的过程/模式。因此,如果用户712经由观看708/GUI 706来改变观看对象102V,则可以通过被强制转换对象104V、规则704、被强制转换对象104A等,将这类变化传播给应用程序对象102A。应该注意,也可以在不使用强制转换对象702V和702A的提钢性对象表示法的情况下,实现用于维持观看对象102V与应用程序对象102A之间的一致性的过程。
图8是流程图800,该流程图展示了关于运行时间多态性的第五种示范方法。流程图800包括五(5)个方框802-810。(图7中的)框图700展示了管理对象的示范途径的至少一部分,流程图800展示了关于管理对象的示范方法的至少一部分。
在方框802处,使用运行时间强制转换说明将第一种类型的第一对象强制转换到第三种类型的第一被强制转换对象。例如,可以使用运行时间强制转换说明302将(图7中的)应用程序对象102A强制转换到被强制转换对象104A。被强制转换对象104A的类型由运行时间强制转换说明302来确定。这种强制转换可能任选地是增强型对象(例如,强制转换对象702A)的一部分。
在方框804处,使用该运行时间强制转换说明将第二种类型的第二对象强制转换到这第三种类型的第二被强制转换对象。例如,可以使用运行时间强制转换说明302将观看对象102V强制转换到被强制转换对象104V,或者,反之亦然。被强制转换对象104V的类型也由运行时间强制转换说明302来确定,并且等同于该所述实施中的被强制转换对象104A的类型。这种强制转换可能随意地是增强型对象(例如,强制转换对象702V)的一部分。
在方框806处,将算法应用于这第一被强制转换对象和这第二被强制转换对象。例如,可以对被强制转换对象104A和被强制转换对象104V实行规则704(是这类算法的例子),以便对它们进行监视并检测对其的任何变化。另外,可以使用规则704,将在被强制转换对象104A中所检测到的变化传播给被强制转换对象104V,反之亦然。
如果这第一被强制转换对象被一个或多个算法的应用改变(例如,因为这些算法曾将在这第二被强制转换对象中所检测到的变化传播给这第一被强制转换对象),那么,在方框808处,响应于对这第一被强制转换对象的基于算法的变化,来修改这第一对象。例如,利用如根据运行时间强制转换说明302而建立的应用程序对象102A与被强制转换对象104A之间的绑定,通过在其上实行规则704而产生的对被强制转换对象104A的变化可以被传播给应用程序对象102A。
同样,如果这第二被强制转换对象被一个或多个算法的应用改变(例如,因为这些算法曾将在这第一被强制转换对象中所检测到的变化传播给这第二被强制转换对象),那么,在方框810处,响应于对这第二被强制转换对象的基于算法的变化,来修改这第二对象。例如,利用如根据运行时间强制转换说明302而建立的观看对象102V与被强制转换对象104V之间的绑定,通过在其上实行规则704而产生的对被强制转换对象104V的变化可以被传播给观看对象102V。如被环绕的“A”和“B”所指出的,在已执行方框808和810中的任何一个方框的动作之后,可以在方框806处继续流程,以便继续应用这些算法。
在图示中展示了图1-8的各种途径和方法,这些图示被分成多个方框。但是,描述并/或示出这些途径和方法的顺序和/或布局并不意在被解释成起限制的作用,并且,可以按任何顺序来组合、增加、除去和/或重新排列任何数量的这些方框,以便为运行时间多态性执行一种或多种系统、方法、媒体、装置、布置等。另外,虽然这里的说明包括对特殊实施(例如图5A、5B和7中的实施)(以及图9中的示范系统环境)的参考,但是,可以在任何合适的硬件、软件、固件或其组合中实施这些途径和方法,并使用任何合适的数据建模、编程语言、编码机制等。
图9展示了示范的计算操作环境900(或一般计算设备),该示范的计算操作环境900(或一般计算设备)能够为如这里所描述的运行时间多态性(充分或部分地)实现至少一种系统、设备、媒体、部件、途径、方法、过程、及它们的某种组合等。可以在以下所描述的计算机和网络系统结构中,或在单机情况中利用计算环境900。
示范的计算设备操作环境900只是环境的一个例子,它并不意在对这些适用的计算设备结构(包括计算机、消费电子设备、游戏控制台、置顶盒、移动装置等的结构)的使用或功能性的范围提出任何限制。另外,计算设备环境900不会被解释为具有涉及如图9所示的任何一个部件或任何部件组合的任何从属性或要求。而且,这些适用的计算设备不受到其中所使用的处理器/处理机制的限制。例如,这类处理器/处理机制可以包括(但不局限于)电子集成电路(ICs)、量子计算、光计算、机械计算(例如,使用纳米技术)等。
此外,可以利用众多其他的通用或专用计算设备(包括电子的)环境或配置来实施运行时间多态性。可能适用的众所周知的计算(设备)系统、环境和/或配置包括(但不局限于)个人计算机、服务器计算机、瘦客户机、肥客户机、个人数字助理(PDAs)或移动电话、手持设备或便携式设备、多处理器系统、基于微处理器的系统、置顶盒、可编程消费电子设备、电视游戏机、游戏控制台、便携式或手持游戏设备、网络PC、小型计算机、大型计算机、包括任何以上系统或设备及其某种组合等的分布式计算环境。
可以在处理器可执行指令的一般上下文中描述关于运行时间多态性的实施。通常,处理器可执行指令包括执行特殊任务或实施特殊的抽象数据类型的例行程序、程序、对象、组件、数据结构、其他代码等。如这里的某些实施中所描述的,也可以在分布式计算环境中实践运行时间环境中的多态对象强制转换,在这些分布式计算环境中,由通过通信链路和/或网络被连接的远程联接的处理设备来执行任务。尤其在分布式计算环境中,处理器可执行指令可以位于分开的存储媒体(由不同的处理器执行)中,并且/或者存在于传输媒体上或在其上加以传播。
计算设备环境900包括采用计算机902形式的通用计算设备,它可以包括具有计算性能和/或处理性能的任何计算设备。计算机902的这些部件可以包括(但不局限于)一个或多个处理器或处理单元904、系统存储器906和系统总线908,系统总线908将包括处理器904的各种系统组件耦合到系统存储器906。
系统总线908表现了任何的几种类型的有线或无线总线结构(包括存储总线或存储控制器、外围总线、加速图形端口和使用各种总线构造中的任何总线构造的处理器或局部总线)中的一种或多种有线或无线总线结构。举例来讲,这类构造可以包括“工业标准结构”(ISA)总线、“微通道结构”(MCA)总线、“增强型ISA(EISA)”总线、“视频电子标准协会”(VESA)局域总线、也被称作“中间层(Mezzanine)总线”的“外围部件互连”(PCI)总线、它们的某种组合等。
计算机902通常包括各种处理器可存取介质。这类介质可以是可由计算机902或另一种计算设备进行存取的任何可用介质,并且,它包括易失和非易失介质、可移动和不可移动的介质,以及存储和传输介质。
系统存储器906包括采用易失存储器(例如,随机存取存储器(RAM)910)和/或非易失存储器(例如,只读存储器(ROM)912)的形式的处理器可存取存储介质。基本输入/输出系统(BIOS)914通常被存储在ROM 912中,该基本输入/输出系统包含有助于在计算机902内的各个元件之间传送信息(例如,在启动期间)的基本例行程序。RAM 910通常包含可由处理单元904立即存取并且/或者目前正由处理单元904进行操作的数据和/或程序模块/指令。
计算机902也可以包括其他的可移动/不可移动和/或易失/非易失存储介质。举例来讲,图9展示了:硬盘驱动器或磁盘驱动器阵列916,用于从(通常是)不可移动的非易失磁性介质读取并对其写入(未分开示出);磁盘驱动器918,用于从(通常是)可移动的非易失磁盘920(例如,“软盘”)读取并对其写入;以及光盘驱动器922,用于从(通常是)可移动的非易失光盘924(例如,CD-ROM、DVD-ROM或其他光学介质)读取并/或对其写入。硬盘驱动器916、磁盘驱动器918和光盘驱动器922每个都由一个或多个存储介质接口926连接到系统总线908。作为选择,硬盘驱动器916、磁盘驱动器918和光盘驱动器922可以由一个或多个其他分开的或组合的接口(未示出)连接到系统总线908。
这些磁盘驱动器及其关联的处理器可存取介质为计算机902提供处理器可执行指令(例如,数据结构、程序模块和其他数据)的非易失存储。虽然示范的计算机902展示了硬盘916、可移动磁盘920和可移动光盘924,但是,将会理解:其他类型的处理器可存取介质可以存储可由计算设备(例如,盒式磁带或其他磁性存储设备、快闪存储器、CD-ROM、数字通用光盘(DVD)或其他光学存储器、RAM、ROM、电可擦除可编程只读存储器(EEPROM)等)存取的指令。这类介质也可以包括所谓的专用或硬连线的集成电路(IC)芯片。换言之,可以利用任何处理器可存取介质来实现示范的计算系统和环境900的存储介质。
任何数量的程序模块(或处理器可执行指令的其他单位或集合)可以被存储在硬盘916、磁盘920、光盘924、ROM 912和/或RAM 910上,一般举例来讲,包括操作系统928、一个或多个应用程序930、其他程序模块932和程序数据934。特殊举例来讲(但不作限制),(图1、3、5A、5B和7中的)对象102、被强制转换对象104、运行时间强制转换说明302、应用程序504/710、服务程序库502、强制转换对象702、规则704等可能是这类程序模块928、930、932和934中的任何一个或多个程序模块的一部分。
例如,正在经由GUI 706修改观看对象102V的(图7中的)用户712可以经由输入设备(例如,键盘936)和指点设备938(例如,“鼠标”)来将命令和/或信息输入计算机902。其他输入设备940(未明确地示出)可以包括话筒、操纵杆、游戏垫、圆盘式卫星电视天线、串行端口、扫描仪和/或类似的输入设备。这些和其他的输入设备经由被耦合到系统总线908的输入/输出接口942而被连接到处理单元904。但是,它们也可以通过其他接口和总线结构(例如,并行端口、游戏端口、通用串行总线(USB)端口、IEEE 1394(“Firewire”)接口、IEEE 802.11无线接口、Bluetooth无线接口等来加以连接。
监视器/观看屏幕944或其他类型的显示设备也可以经由接口(例如,视频适配器946)被连接到系统总线908。视频适配器946(或另一个部件)可能是或可能包括图形卡,该图形卡用于处理图形密集的计算,并用于处理需要技能的显示要求。通常,图形卡包括图形处理单元(GPU)、视频RAM(VRAM)等,以促进图形操作的敏捷的性能。除监视器944以外,其他输出外围设备还可以包括诸如扬声器(未示出)和打印机948等部件,这些部件可以经由输入/输出接口942被连接到计算机902。
计算机902可以在使用与一台或多台远程计算机(例如,远程计算设备950)的逻辑连接的联网环境中进行操作。举例来讲,远程计算设备950可能是个人计算机、便携式计算机(例如,膝上型计算机、写字板计算机、PDA、移动站等)、掌上或可置于口袋的计算机、游戏设备、服务器、路由器、网络计算机、对等设备、其他公共网络节点、或如以上所列出的另一种计算机类型等。但是,远程计算设备950被展示为便携式计算机,该便携式计算机可以包括这里根据计算机902所描述的元件和特点中的许多或全部元件和特点。
计算机902与远程计算机950之间的逻辑连接被描绘成局域网(LAN)952和一般的广域网(WAN)954。这类联网环境在办公室、企业范围的计算机网络、内联网、因特网、固定和移动的电话网、其他无线网络、游戏网络、它们的某种组合等中很普遍。
当在LAN联网环境中加以实现时,计算机902通常经由网络接口或适配器956被连接到LAN 952。当在WAN联网环境中加以实现时,计算机902通常包括调制解调器958或用于在WAN 954上建立通信的其他装置。调制解调器958(可能在计算机902的内部或外部)可以经由输入/输出接口942或任何其他合适的方案而被连接到系统总线908。将会理解:所展示的网络连接起示范的作用,并且,可以使用在计算机902与950之间建立通信线路的其他装置。
在联网环境(例如,利用计算设备环境900所展示的联网环境)中,相对于计算机902或其各个部分而加以描绘的程序模块或其他指令可以被完全或部分地存储在远程记忆存储设备中。举例来讲,远程应用程序960驻留在远程计算机950的存储部件上,但可以经由计算机902来加以使用或存取。此外,出于说明的目的,应用程序930和其他处理器可执行指令(例如,操作系统928)在这里被展示为离散的框,但可以认识到:这类程序、部件和其他指令在各个时间上可以驻留在计算设备902(和/或远程计算设备950)的不同的存储部件中,并且由计算机902的数据处理器904(和/或远程计算设备950的数据处理器)来执行。
如上所述,传统的多态性模型单单基于类型,并需要具有在编译时间被定义的多态性。源类型信息和目的类型信息也在编译时间被加以充分定义。另外,在传统的多态性中,一特定类型被多态化为另一种特定类型,这需要对于每种唯一的源类型具有唯一的目的类型(一对一强制转换)。
另一方面,如这里所描述的某些实施提供了多态性范例,通过使用该过程的元数据说明,该多态性范例允许在运行时间使用增强型多态性模式将任意类型的对象强制转换到新的类型中。在某些所描述的实施中,该增强型多态性范例涉及以下的一项或多项内容:(i)通过包括源的特点,来实行多态性延伸;(ii)具有元数据的多态性定义,这在运行时间加以解释;(iii)源类型独立性,其中,可以在运行时间发现源类型信息;(iv)多对一强制转换,用于使任意的源类型多态化为具有正在被用于任何源类型的相同的运行时间强制转换定义的目的类型;以及(v)运行时间自适应性,其中,不管在运行时间所发现的源类型如何,都强制转换目的类型。
虽然已用针对组件、算法以及函数特点和/或图示的语言描述了系统、媒体、方法、途径、过程、布置、装置、设备和其他实施,但是,将会理解:所附权利要求书中所定义的发明并不一定局限于所描述的特殊的特点或图示。相反,这些特殊的特点和图示被揭示为实施所声明的发明的示范形式。

Claims (86)

1.一种计算设备,其特征在于包括:
一个或多个处理器;以及,
与这一个或多个处理器进行有效通信的一个或多个媒体,这一个或多个媒体包括:
第一种类型的对象;
元数据,能够被用来在运行时间环境中强制转换未知对象;以及,
处理器可执行指令,当被执行时,这些处理器可执行指令使这一个或多个处理器执行动作,该动作包括:
在该运行时间环境中使用该元数据来将这第一种类型的对象强制转换为第二种类型的被强制转换对象,这第一种类型不同于这第二种类型。
2.如权利要求1中所述的计算设备,其特征在于:其中,该元数据描述任意类型的对象到这第二种类型的对象的强制转换。
3.如权利要求1中所述的计算设备,其特征在于:其中,这一个或多个媒体进一步包括这第二种类型的被强制转换对象。
4.如权利要求1中所述的计算设备,其特征在于:其中,这些处理器可执行指令,当被执行时,使这一个或多个处理器执行进一步的动作,这些动作包括:
输入该运行时间环境;以及,
在输入该运行时间环境之后,发现该对象的这第一种类型。
5.如权利要求1中所述的计算设备,其特征在于:其中,该元数据包括具有多项映射说明的运行时间强制转换说明。
6.一个或多个处理器可存取介质,其特征在于:包括处理器可执行指令,当被执行时,这些处理器可执行指令指示计算设备执行操作,这些操作包括:
在运行时间环境中时,发现对象的至少一种类型;以及,
通过使用元数据将该对象强制转换为该被强制转换对象,来从该对象中创建被强制转换对象。
7.如权利要求6中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的操作,该操作包括:
在执行该发现操作之前,输入该运行时间环境。
8.如权利要求6中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该创建操作进一步包括一项操作,以便:
通过从这至少一种类型的对象进行强制转换,来创建具有第一种类型的被强制转换对象,这至少一种类型属于第二种类型,这第一种类型不同于这第二种类型。
9.如权利要求6中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该创建操作进一步包括一项操作,以便:
在该运行时间环境中解释该元数据。
10.一个或多个处理器可存取媒体,其特征在于:包括处理器可执行指令,当被执行时,这些处理器可执行指令指示计算设备执行动作,这些动作包括:
从运行时间强制转换说明中检索至少一项映射说明,这至少一项映射说明定义特点层次的映射,以创建被强制转换对象;以及,
根据至少一项映射说明来执行特点强制转换操作。
11.如权利要求10中所述的这一个或多个处理器可存取媒体,其特征在于:其中,执行动作包括:
在运行时间环境中执行该特点强制转换操作。
12.如权利要求10中所述的这一个或多个处理器可存取媒体,其特征在于:执行动作包括:
根据这至少一项映射说明,来为该被强制转换对象映射被强制转换特点。
13.如权利要求12中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该被强制转换特点包括一个属性,并且,映射动作包括:
将该属性作为该被强制转换对象的新宣称的特点来加以映射。
14.如权利要求12中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该被强制转换特点包括一种方法,并且,映射动作包括:
将该方法作为该被强制转换对象的新宣称的特点来加以映射。
15.如权利要求10中所述的这一个或多个处理器可存取媒体,其特征在于:其中,执行动作包括:
根据这至少一项映射说明,来过滤对象的至少一个特点。
16.如权利要求15中所述的这一个或多个处理器可存取媒体,其特征在于:其中,这至少一个特点包括一个属性,并且,过滤动作包括:
过滤该对象的该属性,以便不将该属性强制转换到该被强制转换对象。
17.如权利要求15中所述的这一个或多个处理器可存取媒体,其特征在于:其中,这至少一个特点包括一种方法,并且,过滤动作包括:
过滤该对象的该方法,以便不将该方法强制转换到该被强制转换对象。
18.如权利要求10中所述的这一个或多个处理器可存取媒体,其特征在于:其中,执行动作包括:
根据这至少一项映射说明,来映射对象的至少一个预定的特点。
19.如权利要求18中所述的这一个或多个处理器可存取媒体,其特征在于:其中,映射动作包括:
将该对象的属性反映到该被强制转换对象的被强制转换属性。
20.如权利要求18中所述的这一个或多个处理器可存取媒体,其特征在于:其中,映射动作包括:
将该对象的属性变换成该被强制转换对象的被强制转换属性。
21.如权利要求18中所述的这一个或多个处理器可存取媒体,其特征在于:其中,映射动作包括:
将该对象的属性重新命名为该被强制转换对象的被强制转换属性。
22.如权利要求18中所述的这一个或多个处理器可存取媒体,其特征在于:其中,映射动作包括:
将被强制转换属性映射到该被强制转换对象,作为该对象的至少一个属性的函数。
23.如权利要求18中所述的这一个或多个处理器可存取媒体,其特征在于:其中,映射动作包括:
将该对象的方法反映到该被强制转换对象的被强制转换方法。
24.一种计算设备,其特征在于包括:
具有多个特点的对象;
具有多个被强制转换特点的被强制转换对象;以及,
具有多项映射说明的运行时间强制转换说明,这多项映射说明的至少一个部分的每项映射说明适合定义该对象的这多个特点中的一个或多个特点到该被强制转换对象的这多个被强制转换特点中的至少一个被强制转换特点的映射。
25.如权利要求24中所述的计算设备,其特征在于:其中,这多项映射说明的这至少一个部分包括属性反映映射、变换映射、重新命名映射、函数映射和方法反映映射中的至少一种映射。
26.如权利要求24中所述的计算设备,其特征在于:其中,这多项映射说明的另一个部分的每项映射说明适合定义该对象的这多个特点中的一个或多个特点的过滤映射,以便不将这一个或多个特点强制转换到该被强制转换对象。
27.如权利要求24中所述的计算设备,其特征在于:其中,这多项映射说明的另一个部分的每项映射说明适合为该被强制转换对象的这多个被强制转换特点中的至少一个被强制转换特点定义一宣称映射。
28.如权利要求24中所述的计算设备,其特征在于:其中,这多项映射说明中的至少一项映射说明包括一个或多个默认参数,以适应来自该对象的这多个特点中的预期的预定特点的缺乏。
29.如权利要求28中所述的计算设备,其特征在于:其中,包括这一个或多个默认参数的这至少一项映射说明适合使用这一个或多个默认参数来定义映射,以创建该被强制转换对象的这多个被强制转换特点中的至少一个被强制转换特点。
30.一个或多个处理器可存取媒体,其特征在于:包括处理器可执行指令,当被执行时,这些处理器可执行指令指示计算设备执行动作,这些动作包括:
从运行时间强制转换说明中检索关于预定特点的映射说明;
确定将要被强制转换的对象中是否存在该预定特点;以及,
如果不存在,则从该运行时间强制转换说明中确定与该预定特点有关的一个或多个默认参数。
31.如权利要求30中所述的这一个或多个处理器可存取媒体,其特征在于:其中,确定动作包括:
从该运行时间强制转换说明的映射说明中确定与该预定特点有关的这一个或多个默认参数。
32.如权利要求30中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
使用这一个或多个默认参数,在被强制转换对象中创建被强制转换特点。
33.如权利要求30中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
如果在确定动作中确定将要被强制转换的该对象中存在该预定特点,则根据该运行时间强制转换说明的该映射说明,将该对象的该预定特点强制转换到被强制转换对象的被强制转换特点。
34.如权利要求30中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
在检索动作之前,输入运行时间环境。
35.一种计算设备,其特征在于包括:
一个或多个处理器;以及,
与这一个或多个处理器进行有效通信的一个或多个媒体,这一个或多个媒体包括:
第一种类型的第一对象;
第二种类型的第二对象;以及,
定义强制转换过程的元数据,该强制转换过程能够使这第一种类型的第一对象多态化为第三种类型的第一被强制转换对象,并且能够使这第二种类型的第二对象多态化为这第三种类型的第二被强制转换对象。
36.如权利要求35中所述的计算设备,其特征在于:其中,该元数据包括运行时间强制转换说明,该运行时间强制转换说明包括多项映射说明,这多项映射说明定义可以在运行时间环境中加以实行的多项单独的特点强制转换操作。
37.如权利要求35中所述的计算设备,其特征在于:其中,这一个或多个媒体进一步包括这第三种类型的第一被强制转换对象和这第三种类型的第二被强制转换对象。
38.如权利要求35中所述的计算设备,其特征在于:其中,这一个或多个媒体进一步包括与这第一对象和第二对象关联的应用程序;并且,其中,该应用程序包括处理器可执行指令,这些处理器可执行指令适合解释该元数据,并适合根据所定义的强制转换过程来执行多形态的操作。
39.如权利要求35中所述的计算设备,其特征在于:其中,这一个或多个媒体进一步包括(i)与这第一对象和第二对象关联的第一个应用程序,以及(ii)包括处理器可执行指令的第二个应用程序,这些处理器可执行指令适合解释该元数据,并适合根据所定义的强制转换过程来执行多形态的操作。
40.如权利要求39中所述的计算设备,其特征在于:其中,这第二个应用程序包括服务程序库。
41.如权利要求39中所述的计算设备,其特征在于:其中,这第二个应用程序适合执行以下内容:(i)使这第一种类型的第一对象多态化为这第三种类型的第一被强制转换对象;以及(ii)使这第二种类型的第二对象多态化为这第三种类型的第二被强制转换对象。
42.如权利要求39中所述的计算设备,其特征在于:其中,这第一个应用程序适合请求这第二个应用程序执行以下内容:(i)使这第一种类型的第一对象多态化为这第三种类型的第一被强制转换对象;以及(ii)使这第二种类型的第二对象多态化为这第三种类型的第二被强制转换对象。
43.一个或多个处理器可存取媒体,其特征在于:包括处理器可执行指令,当被执行时,这些处理器可执行指令指示计算设备执行动作,这些动作包括:
使用运行时间强制转换说明,将第一种类型的第一对象强制转换为第三种类型的第一被强制转换对象;以及,
使用该运行时间强制转换说明,将第二种类型的第二对象强制转换到这第三种类型的第二被强制转换对象。
44.如权利要求43中所述的这一个或多个处理器可存取媒体,其特征在于:其中:
强制转换第一对象的动作包括在这第一对象与这第一被强制转换对象之间建立绑定的动作;以及,
强制转换第二对象的动作包括在这第二对象与这第二被被强制转换对象之间建立绑定的动作;
其中,这些处理器可执行指令,当被执行时,指示该计算设备执行进一步的动作,该动作包括:
维持由这些强制转换动作建立的各种绑定。
45.如权利要求44中所述的这一个或多个处理器可存取媒体,其特征在于:其中,这些处理器可执行指令的至少一个部分包括可再用的服务程序库组件的至少一部分。
46.如权利要求43中所述的这一个或多个处理器可存取媒体,其特征在于:其中,从第一基本对象中导出这第一对象,并从第二基本对象中导出这第二对象,这第一基本对象和第二基本对象属于不同的类型。
47.如权利要求43中所述的这一个或多个处理器可存取媒体,其特征在于:其中,由应用程序来执行强制转换第一对象的动作和强制转换第二对象的动作。
48.如权利要求47中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该应用程序包括服务程序库的至少一部分。
49.如权利要求47中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
由另一个应用程序将这第一对象和第二对象提供给该应用程序。
50.如权利要求47中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
由另一个应用程序调用该应用程序,以促成这些强制转换动作的执行。
51.一个或多个处理器可存取媒体,其特征在于:包括处理器可执行指令,当被执行时,这些处理器可执行指令指示计算设备执行动作,这些动作包括:
使用运行时间强制转换说明,将第一种类型的第一对象强制转换到第三种类型的第一被强制转换对象;
使用该运行时间强制转换说明,将第二种类型的第二对象强制转换到这第三种类型的第二被强制转换对象;以及,
将一个或多个算法应用于这第一被强制转换对象和第二被强制转换对象。
52.如权利要求51中所述的这一个或多个处理器可存取媒体,其特征在于:其中,应用动作进一步包括:
检测这第二被强制转换对象中的变化;以及,
将该变化传播给这第一被强制转换对象。
53.如权利要求52中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
响应于在该传播动作中被传播给这第一被强制转换对象的变化,来修改这第一对象。
54.如权利要求53中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,这些动作包括:
接受这第二对象中的变化;以及,
将这第二对象中的变化传播给这第二被强制转换对象,作为在检测动作中所检测到的这第二被强制转换对象中的变化。
55.如权利要求54中所述的这一个或多个处理器可存取媒体,其特征在于:其中,这些处理器可执行指令包括:
第一强制转换对象,它执行以下动作:
强制转换第一对象;以及,
修改这第一对象;
第二强制转换对象,它执行以下动作:
强制转换第二对象;
接受变化;以及,
传播这第二对象中的变化;
算法编码,它执行以下动作:
应用一个或多个算法;
检测变化;以及,
将该变化传播给这第一被强制转换对象。
56.一种计算设备,其特征在于包括:
元数据,它能够被解释成将对象强制转换为被强制转换对象;
第一对象;
第二对象;
使用该元数据从这第一对象中创建的第一被强制转换对象;
使用该元数据从这第二对象中创建的第二被强制转换对象;以及,
算法代码,它适合经由这第一被强制转换对象和第二被强制转换对象来管理这第一对象和第二对象。
57.如权利要求56中所述的计算设备,其特征在于:其中,这第一对象和第一被强制转换对象共同包括提钢性对象表示。
58.如权利要求57中所述的计算设备,其特征在于:其中,该提钢性对象表示包括增强型强制转换对象。
59.如权利要求56中所述的计算设备,其特征在于:其中,该元数据包括运行时间强制转换说明,该运行时间强制转换说明定义具有特点层次的映射的多态性。
60.如权利要求56中所述的计算设备,其特征在于:其中,该算法代码包括对这第一被强制转换对象和对这第二被强制转换对象而实行的一个或多个规则,以检测一个被强制转换对象中的变化,并将所检测到的变化传播给另一个被强制转换对象。
61.如权利要求56中所述的计算设备,其特征在于:其中,这第一对象包括应用程序对象,这第二对象包括观看对象,该算法代码包括一个或多个规则,这些规则至少部分地维持该应用程序对象与该观看对象之间的一致性。
62.一种关于运行时间多态性的布置,该布置的特征在于包括:
检索装置,用于从运行时间强制转换说明中检索至少一项映射说明,这至少一项映射说明为被强制转换对象的创建定义特点层次的映射;以及,
实行装置,用于根据这至少一项映射说明来实行特点强制转换操作。
63.如权利要求62中所述的布置,其特征在于:其中,该实行装置包括:
宣称装置,用于根据这至少一项映射说明来将被强制转换特点映射到该被强制转换对象。
64.如权利要求62中所述的布置,其特征在于:其中,该实行装置包括:
过滤装置,用于根据这至少一项映射说明来过滤对象的至少一个特点。
65.如权利要求62中所述的布置,其特征在于:其中,该实施装置包括:
特点强制转换装置,用于根据这至少一项映射说明,为该被强制转换对象而将对象的一个或多个预定特点映射到至少一个被强制转换特点。
66.如权利要求62中所述的布置,其特征在于:其中,该布置包括计算设备。
67.如权利要求62中所述的布置,其特征在于:其中,该布置包括一个或多个处理器可存取媒体。
68.一种关于运行时间多态性的布置,该布置的特征在于包括:
宣称装置,用于根据至少一项第一映射说明来将被强制转换特点映射到被强制转换对象;以及,
特点强制转换装置,用于根据至少一项第二映射说明来将对象的至少一个预定特点映射到该被强制转换对象。
69.如权利要求68中所述的布置,其特征在于:其中,该布置进一步包括:
过滤装置,用于过滤对象的至少一个特点。
70.如权利要求69中所述的布置,其特征在于:其中,该过滤装置包括以下的至少一种装置:
属性过滤装置,用于根据至少一项第三映射说明来过滤该对象的至少一个属性;以及,
方法过滤装置,用于根据这至少一项第三映射说明来过滤该对象的至少一种方法。
71.如权利要求68中所述的布置,其特征在于:其中,该宣称装置包括以下的至少一种装置:
属性宣称装置,用于根据这至少一项第一映射说明来为该被强制转换对象宣称一被强制转换属性;以及,
方法宣称装置,用于根据这至少一项第一映射说明来为该被强制转换对象宣称一被强制转换方法。
72.如权利要求68中所述的布置,其特征在于:其中,该特点强制转换装置包括以下的至少一种装置:
反映装置,用于根据这至少一项第二映射说明来将该对象的至少一个预定属性反映到该被强制转换对象中;
反映装置,用于根据这至少一项第二映射说明来将该对象的至少一种预定方法反映到该被强制转换对象中;
变换装置,用于根据这至少一项第二映射说明来为该被强制转换对象变换该对象的至少一个预定属性;
重新命名装置,用于根据这至少一项第二映射说明来为该被强制转换对象重新命名该对象的至少一个预定属性;以及,
函数装置,用于根据这至少一项第二映射说明中所定义的函数来将该对象的至少一个预定属性映射到该被强制转换对象中。
73.如权利要求68中所述的布置,其特征在于:其中,该布置包括计算设备。
74.如权利要求68中所述的布置,其特征在于:其中,该布置包括运行时间强制转换说明装置,该运行时间强制转换说明装置用于定义在特点层次上一对象到被强制转换对象的强制转换操作。
75.如权利要求68中所述的布置,其特征在于:其中,该布置包括一个或多个处理器可存取媒体。
76.一个或多个处理器可存取媒体,其特征在于:包括处理器可执行指令,当被执行时,这些处理器可执行指令指示计算设备执行动作,这些动作包括:
将第一对象的第一个特点强制转换为被强制转换对象的第一个被强制转换特点;以及,
将第二对象的第二个特点强制转换为该被强制转换对象的第二个被强制转换特点。
77.如权利要求76中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该动作是:
强制转换第一个特点包括:使用运行时间强制转换说明,将这第一对象的第一个特点强制转换为该被强制转换对象的第一个被强制转换特点;以及,
强制转换第二个特点包括:使用该运行时间强制转换说明,将这第二对象的第二个特点强制转换为该被强制转换对象的第二个被强制转换特点。
78.如权利要求76中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该动作是:
强制转换第一个特点包括:使用第一项映射说明,将这第一对象的第一个特点强制转换为该被强制转换对象的第一个被强制转换特点;以及,
强制转换第二个特点包括:使用第二项映射说明,将这第二对象的第二个特点强制转换为该被强制转换对象的第二个被强制转换特点。
79.如权利要求76中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,这些动作包括:
维持在这第一对象的第一个特点与该被强制转换对象的第一个被强制转换特点之间的至少一个第一运行时间绑定;以及,
维持在这第二对象的第二个特点与该被强制转换对象的第二个被强制转换特点之间的至少一个第二运行时间绑定。
80.如权利要求76中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
将这第二对象的第三个特点强制转换为该被强制转换对象的第二个被强制转换特点。
81.如权利要求76中所述的这一个或多个处理器可存取媒体,其特征在于:包括这些处理器可执行指令,当被执行时,这些处理器可执行指令指示该计算设备执行进一步的动作,该动作包括:
将第三对象的第三个特点强制转换为该被强制转换对象的第二个被强制转换特点。
82.如权利要求81中所述的这一个或多个处理器可存取媒体,其特征在于:其中,该动作是:
强制转换第二个特点包括:使用函数映射说明,将这第二对象的第二个特点强制转换为该被强制转换对象的第二个被强制转换特点;以及,
强制转换第三个特点包括:使用该函数映射说明,将这第三对象的第三个特点强制转换为该被强制转换对象的第二个被强制转换特点。
83.一种计算设备,其特征在于包括:
一个或多个处理器;以及,
与这一个或多个处理器进行有效通信的一个或多个媒体,这一个或多个媒体包括:
具有第一个特点的第一对象;
具有第二个特点的第二对象;
定义第一个特点强制转换操作的第一项映射说明,用于从这第一对象的第一个特点中为被强制转换对象创建第一个被强制转换特点;以及,
定义第二个特点强制转换操作的第二项映射说明,用于从这第二对象的第二个特点中为该被强制转换对象创建第二个被强制转换特点。
84.如权利要求83中所述的计算设备,其特征在于:其中,该计算设备适合为(i)这第一对象的第一个特点与该被强制转换对象的第一个被强制转换特点之间的第一个特点强制转换操作,以及为(ii)这第二对象的第二个特点与该被强制转换对象的第二个被强制转换特点之间的第二个特点强制转换操作维持运行时间绑定。
85.如权利要求83中所述的计算设备,其特征在于:其中,这一个或多个媒体进一步包括:
具有第三个特点的第三对象;
其中,定义这第二个特点强制转换操作的这第二项映射说明进一步用于:从这第三对象的第三个特点中为该被强制转换对象创建这第二个被强制转换特点。
86.如权利要求83中所述的计算设备,其特征在于:其中,这一个或多个媒体进一步包括:
具有第三个特点的第三对象;
定义第三个特点强制转换操作的第三项映射说明,用于从这第三对象的第三个特点中为该被强制转换对象创建第三个被强制转换特点;以及,该被强制转换对象。
CNB2004100434026A 2003-04-25 2004-04-26 运行时间多态性的方法和计算设备 Expired - Fee Related CN100561426C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/423,349 2003-04-25
US10/423,349 US7861250B2 (en) 2003-04-25 2003-04-25 Runtime polymorphism

Publications (2)

Publication Number Publication Date
CN1570862A true CN1570862A (zh) 2005-01-26
CN100561426C CN100561426C (zh) 2009-11-18

Family

ID=32962461

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100434026A Expired - Fee Related CN100561426C (zh) 2003-04-25 2004-04-26 运行时间多态性的方法和计算设备

Country Status (7)

Country Link
US (1) US7861250B2 (zh)
EP (1) EP1471422B1 (zh)
JP (2) JP4979881B2 (zh)
KR (1) KR101130464B1 (zh)
CN (1) CN100561426C (zh)
AT (1) ATE477533T1 (zh)
DE (1) DE602004028540D1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933554A (zh) * 2015-12-30 2017-07-07 北京国双科技有限公司 类转换方法和装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516449B2 (en) * 2005-01-04 2009-04-07 International Business Machines Corporation Run-time type conversion
US7971198B2 (en) * 2005-06-08 2011-06-28 Unoweb Inc. Method for global resource sharing having logically linked means and integrated functionality for building solutions
JP4912452B2 (ja) * 2009-11-27 2012-04-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的型付け言語で記述されたソースコードを静的型付け言語で記述されたターゲットコードに変換し、実行する方法、並びにそのコンピュータ・プログラム及びコンピュータ・システム
US9804900B2 (en) * 2014-05-30 2017-10-31 Apple Inc. Manipulating shaders with object-oriented programming
US10296655B2 (en) 2016-06-24 2019-05-21 International Business Machines Corporation Unbounded list processing

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378003B1 (en) 1993-04-05 2002-04-23 International Business Machines Corporation Method and system for deriving metaclasses in an object oriented system
US5721925A (en) 1995-12-01 1998-02-24 Unisys Corporation Method for generically invoking operation in an object oriented repository
US5978579A (en) 1997-08-12 1999-11-02 International Business Machines Corporation Architecture for customizable component system
US6405363B1 (en) 1998-03-11 2002-06-11 International Business Machines Corporation Class casting support for run-time extensible items in an object oriented framework
US6275979B1 (en) 1998-03-11 2001-08-14 International Business Machines Corporation Implementation for an object oriented run-time extensible item
US6134559A (en) * 1998-04-27 2000-10-17 Oracle Corporation Uniform object model having methods and additional features for integrating objects defined by different foreign object type systems into a single type system
US6138269A (en) 1998-05-20 2000-10-24 Sun Microsystems, Inc. Determining the actual class of an object at run time
US6564368B1 (en) * 1998-10-01 2003-05-13 Call Center Technology, Inc. System and method for visual application development without programming
EP1041485A1 (en) 1999-03-31 2000-10-04 Sony Service Center (Europe) N.V. Object with polymorphism
WO2002023333A2 (en) 2000-09-15 2002-03-21 Learnframe, Inc. Construction of virtual objects based on run-time type information
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US20060020602A9 (en) * 2000-12-07 2006-01-26 Oliver Morgan Maintaining interoperability of systems that use different metadata schemas
EP1356390A1 (en) 2000-12-21 2003-10-29 Exanet Co. Scalable distributed hierarchical cache
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US20040205692A1 (en) * 2001-01-12 2004-10-14 Robinson Marck R. Method and system for creating reusable software components through a uniform interface
US7853553B2 (en) * 2001-03-26 2010-12-14 Siebel Systems, Inc. Engine for converting data from a source format to a destination format using user defined mappings
CA2349905A1 (en) 2001-06-07 2002-12-07 Ibm Canada Limited-Ibm Canada Limitee System and method of mapping between software objects and structured language element based documents
US7191196B2 (en) * 2001-06-28 2007-03-13 International Business Machines Corporation Method and system for maintaining forward and backward compatibility in flattened object streams
US6983448B2 (en) * 2001-07-12 2006-01-03 International Business Machines Corporation Open framework for the definition of metadata
US6907433B2 (en) * 2001-08-01 2005-06-14 Oracle International Corp. System and method for managing object to relational one-to-many mapping
US20040044755A1 (en) * 2002-08-27 2004-03-04 Chipman Timothy W. Method and system for a dynamic distributed object-oriented environment wherein object types and structures can change while running
US20040064825A1 (en) * 2002-09-30 2004-04-01 Timothy Lim Method and system for object system interoperability

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933554A (zh) * 2015-12-30 2017-07-07 北京国双科技有限公司 类转换方法和装置

Also Published As

Publication number Publication date
US20040216132A1 (en) 2004-10-28
JP4979881B2 (ja) 2012-07-18
CN100561426C (zh) 2009-11-18
EP1471422B1 (en) 2010-08-11
JP2004326807A (ja) 2004-11-18
US7861250B2 (en) 2010-12-28
KR101130464B1 (ko) 2012-03-27
KR20040096420A (ko) 2004-11-16
JP2012099155A (ja) 2012-05-24
DE602004028540D1 (de) 2010-09-23
EP1471422A3 (en) 2006-08-16
ATE477533T1 (de) 2010-08-15
EP1471422A2 (en) 2004-10-27

Similar Documents

Publication Publication Date Title
CN109542399B (zh) 软件开发方法、装置、终端设备及计算机可读存储介质
CN1278224C (zh) 在多处理器宿主系统上进行多处理器仿真的方法和系统
JP5602597B2 (ja) 外来情報を区分けすることにより仮想マシン・コードをメモリ最適化する方法、コンピュータ・プログラム、およびシステム
CN1203404C (zh) 具有逐模块验证的完全迟缓链接
CN1831854A (zh) 识别计算环境中实际清单与期望清单的不同的系统和方法
CN1530817A (zh) 有效内容的向导:任务和结构内容的执行
CN1378173A (zh) 网络设备管理装置、程序、信息存储媒体及网络设备管理方法
CN1755633A (zh) 用于电子表格链式计算的多线程处理的方法和系统
CN1704937A (zh) 利用表单类型生成表单的方法和装置
CN1614555A (zh) 用于自主硬件辅助的线程栈跟踪的装置与方法
CN101051969A (zh) 用于传感器网络的动态生成操作系统
CN102609292B (zh) 指令优化
CN1910581A (zh) 用于按类别提供关键字输入频率信息的搜索系统及其方法
CN1542609A (zh) 处理器及处理管线中例外反应的装置与方法
CN1684035A (zh) 优先级绑定
CN107656729A (zh) 列表视图的更新装置、方法及计算机可读存储介质
CN115292199B (zh) 一种显存泄露的处理方法及相关装置
CN1853164A (zh) 用于开发dsp编译器构件块的组合方法
AU2020407951A1 (en) Integrated reference and secondary marking
CN1487391A (zh) 可访问性系统事件机构和方法
CN1570862A (zh) 运行时间多态性
CN111124644A (zh) 任务调度资源的确定方法、装置及系统
CN102004674B (zh) 用于基于策略的适应性程序配置的系统及方法
WO2021236285A1 (en) Adaptive database compaction
CN1245685C (zh) 基于构件的操作系统动态设备驱动的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091118

Termination date: 20150426

EXPY Termination of patent right or utility model