專利名稱:用于聲明性編程語言的基于樹的有向圖編程結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及用于聲明性編程語言的基于樹的有向圖編程結(jié)構(gòu)。背景作為一般背景,在計(jì)算機(jī)科學(xué)中,抽象句法樹(AST)是用編程語言編寫的一些源代碼的句法的樹表示或源代碼的某一其他功能等效表示。樹的每一節(jié)點(diǎn)表示出現(xiàn)在源代碼中的構(gòu)造。該樹因不表示出現(xiàn)在原始源中的一些構(gòu)造而是抽象的。這種省略的示例是對圓括號進(jìn)行編組,因?yàn)樵贏ST中,操作數(shù)的編組隱含在樹結(jié)構(gòu)中。解析器通常將AST作為編譯源代碼的過程的一部分來構(gòu)建。一旦構(gòu)建了 AST,例如語義分析等后續(xù)處理就可以向該AST添加附加信息,這可造成基于AST來產(chǎn)生抽象語義圖 (ASG)。ASG是比AST更高級的抽象,它可被用來表達(dá)表達(dá)式或程序的句法結(jié)構(gòu)。在計(jì)算機(jī)科學(xué)中,ASG是被用來表示或?qū)С鲇美缇幊陶Z言等形式語言編寫的表達(dá)式的語義的數(shù)據(jù)結(jié)構(gòu)。ASG通常是由濃縮和抽象過程從抽象句法樹構(gòu)造的。例如,濃縮可以是將從其中使用變量的標(biāo)識(shí)符節(jié)點(diǎn)起的向后指針(back-pointer)或邊添加到表示該變量的聲明的節(jié)點(diǎn)。抽象,例如,可能需要移除細(xì)節(jié),這些細(xì)節(jié)只在解析時(shí)相關(guān)而非對語義相關(guān)。就此,諸如XML等半結(jié)構(gòu)化數(shù)據(jù)的當(dāng)前表示被限于表示樹結(jié)構(gòu)。對于XML,表示圖結(jié)構(gòu)需要使用諸如XML_ID等顯式引用,相對于底層圖結(jié)構(gòu)的表示和存儲(chǔ)而言,這引入了復(fù)雜性并且缺乏靈活性。例如,使用XML ID需要類型系統(tǒng)定義標(biāo)識(shí)符是什么以及引用是什么, 這意味著這樣的定義是在底層圖結(jié)構(gòu)的外部,從而引入了使用復(fù)雜性。因此,特別需要使用緊湊的人類友好的句法而不使用顯式標(biāo)識(shí)符來創(chuàng)作復(fù)雜圖結(jié)構(gòu)化數(shù)據(jù)的能力。當(dāng)今將半結(jié)構(gòu)化程序數(shù)據(jù)表示成圖的上述缺點(diǎn)僅旨在提供常規(guī)系統(tǒng)的一些問題的概覽,并且不旨在是窮盡性的。常規(guī)系統(tǒng)的其他問題以及此處所描述的各非限制性實(shí)施例的對應(yīng)的益處可以在審閱以下描述后變得更顯而易見。概述此處提供了簡化概述以幫助能夠?qū)σ韵赂敿?xì)的描述和附圖中的示例性、非限制性實(shí)施例的各方面有基本或大體的理解。然而,本概述并不旨在作為詳盡的或窮盡的概觀。 相反,本概述的唯一目的是以簡化的形式來提出與一些示例性非限制性實(shí)施例相關(guān)的一些概念,作為以下各實(shí)施例的更為詳細(xì)的描述的序言。提供了用于聲明性編程語言的基于樹的有向圖編程結(jié)構(gòu)的各實(shí)施例。在各實(shí)施例中,復(fù)雜圖結(jié)構(gòu)化數(shù)據(jù)(在此在一個(gè)非限制性實(shí)現(xiàn)中被稱為“DGraph(D圖)”)是使用緊湊的人類友好的句法而不使用顯式標(biāo)識(shí)符來創(chuàng)作的。在一個(gè)非限制性方面,句法包括對遵從 (conformance)關(guān)系(也被稱為因子分解(factored)關(guān)系)的支持。在另一非限制性方面,半結(jié)構(gòu)化圖數(shù)據(jù)是基于樹的表示,并且句法包括引用的詞法解析或詞法作用域確定和/ 或非局部初始化。這些和其他實(shí)施例在下面將更詳細(xì)地描述。附圖簡述
各非限制性實(shí)施例參考附圖來進(jìn)一步描述,附圖中附
圖1是聲明性編程語言和相關(guān)結(jié)構(gòu)的編譯過程鏈的框圖;附圖2是遵從關(guān)系的一般圖示;附圖3是示出有向圖結(jié)構(gòu)的第一非限制性方面的流程圖;附圖4是示出有向圖結(jié)構(gòu)的第二非限制性方面的流程圖;附圖5是示出根據(jù)本文描述的一個(gè)或多個(gè)方面的作為具有計(jì)算機(jī)可執(zhí)行模塊的計(jì)算機(jī)可讀介質(zhì)的示例性實(shí)施例的框圖;附圖6是出于說明性目的的半結(jié)構(gòu)化圖數(shù)據(jù)的示例圖表表示;附圖7是出于說明性目的的半結(jié)構(gòu)化圖數(shù)據(jù)的示例圖表表示;附圖8是出于說明性目的的半結(jié)構(gòu)化圖數(shù)據(jù)的示例圖表表示;附圖9示出結(jié)合一個(gè)或多個(gè)實(shí)施例中描述的基于樹的結(jié)構(gòu)的詞法作用域確定的示例性方面;附圖10、11、12及13示出有向圖結(jié)構(gòu)的不同的詞法作用域確定選擇的到文本表示的圖表映射,從而能對各選擇進(jìn)行比較;附圖14、15、16、17和18類似地示出一系列類似的或相關(guān)的有向圖結(jié)構(gòu)示圖,用于示出用于描述圖結(jié)構(gòu)的緊湊且靈活的句法的附加方面;附圖19是用于聲明性編程模型和相關(guān)表示的示例性過程鏈;附圖20是與面向記錄的執(zhí)行模型相關(guān)聯(lián)的類型系統(tǒng)的圖示;附圖21是根據(jù)本發(fā)明的一實(shí)施例的與基于約束的執(zhí)行模型相關(guān)聯(lián)的類型系統(tǒng)的非限制性圖示;附圖22是根據(jù)有序的執(zhí)行模型的數(shù)據(jù)存儲(chǔ)的圖示;附圖23是根據(jù)次序無關(guān)的執(zhí)行模型的數(shù)據(jù)存儲(chǔ)的非限制性圖示;附圖24是表示其中可實(shí)現(xiàn)此處所描述的各實(shí)施例的示例性、非限制性聯(lián)網(wǎng)環(huán)境的框圖;以及附圖25是表示其中可實(shí)現(xiàn)此處所描述的各實(shí)施例的一個(gè)或多個(gè)方面的示例性、 非限制性計(jì)算系統(tǒng)或操作環(huán)境的框圖。詳細(xì)描述概覽如以上在背景中討論的,常規(guī)系統(tǒng)尤其不能允許使用緊湊的人類友好的句法來創(chuàng)作復(fù)雜圖結(jié)構(gòu)化數(shù)據(jù)。在用XML來表示復(fù)雜圖結(jié)構(gòu)化數(shù)據(jù)的情況下,該表示必須使用諸如 XML_ID等顯式標(biāo)識(shí)符或引用來形成該結(jié)構(gòu)化圖數(shù)據(jù)。因此,在各非限制性實(shí)施例中,提供了用于聲明性編程語言的基于樹的有向圖編程結(jié)構(gòu)的各實(shí)施例。復(fù)雜圖結(jié)構(gòu)化數(shù)據(jù)(在此在一些實(shí)施例中被稱為“DGraph”)可以使用緊湊的人類友好的句法而不使用顯式標(biāo)識(shí)符來創(chuàng)作。在各非限制性方面,句法包括對遵從關(guān)系的支持,啟用引用的詞法解析(也稱為詞法作用域確定)和/或非局部初始化。作為以下內(nèi)容的路標(biāo),首先提供各實(shí)施例的概覽,然后更詳細(xì)地討論示例性的、非限制行的任選實(shí)現(xiàn)及示例圖和圖表示來提供另外的理解。接著,結(jié)合諸如D編程語言等聲明性編程語言來提供一些補(bǔ)充上下文。最后,闡述了其中可以部署本文描述的技術(shù)的一些示例性非限制性網(wǎng)絡(luò)和計(jì)算環(huán)境。
—般而言,用聲明性編程語言來創(chuàng)作源代碼通常是合乎需要的,聲明性編程語言通常被認(rèn)為是命令性編程語言的對應(yīng)物。與命令性編程語言不同,聲明性編程語言允許用戶寫下他們想要從他們的數(shù)據(jù)得到什么,而不必指定如何針對給定的技術(shù)或平臺(tái)來滿足這些希望。就此,D編程語言(或簡寫為“D”)(可在下文中找到關(guān)于它的更多細(xì)節(jié))是很適于緊湊且人類可理解的表示的聲明性編程語言,并且有利地包括用于獨(dú)立于諸如閃存、關(guān)系數(shù)據(jù)庫、RAM、外部驅(qū)動(dòng)器、網(wǎng)絡(luò)驅(qū)動(dòng)器等底層存儲(chǔ)機(jī)制來創(chuàng)建并修改數(shù)據(jù)密集應(yīng)用程序的高效構(gòu)造?!癉”有時(shí)也被稱為“M”編程語言,但為了一致起見,在本文中不使用對M的引用。D包括用于編寫聲明性源代碼的高效且緊湊的句法。就此,D的編程構(gòu)造還可基于為編譯器所接收到的給定源代碼而生成的一個(gè)或多個(gè)抽象句法樹來高效地表示成半結(jié)構(gòu)化圖數(shù)據(jù)。另外,由于該半結(jié)構(gòu)化圖數(shù)據(jù)的句法的人類友好性質(zhì),在可直接指定該半結(jié)構(gòu)化圖數(shù)據(jù)的情況下,應(yīng)用程序和開發(fā)人員不需要形成實(shí)際源代碼。就此,基于一組樹,或D程序的另一規(guī)范,可以形成由于句法中支持的各新穎屬性而高效地表示D程序的編程構(gòu)造的 DGraph,這些新穎屬性有助于形成對于機(jī)器以及人類可理解的較簡單DGraph結(jié)構(gòu),人類基于對并不深?yuàn)W的DGraph結(jié)構(gòu)的文本表示(像語義圖的常規(guī)文本表示一樣)的視覺調(diào)查就可以理解該DGraph結(jié)構(gòu)。示出了可以表示并使用D程序的不同方式的一般框圖系統(tǒng)在附圖1的編譯鏈中示出。例如,源代碼100可由開發(fā)人員或機(jī)器直接創(chuàng)作。源代碼100可由D編譯器110來編譯,所述D編譯器110包括例如用于解析源代碼100的D解析器120和用于形成D句法樹的D句法樹組件130,D句法樹隨后可被分析并轉(zhuǎn)換成D圖(DGraph)結(jié)構(gòu)140。D圖結(jié)構(gòu) 140可由開發(fā)人員直接生成,并且也可由應(yīng)用程序直接生成,并且基于D圖結(jié)構(gòu)所支持的某些特征來以緊湊的方式表示。D圖結(jié)構(gòu)140可被展開到樹130上并展開回源代碼100,D圖結(jié)構(gòu)140可結(jié)合數(shù)據(jù)密集應(yīng)用程序根據(jù)諸如SQL數(shù)據(jù)庫查詢、企業(yè)數(shù)據(jù)管理(EDM)、電子表格應(yīng)用程序、圖形應(yīng)用程序等各領(lǐng)域?qū)S糜猛?50(即,可存儲(chǔ)并分析數(shù)據(jù)的任何地方)被編譯或半編譯成對象代碼。就此,D圖結(jié)構(gòu)140的先前未實(shí)現(xiàn)的兩個(gè)特征包括對遵從關(guān)系的支持和對標(biāo)識(shí)符或引用的詞法解析。一般而言,如附圖2所示,遵從關(guān)系220將一個(gè)模型210鏈接到被稱作它的引用模型200的另一模型。更具體而言,本文描述的聲明性編程模型的上下文中的遵從關(guān)系220 指的是標(biāo)識(shí)共同標(biāo)記的因子分解的定義的可能性,以及加入它們以用于有向圖結(jié)構(gòu)的高效表不。例如,附圖3概括性地示出一個(gè)實(shí)施例中的用于將聲明性編程模型的編程構(gòu)造表示成有向圖的方法。在300,接收包括聲明性編程模型的編程構(gòu)造的一組定義的有向圖數(shù)據(jù)結(jié)構(gòu)。在310,作出因子分解是否適用于該組定義中的某一個(gè)的判定。如果是,則在320,為便于存儲(chǔ)或其他原因,可基于因子分解原理來組合各定義以形成一共同的等效定義,或可以將各定義拆分開(因子分解)。因子分解可適用于從存儲(chǔ)中接收到或檢索到的有向圖結(jié)構(gòu),或在生成有向圖結(jié)構(gòu)時(shí)適用于有向圖結(jié)構(gòu)。為了構(gòu)建靈活且任意的有向圖,將詞法解析或詞法作用域確定(與動(dòng)態(tài)作用域確定相對)與D編程語言相結(jié)合是有利的。例如,附圖4概括性地示出用于基于樹表示來將
6聲明性編程模型的編程構(gòu)造表示成有向圖的方法。在400,接收聲明性編程語言的句法樹。 在410,標(biāo)識(shí)了定義對一個(gè)句法樹進(jìn)行交叉引用的不同方式的詞法作用域的指示,并隨后在 420,生成有向圖數(shù)據(jù)結(jié)構(gòu),有向圖數(shù)據(jù)結(jié)構(gòu)包括基于詞法作用域的至少一個(gè)指示來確定的來自兩個(gè)句法樹的至少一個(gè)交叉引用。詞法作用域確定包括定義自頂層向底層的作用域確定是否適用或自內(nèi)向外的作用域確定是否適用,并且還包括指示是當(dāng)前節(jié)點(diǎn)還是后繼節(jié)點(diǎn)適用于圖的給定邊。在一個(gè)實(shí)施例中,如附圖5概括地示出的,諸如計(jì)算機(jī)可讀介質(zhì)等計(jì)算機(jī)程序產(chǎn)品500可包括用于生成或接收表示聲明性編程模型的有向圖數(shù)據(jù)結(jié)構(gòu)的DGraph模塊510。 在一個(gè)實(shí)施例中,聲明性編程模型支持基于約束的類型定義并遵循次序無關(guān)的執(zhí)行模型。 如在第一非限制性方面中描述的,可包括因子分解模塊520,以用于標(biāo)識(shí)可向其應(yīng)用因子分解的有向圖數(shù)據(jù)結(jié)構(gòu)的定義。在第二非限制性方面,在生成有向圖數(shù)據(jù)結(jié)構(gòu)時(shí),DGraph模塊確定適用于形成有向圖數(shù)據(jù)結(jié)構(gòu)的詞法作用域?;跇涞挠邢驁D編程結(jié)構(gòu)如上所述,在各非限制性實(shí)施例中,提供了用于聲明性編程語言的基于樹的有向圖編程結(jié)構(gòu)?;旧?,對于一些附加背景,DGraph是具有以下各項(xiàng)的加標(biāo)記的有向圖1.節(jié)點(diǎn)集合N ;2.關(guān)于N的二元關(guān)系A(chǔ)。A被稱為有向圖的弧的集合。弧是節(jié)點(diǎn)對。3.標(biāo)記集合1 ;以及4.關(guān)于Nxl的二元關(guān)系L。L被稱為有向圖的標(biāo)記。附圖6示出被表示為圖表600 的示例圖。使用以上形式,圖的圖表600可用文本表示成N= {1,2,3,4,5,6,7,8,9,10,11,12,13}A= {(1,2), (1,3), (2,4), (2,5), (2,6), (3,7), (3,8), (3,9), (4,10), (5,11), (6,2), (7,1), (8,12),(9,13)}1 = {People, Jack, Jill, Name, Age, Spouse, “ Jack" ,23, “ Jill" ,25}L = {(People, 1),(Jack, 2) , (Jill,3),(Name, 4) , (Age,5),(Spouse, 6), (Spouse,7),(Name,8),(Age,9), (" Jack" , 10), (23,11),(" Jill" ,12), (25,13)}盡管這一文本形式很精確并且足以表示所有圖,但它留下了許多將要需要的事物1.圖的結(jié)構(gòu)不像在圖表中那樣清楚。2.因?yàn)?4不是節(jié)點(diǎn),因此句法不保證例如(1,14)這樣的很好地形成的圖是有效句法,但不是有效邊。3.文本具有作者必須補(bǔ)足的對圖無關(guān)緊要的信息,尤其是節(jié)點(diǎn)和標(biāo)記id。此外,4.通過將描述因子分解成可被合成的分開組件來便于創(chuàng)作大型的圖??紤]同一圖的以下文本表示
權(quán)利要求
1.一種用于基于樹表示來將聲明性編程模型的編程構(gòu)造表示成有向圖的方法,包括接收400聲明性編程語言的至少一個(gè)句法樹數(shù)據(jù)結(jié)構(gòu)的表示;接收410定義交叉引用所述至少一個(gè)句法樹數(shù)據(jù)結(jié)構(gòu)的不同方式的詞法作用域的至少一個(gè)指示;以及生成420包括始發(fā)自來自第一句法樹數(shù)據(jù)結(jié)構(gòu)的節(jié)點(diǎn)和來自第二句法樹數(shù)據(jù)結(jié)構(gòu)的節(jié)點(diǎn)的至少一個(gè)交叉引用的有向圖數(shù)據(jù)結(jié)構(gòu),所述至少一個(gè)交叉引用是基于詞法作用域的所述至少一個(gè)指示來確定的。
2.如權(quán)利要求1所述的方法,其特征在于,接收410詞法作用域的至少一個(gè)指示包括接收所述生成是否包括從頂層作用域到底層作用域進(jìn)行來生成所述有向圖數(shù)據(jù)結(jié)構(gòu)的指示。
3.如權(quán)利要求1所述的方法,其特征在于,接收410詞法作用域的至少一個(gè)指示包括接收所述生成是否包括從最內(nèi)部作用域到最外部作用域進(jìn)行來生成所述有向圖數(shù)據(jù)結(jié)構(gòu)的指示。
4.如權(quán)利要求1所述的方法,其特征在于,接收410詞法作用域的至少一個(gè)指示包括接收所述生成是否包括相對于當(dāng)前節(jié)點(diǎn)進(jìn)行來生成所述有向圖數(shù)據(jù)結(jié)構(gòu)的指示。
5.如權(quán)利要求1所述的方法,其特征在于,接收410詞法作用域的至少一個(gè)指示包括接收所述生成是否包括相對于當(dāng)前節(jié)點(diǎn)的后繼節(jié)點(diǎn)進(jìn)行來生成所述有向圖數(shù)據(jù)結(jié)構(gòu)的指示。
6.如權(quán)利要求1所述的方法,其特征在于,還包括將所述有向圖數(shù)據(jù)結(jié)構(gòu)的至少一個(gè)定義因子分解310成等效于該至少一個(gè)定義的至少兩個(gè)子定義。
7.如權(quán)利要求6所述的方法,其特征在于,還包括將所述至少兩個(gè)子定義的值存儲(chǔ)在至少兩個(gè)不同的存儲(chǔ)位置。
8.如權(quán)利要求1所述的方法,其特征在于,還包括標(biāo)識(shí)所述有向圖數(shù)據(jù)結(jié)構(gòu)的至少兩個(gè)因子分解的定義;以及將所述至少兩個(gè)因子分解的定義自動(dòng)地組合成所述有向圖數(shù)據(jù)結(jié)構(gòu)的等效于所述至少兩個(gè)因子分解的定義的定義。
9.如權(quán)利要求1所述的方法,其特征在于,接收410詞法作用域的至少一個(gè)指示包括接收作為節(jié)點(diǎn)標(biāo)記前導(dǎo)的‘.’,它指示從頂層作用域進(jìn)行來生成所述有向圖數(shù)據(jù)結(jié)構(gòu)。
10.如權(quán)利要求1所述的方法,其特征在于,接收410詞法作用域的至少一個(gè)指示包括接收作為節(jié)點(diǎn)標(biāo)記前導(dǎo)的‘&’,它指示是從當(dāng)前節(jié)點(diǎn)還是后繼節(jié)點(diǎn)進(jìn)行來生成所述有向圖數(shù)據(jù)結(jié)構(gòu)。
11.一種用于將聲明性編程模型的編程構(gòu)造表示成有向圖的方法,包括接收300有向圖數(shù)據(jù)結(jié)構(gòu),所述有向圖數(shù)據(jù)結(jié)構(gòu)包括描述所述聲明性編程模型的編程構(gòu)造的一組定義的一組節(jié)點(diǎn)、一組邊以及一組標(biāo)記;以及標(biāo)識(shí)310所述一組定義中的至少一個(gè)定義,因子分解操作可應(yīng)用于該至少一個(gè)定義以形成至少一個(gè)等效定義。
12.如權(quán)利要求11所述的方法,其特征在于,接收300所述有向圖數(shù)據(jù)結(jié)構(gòu)包括生成所述有向圖數(shù)據(jù)結(jié)構(gòu)。
13.如權(quán)利要求11所述的方法,其特征在于,還包括自動(dòng)地組合320所述一組定義中的至少兩個(gè)定義以基于所述因子分解操作來形成共同的等效定義。
14.如權(quán)利要求11所述的方法,其特征在于,還包括將所述一組定義中的至少一個(gè)定義自動(dòng)地因子分解320成等效于該至少一個(gè)定義的至少兩個(gè)因子分解的定義。
15.如權(quán)利要求14所述的方法,其特征在于,所述因子分解320包括應(yīng)用執(zhí)行所述一組標(biāo)記的共同標(biāo)記的自頂向下加入的規(guī)則。
16.如權(quán)利要求14所述的方法,其特征在于,所述因子分解320包括應(yīng)用執(zhí)行所述一組標(biāo)記的共同標(biāo)記的后繼節(jié)點(diǎn)的自頂向下聯(lián)合的規(guī)則。
17.如權(quán)利要求14所述的方法,其特征在于,還包括將所述至少兩個(gè)因子分解的定義存儲(chǔ)在至少兩個(gè)不同的存儲(chǔ)位置。
18.—種包括用于分析表示聲明性編程模型的有向圖數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀介質(zhì),包括用于生成或接收表示聲明性編程模型的有向圖數(shù)據(jù)結(jié)構(gòu)的DGraph模塊520,所述聲明性編程模型支持基于約束的類型定義并遵循次序無關(guān)的執(zhí)行模型,其中在生成所述有向圖數(shù)據(jù)結(jié)構(gòu)時(shí),所述DGraph模塊確定適用于形成所述有向圖數(shù)據(jù)結(jié)構(gòu)的詞法作用域;以及用于標(biāo)識(shí)所述有向圖數(shù)據(jù)結(jié)構(gòu)的至少一個(gè)定義的因子分解模塊530,其中可對該至少一個(gè)定義應(yīng)用因子分解以形成表示該至少一個(gè)定義的至少一個(gè)等效定義。
19.如權(quán)利要求18所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述因子分解模塊530將所述至少一個(gè)定義自動(dòng)地因子分解以形成包括所述至少一個(gè)等效定義的等效有向圖數(shù)據(jù)結(jié)構(gòu)。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于將所述等效有向圖數(shù)據(jù)結(jié)構(gòu)輸出給存儲(chǔ)540或第三方應(yīng)用550中的至少一個(gè)以供消費(fèi)的輸出模塊510。
全文摘要
提供了用于聲明性編程語言的基于樹的有向圖編程結(jié)構(gòu)的各實(shí)施例。在各實(shí)施例中,復(fù)雜的圖結(jié)構(gòu)化數(shù)據(jù)(在此在一個(gè)非限制性實(shí)現(xiàn)中被稱為“DGraph”)是使用緊湊的人類友好的句法而不使用顯式標(biāo)識(shí)符來創(chuàng)作的。在一個(gè)非限制性方面,句法包括對遵從關(guān)系(也被稱為因子分解的關(guān)系)的支持。在另一非限制性方面,半結(jié)構(gòu)化圖數(shù)據(jù)是基于樹的表示,并且句法包括引用的詞法解析或詞法作用域確定和/或非局部初始化。
文檔編號G06F9/44GK102171679SQ200980139954
公開日2011年8月31日 申請日期2009年9月30日 優(yōu)先權(quán)日2008年10月3日
發(fā)明者B·H·洛夫林, D·E·蘭沃西, D·F·伯克斯, J·L·昂比 申請人:微軟公司