專利名稱:用于凍結(jié)對(duì)象的類型描述符管理的制作方法
用于凍結(jié)對(duì)象的類型描述符管理背景面向?qū)ο蟮木幊痰淖罨緲?gòu)件塊被稱為“對(duì)象”。一般而言,對(duì)象具有零個(gè)或多個(gè)方法和零個(gè)或多個(gè)成員字段。因此,為了由計(jì)算系統(tǒng)正確地解釋,對(duì)象應(yīng)該是由計(jì)算系統(tǒng)理解的特定類型。原語(yǔ)類型包括編程語(yǔ)言本身作為基本構(gòu)件塊向程序員提供的類型。原語(yǔ)類型的示例可以包括字符、串、整數(shù)、浮點(diǎn)數(shù)、數(shù)組等等。編程語(yǔ)言通常允許程序員構(gòu)造表示構(gòu)成類型的組合的合成類型,無(wú)論這些構(gòu)成類型是原語(yǔ)類型還是其他合成類型。這些合成類型可能是相當(dāng)復(fù)雜的。知道特定對(duì)象的類型常常是有利的。因此,在執(zhí)行期間,在存儲(chǔ)器中,對(duì)象常常具有相關(guān)聯(lián)的類型描述符。在一個(gè)示例中,對(duì)象具有指向更完整的類型描述符的類型描述指針。類型描述符可出于各種目的來(lái)使用。其一,可以評(píng)估對(duì)象的類型描述符以便驗(yàn)證特定操作可以由該對(duì)象來(lái)執(zhí)行,或者來(lái)確定該對(duì)象是與另一對(duì)象相同或等價(jià)的類型。一種特定種類的對(duì)象被稱為“凍結(jié)對(duì)象”。凍結(jié)對(duì)象實(shí)例是在編譯時(shí)完成其布局并作為經(jīng)編譯的映像的一部分來(lái)包括的對(duì)象實(shí)例。在運(yùn)行時(shí)期間不遭受廣泛的或可能任何改變的對(duì)象可能是對(duì)象凍結(jié)的最佳候選,但可以凍結(jié)具有預(yù)初始化數(shù)據(jù)的任何對(duì)象實(shí)例。例如,日歷程序可以提供從1000個(gè)預(yù)定語(yǔ)錄之中選擇的日常有靈感的語(yǔ)錄。這1000個(gè)預(yù)定語(yǔ)錄中的每一個(gè)可以用類型串的凍結(jié)對(duì)象來(lái)表示。模塊內(nèi)的指令可以指的是凍結(jié)對(duì)象。在運(yùn)行時(shí),凍結(jié)對(duì)象連同模塊的許多或所有其他部分一起被加載到存儲(chǔ)器中。然而,在運(yùn)行時(shí)沒(méi)有必要新分配凍結(jié)對(duì)象。簡(jiǎn)要概述本文描述的各實(shí)施例涉及對(duì)凍結(jié)對(duì)象的類型描述符的高效使用。在一個(gè)實(shí)施例中,凍結(jié)對(duì)象實(shí)際上可以包括多個(gè)類型描述符,即,根據(jù)一組規(guī)范化規(guī)則是規(guī)范的主類型描述符,以及與主類型描述符不相同的輔助類型描述符。輔助類型描述符可被用來(lái)訪問(wèn)規(guī)范類型描述符。在執(zhí)行操作時(shí),如果輔助類型描述符可用于執(zhí)行該操作,則使用該輔助類型描述符來(lái)執(zhí)行該操作。如果要使用規(guī)范主類型描述符來(lái)執(zhí)行該操作,則使用輔助類型描述符來(lái)獲取對(duì)規(guī)范主類型描述符的訪問(wèn)權(quán)。隨后使用主類型描述符來(lái)執(zhí)行該操作。本概述不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。附圖簡(jiǎn)述為了描述可以獲得本發(fā)明的上文所列舉的及其他優(yōu)點(diǎn)和特征的方式,下面將通過(guò)參考附圖來(lái)呈現(xiàn)對(duì)各實(shí)施例的更具體的描述??梢岳斫?,這些附圖只描繪了樣本實(shí)施例,并且因此不被認(rèn)為是對(duì)其范圍的限制,將通過(guò)使用附圖并利用附加特性和細(xì)節(jié)來(lái)描述和解釋各實(shí)施例,在附圖中
圖1示出了可實(shí)現(xiàn)本文描述的多個(gè)特征之一的計(jì)算系統(tǒng);圖2示出可對(duì)凍結(jié)對(duì)象使用類型描述的體系結(jié)構(gòu);圖3示出一種用于使用對(duì)應(yīng)于凍結(jié)對(duì)象的多個(gè)類型描述符來(lái)執(zhí)行一個(gè)或多個(gè)類型操作的方法的流程圖4示出一種用于使用輔助類型描述符來(lái)訪問(wèn)規(guī)范類型描述符的示例方法的流程圖;以及圖5示出一種用于準(zhǔn)備使用間接組件來(lái)允許訪問(wèn)規(guī)范類型描述符的方法的流程圖。詳細(xì)描述根據(jù)本文描述的各實(shí)施例,本文描述的各原理允許對(duì)凍結(jié)對(duì)象高效地使用類型描述符。首先,其中可以采用本文描述的各原理的計(jì)算系統(tǒng)的各實(shí)施例。隨后,將參考圖2到圖5來(lái)描述用于凍結(jié)對(duì)象的類型描述符的使用的各實(shí)施例。圖1示出了計(jì)算系統(tǒng)100。計(jì)算系統(tǒng)現(xiàn)在越來(lái)越多地采取各種形式。計(jì)算系統(tǒng)可以例如是手持式設(shè)備、電器、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、大型機(jī)、分布式計(jì)算系統(tǒng),或者甚至通常不被視為計(jì)算系統(tǒng)的設(shè)備。在本說(shuō)明書以及權(quán)利要求書中,術(shù)語(yǔ)“計(jì)算系統(tǒng)”被廣義地定義為包括包含至少一個(gè)處理器以及其上能含有可由處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的存儲(chǔ)器的任何設(shè)備或系統(tǒng)(或其組合)。存儲(chǔ)器可以采取任何形式,并可以取決于計(jì)算系統(tǒng)的特性和形式。計(jì)算系統(tǒng)可以分布在網(wǎng)絡(luò)環(huán)境中,并可包括多個(gè)組成計(jì)算系統(tǒng)。如圖1所示,在其最基本的配置中,計(jì)算系統(tǒng)100通常包括至少一個(gè)處理單元102 和存儲(chǔ)器104。存儲(chǔ)器104可以是物理系統(tǒng)存儲(chǔ)器,可以是易失性、非易失性、或兩者的某種組合。術(shù)語(yǔ)“存儲(chǔ)器”在此也可用來(lái)指諸如物理存儲(chǔ)介質(zhì)等非易失性大容量存儲(chǔ)。如果計(jì)算系統(tǒng)是分布式的,那么,處理、存儲(chǔ)器和/或存儲(chǔ)能力也可以是分布式的。如此處所使用的, 術(shù)語(yǔ)“模塊”或“組件”可以指在計(jì)算系統(tǒng)上執(zhí)行的軟件對(duì)象或例程。此處所描述的不同組件、模塊、引擎,以及服務(wù)可以被實(shí)現(xiàn)為在計(jì)算系統(tǒng)上執(zhí)行的對(duì)象或進(jìn)程(例如,作為分開的線程)。在隨后的描述中,參考由一個(gè)或多個(gè)計(jì)算系統(tǒng)執(zhí)行的動(dòng)作描述了各實(shí)施例。如果這樣的動(dòng)作是以軟件實(shí)現(xiàn)的,則執(zhí)行動(dòng)作的相關(guān)聯(lián)計(jì)算系統(tǒng)的一個(gè)或多個(gè)處理器響應(yīng)于已經(jīng)執(zhí)行了計(jì)算機(jī)可執(zhí)行指令,引導(dǎo)計(jì)算系統(tǒng)的操作。這樣的操作的示例涉及對(duì)數(shù)據(jù)的操縱。 計(jì)算機(jī)可執(zhí)行指令(以及被操縱的數(shù)據(jù))可以存儲(chǔ)在計(jì)算系統(tǒng)100的存儲(chǔ)器104中。計(jì)算系統(tǒng)100還可包含允許計(jì)算系統(tǒng)100例如通過(guò)網(wǎng)絡(luò)110與其他消息處理器通信的通信信道108。通信信道108是通信介質(zhì)的示例。通信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息遞送介質(zhì)。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及諸如聲學(xué)、無(wú)線電、紅外線及其他無(wú)線介質(zhì)之類的無(wú)線介質(zhì)。如此處所用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”既包括存儲(chǔ)介質(zhì)又包括通信介質(zhì)。本發(fā)明的范圍內(nèi)的實(shí)施例還包括用于攜帶或其上儲(chǔ)存有計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何可用介質(zhì)。作為示例而非限制,這樣的計(jì)算機(jī)可讀介質(zhì)可包括諸如RAM、ROM、EEPROM、 CD-ROM之類的物理存儲(chǔ)器和/或存儲(chǔ)介質(zhì)或其他光盤存儲(chǔ)、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、 或可用于攜帶或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何其他介質(zhì)。當(dāng)信息通過(guò)網(wǎng)絡(luò)或另一通信連接(硬連線、無(wú)線或硬連線或無(wú)線的組合)傳輸或提供給計(jì)算機(jī)時(shí),計(jì)算機(jī)將該連接完全視為計(jì)算機(jī)可讀介質(zhì)。 因此,任何這樣的連接被適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。計(jì)算機(jī)可執(zhí)行指令例如包括,使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于此處所描述的具體特征或動(dòng)作。相反,此處所描述的具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式來(lái)公開的。圖2示出其中類型描述可高效地用于凍結(jié)對(duì)象的體系結(jié)構(gòu)200。如先前所述,“凍結(jié)對(duì)象”是在編譯時(shí)分配的對(duì)象,并因此作為經(jīng)編譯的可執(zhí)行文件中的對(duì)象存在。因此,在加載來(lái)準(zhǔn)備執(zhí)行時(shí),凍結(jié)對(duì)象連同映像文件的其他組件的潛在的其他部分或可能全部一起被加載到存儲(chǔ)器中。通常,它可能是可用凍結(jié)對(duì)象來(lái)表示的靜態(tài)數(shù)據(jù)。即,本文描述的各原理不限于一旦被加載到存儲(chǔ)器中就無(wú)法修改的凍結(jié)對(duì)象的使用。然而,本文的某些實(shí)施例減少或消除了寫入凍結(jié)對(duì)象的存儲(chǔ)器中的表示的必要。這是有利的,因?yàn)閷懭氪鎯?chǔ)器可以使得存儲(chǔ)器中被寫入的部分(被稱為頁(yè))成為“專用”的。即,寫入該頁(yè)的進(jìn)程迫使創(chuàng)建該頁(yè)的專用副本。體系結(jié)構(gòu)200包括定義模塊210和引用模塊220。在本說(shuō)明書中,“模塊”可以是被加載到存儲(chǔ)器中的可執(zhí)行映像。例如,參考圖1和2,模塊210和220可以從存儲(chǔ)(存儲(chǔ)器104的非易失性部分)被加載到存儲(chǔ)器(存儲(chǔ)器104的易失性部分)中。定義模塊210被稱為“定義”是因?yàn)樗c特定類型相對(duì)應(yīng)的并定義特定類型的主類型描述符211。在一個(gè)實(shí)施例中,主類型描述符211按照滿足一組規(guī)范化規(guī)則的方式來(lái)定義特定類型。也可以存在其他類型的規(guī)范化類型描述符。然而,為了避免圖2的過(guò)度復(fù)雜,只示出了一種類型的類型描述符。引用模塊220被稱為“引用”是因?yàn)樗芍黝愋兔枋龇x的類型的凍結(jié)對(duì)象222。引用模塊220因此在某種意義上間接地引用主模塊210中的主類型描述符。具體地,引用模塊222包括與由主類型描述符211定義的相同特定類型相對(duì)應(yīng)的并定義該相同特定類型的輔助類型描述符221。引用模塊222還包括足夠的信息來(lái)提供凍結(jié)對(duì)象222和輔助類型描述符221之間的關(guān)聯(lián)223。輔助類型描述符211與規(guī)范主類型描述符221不相同。例如,輔助類型描述符221 在它可以不遵循主類型描述符211所遵循的一組規(guī)范規(guī)則中的每一條規(guī)范規(guī)則的意義上可以不是規(guī)范類型描述符。然而,在一個(gè)實(shí)施例中,輔助類型描述符221在本質(zhì)上可以是主類型描述符211的克隆副本,除了可能帶有足夠的信息來(lái)將主類型描述符和輔助類型描述符彼此區(qū)分。在另一實(shí)施例中,輔助類型描述符221包括足夠的信息從而使得用輔助類型描述符221可以執(zhí)行至少一種類型操作,而非必須引用規(guī)范主類型描述符211。凍結(jié)對(duì)象222和輔助類型描述符221之間的關(guān)聯(lián)223可以是例如凍結(jié)對(duì)象本身中的類型描述符指針。例如,在對(duì)象以類型描述指針開始的實(shí)施例中,凍結(jié)對(duì)象也能以類型描述指針開始。然而,替代指向主類型描述符,凍結(jié)對(duì)象222改為指向輔助類型描述符221。 如果主類型描述符211相反被包括在模塊220中,則凍結(jié)對(duì)象221可改為直接地指向主類型描述符211。然而,在編譯引用模塊220時(shí),可能沒(méi)有足夠的信息來(lái)使得凍結(jié)對(duì)象直接指向不同模塊中的主類型描述符。體系結(jié)構(gòu)200還包括間接組件230,輔助類型描述符221通過(guò)該間接組件230與主類型描述符211相關(guān)聯(lián)。在一個(gè)實(shí)施例中,間接組件230是導(dǎo)入地址表并且甚至可以是引用模塊220本身的一部分。導(dǎo)入地址表的一個(gè)單元可被用作主類型描述符211和輔助類型描述符221之間的間接點(diǎn)。雖然圖2中只示出了一種類型,但間接組件可用于多種類型。在一個(gè)實(shí)施例中,使用間接組件230來(lái)如下將兩個(gè)類型描述符相關(guān)聯(lián)。首先,可能在編譯時(shí),輔助類型描述符包括該類型描述符是輔助的且不是主要的某些指示。這意味著修改輔助類型描述符221的各字段之一來(lái)包括指向間接組件231的相對(duì)應(yīng)的部分的指針, 如箭頭230所示。在運(yùn)行時(shí),隨后修改間接組件230的適當(dāng)部分來(lái)包括指向相對(duì)應(yīng)的主類型描述符211的指針(由箭頭232表示)。因此,通過(guò)使用輔助類型描述221和間接組件 230中的指針,輔助類型描述符221可用于訪問(wèn)主類型描述符211。另外,就可以使用與凍結(jié)對(duì)象相同模塊中的輔助類型描述符來(lái)對(duì)該凍結(jié)對(duì)象執(zhí)行類型操作而言,只使用一層間接來(lái)訪問(wèn)輔助類型描述符。在一個(gè)實(shí)施例中,可能只可對(duì)間接組件寫入一次,不使被寫入的那些頁(yè)變?yōu)閷S玫?。即使寫操作不將被寫入的間接組件的部分變?yōu)閷S玫?,但間接組件230可以被聚類成較少數(shù)量的頁(yè)。因此,與要對(duì)模塊220本身中的較分散的類型描述指針作出相似數(shù)量的寫入的情形相比,可以使得較少的頁(yè)成為專用的。環(huán)境200還包括執(zhí)行類型操作的操作管理組件M0。在這樣做時(shí),操作管理組件確定輔助類型描述符是否足以執(zhí)行該類型操作,或者是否需要主類型描述符來(lái)執(zhí)行該類型操作。作為示例,圖3示出一種用于使用對(duì)應(yīng)于凍結(jié)對(duì)象的多個(gè)類型描述符來(lái)執(zhí)行一個(gè)或多個(gè)類型操作的方法300的流程圖。例如,如果凍結(jié)對(duì)象是圖2的凍結(jié)對(duì)象222,則多個(gè)類型描述將包括主類型描述符211和輔助類型描述符221。在一個(gè)實(shí)施例中,操作管理組件240 可以簡(jiǎn)單地是應(yīng)用程序、操作系統(tǒng)或其部分。首先,對(duì)于每一操作,組件240確定輔助類型描述符是否足以執(zhí)行操作(判定框 301)。對(duì)于一個(gè)或多個(gè)類型操作,可以確定輔助類型描述符將足以執(zhí)行該操作(判定框301 中的是)。在這種情況下,使用輔助類型描述符來(lái)執(zhí)行該操作(動(dòng)作30幻。在某些情況下, 類型操作可以要求在凍結(jié)對(duì)象和類型描述之間只存在一層間接。從凍結(jié)對(duì)象指向輔助類型描述符的指針表示該情況下的該一層間接。因此,可以在不過(guò)度地增加復(fù)雜性以通過(guò)附加間接來(lái)訪問(wèn)主類型描述符的情況下執(zhí)行這些操作??梢詢H使用輔助類型描述符來(lái)執(zhí)行的并且可能只期待在對(duì)象和類型描述符之間只有一層間接的操作類型的示例,包括虛調(diào)用操作或接口調(diào)用操作。另外,在某些情況下, 兩個(gè)對(duì)象之間的類型比較可以通過(guò)比較每一對(duì)象中的類型描述符指針來(lái)作出。如果指針匹配,則不管它們是指向主類型描述符還是輔助類型描述符,它們都指代同一類型。在一個(gè)實(shí)施例中,所執(zhí)行的全部類型操作中的相當(dāng)比例可以通過(guò)僅使用輔助類型描述符來(lái)滿足。因此,這些操作可以在甚至不必尋找主類型描述符的情況下相當(dāng)高效地執(zhí)行。對(duì)于一個(gè)或多個(gè)其他操作,可以確定輔助類型描述符不足以執(zhí)行該操作(判定框 301中的否)。在這種情況下,使用輔助類型描述符來(lái)訪問(wèn)規(guī)范主類型描述符(動(dòng)作303)。 隨后,可以使用主類型描述符來(lái)執(zhí)行該操作(動(dòng)作304)。作為可能需要訪問(wèn)主類型描述符的類型操作的示例,假設(shè)在兩個(gè)對(duì)象之間再次執(zhí)行類型比較操作。然而在這種情況下,如果類型描述符指針不匹配,并且確定對(duì)象中的至少一個(gè)指向輔助類型描述符,則訪問(wèn)對(duì)應(yīng)于任何輔助類型描述符的主類型描述符,并使用該主類型描述符來(lái)驗(yàn)證類型匹配。在一個(gè)實(shí)施例中,需要訪問(wèn)主類型描述符的類型操作的比例與可以僅使用輔助類型描述符來(lái)完成的操作類型的比例相比可能相對(duì)較小。圖4示出一種使用輔助類型描述符來(lái)訪問(wèn)規(guī)范類型描述符的示例方法400的流程圖??梢圆捎闷渌椒▉?lái)從輔助類型描述符訪問(wèn)主類型描述符。然而,方法400作為一個(gè)示例是合適的。訪問(wèn)輔助類型描述符內(nèi)的指針(動(dòng)作401)。該指針直接或間接指向主類型描述符。例如,在圖2的情況下,輔助類型描述符的指針指向(如箭頭231所示)間接組件中的適當(dāng)單元。隨后使用間接組件的單元中的指針(參見箭頭23 來(lái)訪問(wèn)主規(guī)范類型描述符 (動(dòng)作402)。因此,即使多個(gè)類型描述符對(duì)應(yīng)于單個(gè)對(duì)象,并且即使特定對(duì)象的主類型描述符駐留在凍結(jié)對(duì)象被分配到的模塊之外,也可以有效地使用類型描述符。此外,通過(guò)合并對(duì)間接組件的寫操作,寫操作在運(yùn)行時(shí)可以更同一,從而最小化并可能消除由于這些寫操作而導(dǎo)致的頁(yè)的專用化。圖5示出一種用于準(zhǔn)備使用間接組件來(lái)允許訪問(wèn)規(guī)范類型描述符的方法500的流程圖。該方法500可以在加載以準(zhǔn)備執(zhí)行時(shí)執(zhí)行。在執(zhí)行該方法之前,在編譯時(shí),可能已經(jīng)設(shè)置了從凍結(jié)對(duì)象指向輔助類型描述符的指針以及從輔助類型描述符指向間接組件的指針。然而,為了完成到主類型描述符的間接路徑,設(shè)置從間接組件指向主類型描述符的指針。為此,確定對(duì)應(yīng)于間接組件的適當(dāng)單元的類型(動(dòng)作501)。隨后確定該類型對(duì)應(yīng)于主類型描述符(動(dòng)作502)。響應(yīng)于該匹配操作,隨后修改間接組件來(lái)包括指向規(guī)范類型描述符的指針(動(dòng)作50;3)。因此,在該實(shí)施例中,在編譯時(shí)期間創(chuàng)建了間接路徑的一部分, 并且在運(yùn)行時(shí)創(chuàng)建間接路徑的最后一部分。這允許在部署時(shí)主類型描述符相對(duì)于其他可執(zhí)行模塊中的凍結(jié)對(duì)象的位置的靈活性。因此,只要主類型描述符存在于可執(zhí)行模塊集合中的某處,該集合中的任何位置的凍結(jié)對(duì)象便可正確地引用(即使是間接地)該主類型描述符。本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所描述的實(shí)施例在所有方面都應(yīng)被認(rèn)為僅是說(shuō)明性而非限制性的。從而,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍所涵蓋。
權(quán)利要求
1.一種包含其上具有可執(zhí)行模塊(220)的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(104)的計(jì)算機(jī)程序產(chǎn)品,所述可執(zhí)行模塊包括凍結(jié)對(duì)象022),所述凍結(jié)對(duì)象022)是由符合一組規(guī)范化規(guī)則的規(guī)范類型描述符 (211)規(guī)范地描述的類型的實(shí)例;輔助類型描述符021),所述輔助類型描述符021)與所述規(guī)范類型描述符不相同,但至少對(duì)于使用所述類型的類型描述符的操作中的某一些,所述輔助類型描述符也用作所述凍結(jié)對(duì)象的類型描述符;其中所述凍結(jié)對(duì)象直接或間接地與所述輔助類型描述符和所述規(guī)范類型描述符相關(guān)聯(lián)。
2.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述規(guī)范類型描述符不存在于所述可執(zhí)行模塊中。
3.如權(quán)利要求2所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述規(guī)范類型描述符存在于所述計(jì)算機(jī)程序產(chǎn)品上。
4.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述凍結(jié)對(duì)象通過(guò)包括指向所述輔助類型描述符的指針來(lái)與所述輔助類型描述符相關(guān)聯(lián)。
5.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述間接組件是這樣一種組件 該組件可在運(yùn)行時(shí)被寫入從而使得所述間接組件在不使得所述間接組件或其部分變?yōu)閷S玫那闆r下指向所述規(guī)范化的類型描述符。
6.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述間接組件是這樣一種組件 該組件可在運(yùn)行時(shí)被一次寫入從而使得所述間接組件在不使得所述間接組件或其部分變?yōu)閷S玫那闆r下指向所述規(guī)范化的類型描述符。
7.如權(quán)利要求1所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述間接組件是導(dǎo)入地址表。
8.一種用于使用對(duì)應(yīng)于凍結(jié)對(duì)象022)的多個(gè)類型描述(211、221)來(lái)執(zhí)行一個(gè)或多個(gè)類型操作的方法(300),所述多個(gè)類型描述包括符合一組規(guī)范化規(guī)則的規(guī)范類型描述符 011),所述方法包括對(duì)于第一組一個(gè)或多個(gè)操作,確定(301)輔助類型描述符021)將足以執(zhí)行所述操作的動(dòng)作,以及使用(30 所述輔助類型描述符但不使用所述規(guī)范類型描述符來(lái)執(zhí)行所述操作的動(dòng)作;以及對(duì)于第二組一個(gè)或多個(gè)操作,確定(301)所述輔助類型描述符不足以執(zhí)行所述操作的動(dòng)作,使用(303)所述輔助類型描述符來(lái)訪問(wèn)所述規(guī)范類型描述符的動(dòng)作;以及使用(304) 所述規(guī)范類型描述符來(lái)執(zhí)行所述操作的動(dòng)作。
9.如權(quán)利要求8所述的方法,其特征在于,所述使用所述輔助類型描述符來(lái)訪問(wèn)所述規(guī)范類型描述符的動(dòng)作包括訪問(wèn)所述輔助類型描述符內(nèi)的指針的動(dòng)作,其中所述指針直接或間接地指向所述規(guī)范類型描述符。
10.如權(quán)利要求8所述的方法,其特征在于,所述使用所述輔助類型描述符來(lái)訪問(wèn)所述規(guī)范類型描述符的動(dòng)作包括訪問(wèn)所述輔助類型描述符內(nèi)的指針的動(dòng)作,其中所述指針直接或間接地指向包括直接或間接地指向所述規(guī)范類型描述符的指針的間接組件;以及使用所述間接組件中的指針來(lái)訪問(wèn)所述規(guī)范類型描述符的動(dòng)作。
11.如權(quán)利要求10所述的方法,其特征在于,還包括準(zhǔn)備使用所述間接組件來(lái)允許訪問(wèn)所述規(guī)范類型描述符的動(dòng)作。
12.如權(quán)利要求11所述的方法,其特征在于,所述準(zhǔn)備動(dòng)作包括 確定對(duì)應(yīng)于所述間接組件的類型的動(dòng)作;確定所述類型對(duì)應(yīng)于所述規(guī)范類型描述符的動(dòng)作;以及修改所述間接組件來(lái)包括指向所述規(guī)范類型描述符的指針的動(dòng)作。
13.如權(quán)利要求8所述的方法,其特征在于,所述第二組操作中的至少一個(gè)包括所述凍結(jié)對(duì)象的類型與另一對(duì)象的類型的比較。
14.如權(quán)利要求8所述的方法,其特征在于,所述第一組操作中的至少一個(gè)要求所述凍結(jié)對(duì)象和用于執(zhí)行所述操作的所述類型描述符之間只存在一層間接。
15.如權(quán)利要求8所述的方法,其特征在于,所述第一組操作中的至少一個(gè)是虛調(diào)用操作。
全文摘要
對(duì)凍結(jié)對(duì)象的類型描述符的高效使用。凍結(jié)對(duì)象實(shí)際上可以包括多個(gè)類型描述符,即,根據(jù)一組規(guī)范化規(guī)則是規(guī)范的主類型描述符,以及與主類型描述符不相同的輔助類型描述符??梢允褂幂o助類型描述符來(lái)訪問(wèn)規(guī)范類型描述符。在執(zhí)行操作時(shí),如果可以使用輔助類型描述符來(lái)執(zhí)行該操作,則可使用該輔類型描述符。如果要使用規(guī)范主類型描述符來(lái)執(zhí)行該操作,則使用輔類型描述符來(lái)獲取對(duì)規(guī)范主類型描述符的訪問(wèn)權(quán)。隨后使用主類型描述符來(lái)執(zhí)行該操作。
文檔編號(hào)G06F9/06GK102203757SQ200980135192
公開日2011年9月28日 申請(qǐng)日期2009年8月19日 優(yōu)先權(quán)日2008年9月3日
發(fā)明者A·帕多, F·V·佩斯徹-蓋里, M·M·馬格魯?shù)? M·泰魯利, P·F·索利趣, P·H·杜斯德, R·馬丁, S·D·莫熱, S·J·霍爾 申請(qǐng)人:微軟公司