專利名稱:用于以一種語言獨(dú)立語法記錄宏的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及一種計(jì)算環(huán)境內(nèi)的宏記錄系統(tǒng)。更特別地,本發(fā)明涉及一種用于以計(jì)算機(jī)語言獨(dú)立語法建立宏指令的方法和系統(tǒng),其中宏最后將被記錄,這樣宏能夠被處理為多種源編碼語言而不用重新建立宏。
背景技術(shù):
計(jì)算設(shè)備在本領(lǐng)域是眾所周知并被廣泛應(yīng)用的。例如,計(jì)算設(shè)備可以采用個人計(jì)算機(jī),具有計(jì)算機(jī)終端接入的中央計(jì)算機(jī)終端,或者一個具有連接到一個諸如因特網(wǎng)的的網(wǎng)絡(luò)的計(jì)算設(shè)備的廣泛分布的系統(tǒng)的形式。雖然一些計(jì)算設(shè)備可以由幾個人或沒有人介入操作,許多計(jì)算設(shè)備需要人們輸入進(jìn)行操作。計(jì)算設(shè)備,例如個人計(jì)算機(jī),通常具有一個用于輸入數(shù)字和文本信息的鍵盤。
依靠由計(jì)算設(shè)備執(zhí)行的工作的類型,計(jì)算設(shè)備也可以具有其他類型的輸入。例如,隨著圖形用戶接口的普及,圖形輸入設(shè)備的使用顯著地增加。圖形輸入設(shè)備包括諸如計(jì)算機(jī)鼠標(biāo)、圖形輸入板、數(shù)字化儀和光筆的設(shè)備。這些設(shè)備使一個諸如光標(biāo)的圖象元素能在一個計(jì)算機(jī)屏幕上移動和定位。這個圖像元素可以被使用以便選擇操作指令操作計(jì)算機(jī)或可以參與信息的輸入。
上述的計(jì)算機(jī)鼠標(biāo)是最常用的圖形輸入設(shè)備的一種。鼠標(biāo)被連接到計(jì)算設(shè)備并被使用以便選擇命令和輸入圖形信息。通過穿過一個表面的移動鼠標(biāo),該鼠標(biāo)的相對運(yùn)動被通知到計(jì)算設(shè)備,由此移動圖形光標(biāo)。鼠標(biāo)上的按鍵訪問并激活指令并通過定位光標(biāo)輸入圖形信息。
計(jì)算設(shè)備也能夠基于基于操作計(jì)算設(shè)備的應(yīng)用從一個用戶接受其他形式的輸入,包括語音輸入,從數(shù)碼相機(jī)的輸入,從數(shù)碼攝像機(jī)的輸入,以及從其它連接到該計(jì)算設(shè)備并通過一個局域或廣域網(wǎng)耦合的計(jì)算資源的輸入。
當(dāng)操作一個計(jì)算設(shè)備時,一個用戶能夠與輸入設(shè)備交互作用以便指導(dǎo)計(jì)算設(shè)備的操作。常常計(jì)算設(shè)備需要相同的一系列輸入以執(zhí)行特定的運(yùn)算。執(zhí)行這套重復(fù)的操作可以包括從一個或多個輸入設(shè)備的幾個輸入。例如,一個特定的運(yùn)算可能需要鼠標(biāo)動作以啟動一個程序,接著用鍵盤按照原文輸入一個訪問密碼。鍵盤、鼠標(biāo)和其它輸入是經(jīng)常需要的以便達(dá)到重復(fù)的運(yùn)算。每次用戶想要執(zhí)行這個重復(fù)的運(yùn)算時,用戶都必須通過相同的順序利用相同的輸入設(shè)備進(jìn)行。這不僅是浪費(fèi)時間,而且這個順序很容易弄錯。在一些情況下,重復(fù)的操作可以用一個宏來簡化。
宏被使用以便自動地重復(fù)鍵盤、鼠標(biāo)和在一個特定的應(yīng)用中的其它輸入?;旧?,宏通常是包括重復(fù)指令的文件。宏一旦建立,就可以由計(jì)算設(shè)備重放。例如,許多軟件應(yīng)用程序具有宏記錄和回放能力。在這些軟件應(yīng)用程序中,用戶可以記錄一個宏以便執(zhí)行一個特定的運(yùn)算或一系列操作并給這個宏一個名字。因此,那個運(yùn)算或者系列操作可以通過執(zhí)行那個命名的宏來執(zhí)行,由此節(jié)省用戶的時間并有效地重復(fù)宏的所有步驟。為了運(yùn)行這個宏,該軟件應(yīng)用程序通常具有一個宏回放功能,其能夠由命令或通過使用快捷鍵命令啟動。
隨著當(dāng)前宏錄制器技術(shù)發(fā)展,只用一種語言,Visual Basic應(yīng)用程序(VBA)記錄用基本上是可能的。然而,還存在許多其它能夠被用于記錄和運(yùn)行宏的編程語言。此外,用戶更喜歡根據(jù)用戶的個人偏愛、技術(shù)和熟練程度使用他們選擇的語言來記錄宏。為了使用除VBA之外的一種語言記錄宏,應(yīng)用程序開發(fā)者不得不為每種用戶想要用其記錄宏的語言重新編寫的宏錄制器。這樣的方法不僅昂貴和浪費(fèi)時間,而且也容易出現(xiàn)錯誤并導(dǎo)致以不同語言記錄的宏之間狀態(tài)不一致。提供一種用于由軟件應(yīng)用程序作很少工作就能以多種語言記錄一個宏的方法和系統(tǒng),節(jié)省用戶和應(yīng)用程序開發(fā)者的時間和金錢。
發(fā)明概述在這里公開的本發(fā)明的方法和系統(tǒng)提供了一種用于以計(jì)算機(jī)語言獨(dú)立語法記錄計(jì)算機(jī)宏的裝置,由此使一個軟件應(yīng)用程序能夠只記錄一次這些指令,接著轉(zhuǎn)換這些指令為許多種計(jì)算機(jī)語言的任意的源編碼。因此,本發(fā)明的一方面是允許一個想要以一種或多種計(jì)算機(jī)語言記錄一個宏的用戶通過打開計(jì)算機(jī)系統(tǒng)中的一個記錄系統(tǒng)開始這個宏的記錄。該記錄系統(tǒng)通常包括一個位于宏記錄引擎內(nèi)的宏錄制器。宏錄制器和宏記錄引擎都能位于計(jì)算機(jī)系統(tǒng)上的軟件應(yīng)用程序。
用戶能夠通進(jìn)一步執(zhí)行一個或多個用戶想要記錄在計(jì)算機(jī)系統(tǒng)上的動作。這些動作通常在一個駐留在計(jì)算機(jī)系統(tǒng)中的軟件應(yīng)用程序上被執(zhí)行。這些動作能夠包括在用戶與軟件應(yīng)用程序交互作用的時候發(fā)生的一連串命令或鍵盤敲擊。這些動作通常由軟件應(yīng)用程序轉(zhuǎn)換為一系列指令,稱之為具有一種計(jì)算機(jī)語言獨(dú)立語法的指令列表。這個指令列表通常表示一種由用戶完成的并由記錄系統(tǒng)記錄的這些動作的計(jì)算機(jī)可讀取的譯碼。這些指令的計(jì)算機(jī)語言獨(dú)立語法能夠允許這些指令一旦被建立,能被轉(zhuǎn)換為一種或多種不同的計(jì)算機(jī)語言。這種計(jì)算機(jī)語言獨(dú)立語法通常不是與軟件應(yīng)用程序使用的計(jì)算機(jī)語言對稱的。
指令列表通常包括指令和操作對象二者,他們之間是一對一或一對零的關(guān)系。操作對象通常指被產(chǎn)生影響或被操作的信息。用戶動作在一個編碼程序的的幫助下通過軟件應(yīng)用程序被轉(zhuǎn)換為指令列表,編碼程序能夠位于軟件應(yīng)用程序中。這些指令由一種計(jì)算機(jī)語言獨(dú)立語法構(gòu)成。一旦完成,指令列表就能夠被發(fā)送到一個或多個處理器以便轉(zhuǎn)換為特定計(jì)算機(jī)語言的源編碼。由于該指令列表是由一種計(jì)算機(jī)語言獨(dú)立語法編寫的,該指令列表能夠依據(jù)開發(fā)者和用戶偏好由不同的軟件應(yīng)用程序被轉(zhuǎn)換為不同的計(jì)算機(jī)語言。例如,在用戶B可以選擇以語言B記錄宏的時候,用戶A可以選擇以語言A記錄宏。如果兩個用戶記錄同樣的宏,接著利用計(jì)算機(jī)語言獨(dú)立語法生成指令列表,但是該指令列表由不同的處理器處理為語言A和語言B。在另一個典型的實(shí)施例中,利用語言獨(dú)立語法建立的該指令列表在一個時間轉(zhuǎn)換為多種計(jì)算機(jī)語言是可能的,而不用在其被發(fā)送到每個不同的處理器之前重新建立這些指令和指令列表。
附圖簡要說明為了更完整的理解本發(fā)明和其優(yōu)點(diǎn),現(xiàn)在結(jié)合附圖進(jìn)行下面的說明,其中
圖1A是舉例說明實(shí)施本發(fā)明的各個實(shí)施例的典型的操作環(huán)境的框圖;圖1B是根據(jù)本發(fā)明的一個典型實(shí)施例構(gòu)成的用于以一種目標(biāo)指令語言記錄宏的宏建立和記錄系統(tǒng)的框圖;圖2是舉例說明根據(jù)本發(fā)明構(gòu)成的一個典型實(shí)施例的利用一種目標(biāo)指令語言建立的指令列表的統(tǒng)一建模語言圖表的框圖;圖3是舉例說明根據(jù)本發(fā)明的一個典型實(shí)施例的用于利用一種目標(biāo)指令語言記錄一個宏的過程的流程圖;圖4是舉例說明根據(jù)本發(fā)明的一個典型實(shí)施例的用于利用一種目標(biāo)指令語言為一個宏建立指令列表的過程的流程圖;圖5是一個舉例說明根據(jù)本發(fā)明的一個典型實(shí)施例的用于適當(dāng)改變以一種目標(biāo)指令語言編寫的一個指令的構(gòu)成的過程的流程圖。
典型實(shí)施例的詳細(xì)描述本發(fā)明支持一種由計(jì)算機(jī)實(shí)施的方法,用于以一種計(jì)算機(jī)語言獨(dú)立語法的目標(biāo)指令語言(“OIL”)記錄宏。這種獨(dú)立語法能夠被用于以一種語言記錄宏,接著以各種其他編程語言實(shí)施它。OIL的獨(dú)立語法通過以一種特定的語言轉(zhuǎn)換一個宏的指令步驟為能夠適用于多種語言的指令的通用集合。利用該OIL語言,編程者不需要以各種不同的語言重新建立相同的宏。通過參考附圖本發(fā)明能夠被更容易的理解。
雖然本發(fā)明的典型實(shí)施例一般是以軟件模塊內(nèi)容和一個運(yùn)行在個人計(jì)算機(jī)上的操作系統(tǒng)被描述,本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到本發(fā)明也能夠結(jié)合用于其它類型計(jì)算機(jī)的其它程序模塊被實(shí)施。此外,本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到本發(fā)明可以用單機(jī)或分布式計(jì)算機(jī)環(huán)境實(shí)施。在一個分布式計(jì)算機(jī)環(huán)境中,程序模塊可以是物理地位于不同的本地和遠(yuǎn)程存儲器存儲設(shè)備中。這些程序模塊的執(zhí)行可以以單機(jī)方式本地的發(fā)生,或者以客戶/服務(wù)器方式遠(yuǎn)程地發(fā)生。這樣分布式計(jì)算機(jī)環(huán)境的例子包括一個辦公室的局域網(wǎng),企業(yè)廣域計(jì)算機(jī)網(wǎng)絡(luò),和全球因特網(wǎng)。
下面的詳細(xì)說明主要依據(jù)常規(guī)計(jì)算機(jī)元件的處理和操作的符號表示來表示,計(jì)算機(jī)部件包括處理單元,存儲器存儲設(shè)備,顯示設(shè)備和輸入設(shè)備。這些處理和操作可以在一個分布式計(jì)算環(huán)境中利用常規(guī)計(jì)算機(jī)部件,包括遠(yuǎn)程文件服務(wù)器,遠(yuǎn)程計(jì)算機(jī)服務(wù)器,和遠(yuǎn)程存儲器存儲設(shè)備。這些常規(guī)分布式計(jì)算元件的每個經(jīng)由一個通信網(wǎng)絡(luò)通過一個處理單元是可存取的。
由計(jì)算機(jī)執(zhí)行的處理和操作包括通過一個處理單元或遠(yuǎn)程服務(wù)器的信號的處理和駐留在一個或多個本地或遠(yuǎn)程存儲器存儲設(shè)備的數(shù)據(jù)結(jié)構(gòu)內(nèi)的這些信號的維護(hù)。這樣的數(shù)據(jù)結(jié)構(gòu)依據(jù)存儲在一個存儲器存儲設(shè)備內(nèi)的數(shù)據(jù)的采集施加于物理組織,并表示特殊的電或磁元件。這些符號表示是由計(jì)算機(jī)編程和計(jì)算機(jī)結(jié)構(gòu)領(lǐng)域技術(shù)人員使用的方法,以便最有效地傳達(dá)教學(xué)和發(fā)現(xiàn)給本領(lǐng)域其他技術(shù)人員。
本發(fā)明包括一個具備有這里描述的功能并由附加的流程圖(或邏輯流程圖)舉例說明的計(jì)算機(jī)程序。然而,顯而易見的是在計(jì)算機(jī)編程中有許多執(zhí)行本發(fā)明的不同的方式,不應(yīng)該將本發(fā)明的構(gòu)成限制于任何一組計(jì)算程序指令。此外,例如熟練的程序員能夠基于流程圖和申請文本中的相關(guān)描述毫不費(fèi)力的編寫這樣的計(jì)算機(jī)程序來實(shí)現(xiàn)公開的發(fā)明。因此,特定組的程序編碼指令的公開不用必須考慮如何進(jìn)行和使用本發(fā)明的充分理解。在下面說明中結(jié)合舉例說明程序流程的剩余附圖,所闡述的計(jì)算機(jī)程序的本發(fā)明的功能將被詳細(xì)描述。
參考附圖,其中整個附圖中相同的數(shù)字表示相同的元件,本發(fā)明的各個方面和用于實(shí)現(xiàn)本發(fā)明的典型的操作環(huán)境將被描述。
圖1A是舉例說明用于實(shí)施本發(fā)明的各個實(shí)施例的典型的操作環(huán)境1的框圖。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解圖1A及其相關(guān)討論意在提供一種計(jì)算機(jī)硬件和程序模塊,以及在適當(dāng)?shù)某绦蛟O(shè)計(jì)手冊中很容易得到的附加信息,用戶指南,和類似出版物的簡要,概括的說明。
在圖1A中舉例說明的典型的操作環(huán)境1包括可以是常規(guī)個人計(jì)算機(jī)10的形式的通用計(jì)算設(shè)備。如圖10A中所示,個人計(jì)算機(jī)10運(yùn)行在一個與遠(yuǎn)程服務(wù)器110邏輯連接的網(wǎng)絡(luò)環(huán)境中。個人計(jì)算機(jī)10和遠(yuǎn)程服務(wù)器110之間的邏輯連接由一個本地局域網(wǎng)12和一個廣域網(wǎng)13表示。本領(lǐng)域普通技術(shù)人員應(yīng)認(rèn)識到這種客戶/服務(wù)器配置,遠(yuǎn)程服務(wù)器110可以作為一個文件服務(wù)器或計(jì)算機(jī)服務(wù)器運(yùn)行。
個人計(jì)算機(jī)10包括一個處理單元14,例如由Santa Clara,Calif的因特爾公司制造的“PENTIUM”微處理器。該個人計(jì)算機(jī)也包括系統(tǒng)存儲器15,包括只讀存儲器(ROM)16和隨機(jī)存取存儲器(RAM)17,通過系統(tǒng)總線18連接到處理器14。計(jì)算機(jī)10的一個典型實(shí)施例利用一個基本輸入/輸出系統(tǒng)(BIOS)19,其被存儲在ROM 16中。本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到BIOS 19是一組促進(jìn)個人計(jì)算機(jī)10的多個元件之間傳輸信息的基本程序。本領(lǐng)域技術(shù)人員也應(yīng)該理解本發(fā)明可以在具有其他構(gòu)造的計(jì)算機(jī)上被實(shí)施,例如不使用BIOS 19的計(jì)算機(jī),和那些利用其他類型微處理器作為處理單元14的計(jì)算機(jī)。
在該個人計(jì)算機(jī)10內(nèi),一個本地硬盤驅(qū)動器20通過一個硬盤驅(qū)動器接口21被連接到系統(tǒng)總線18。一個軟盤驅(qū)動器22,用于讀寫軟盤23,通過一個軟盤驅(qū)動器接口24被連接到系統(tǒng)總線18。一個CD-ROM或DVD驅(qū)動器25,用于讀取CD-ROM或DVD盤26,通過一個CD-ROM或DVD接口27被連接到系統(tǒng)總線18。
用戶能夠通過利用輸入設(shè)備,例如鍵盤28和/或指點(diǎn)器,例如鼠標(biāo)29輸入命令或信息到個人計(jì)算機(jī)10中,它們通過一個串行接口30被連接到系統(tǒng)總線18。其它類型的指點(diǎn)器(在圖1中未示出)包括跟蹤板,跟蹤球,數(shù)字筆,磁頭跟蹤器,數(shù)字手套,和其它適用于在一個監(jiān)視器105上定位光標(biāo)的設(shè)備。監(jiān)視器105或其它種類顯示設(shè)備通過一個視頻適配器32被連接到系統(tǒng)總線18。
如在圖1A中所描述的,許多程序模塊被存儲在ROM16、RAM17、硬盤21、軟盤23或CD-ROM/DVD盤26中,例如一個操作系統(tǒng)36,一個應(yīng)用程序模塊117,一個瀏覽器程序模塊37,和一個文檔程序38。程序模塊包括例行程序,子程序,程序,目的,組件,數(shù)據(jù)結(jié)構(gòu),等等,其執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。
在這個連網(wǎng)的環(huán)境中遠(yuǎn)程服務(wù)器110被連接到一個遠(yuǎn)程存儲器存儲設(shè)備33。這個遠(yuǎn)程存儲器存儲設(shè)備33通常是一個大容量設(shè)備,例如硬盤驅(qū)動器,CD-ROM或DVD驅(qū)動器,磁光驅(qū)動器或類似的。本領(lǐng)域技術(shù)人員應(yīng)理解程序模塊,例如應(yīng)用程序模塊117,通過可讀取的計(jì)算機(jī)媒體提供到遠(yuǎn)程服務(wù)器110。個人計(jì)算機(jī)10通過一個網(wǎng)絡(luò)接口34被連接到遠(yuǎn)程服務(wù)器110,他被用于在一個本地局域網(wǎng)(LAN)12上通信。
在某些實(shí)施例中,個人計(jì)算機(jī)10也通過調(diào)制解調(diào)器35被連接到遠(yuǎn)程服務(wù)器110,它被用于在一個廣域網(wǎng)(WAN)13上通信,例如因特網(wǎng)。調(diào)制解調(diào)器35通過串行端口接口30被連接到系統(tǒng)總線18。調(diào)制解調(diào)器35也能夠被連接到公共交換電話網(wǎng)(PSTN)或共用電視天線(CATV)網(wǎng)絡(luò)。雖然在圖1A舉例說明了在個人計(jì)算機(jī)10外部,本領(lǐng)域技術(shù)人員能夠認(rèn)識到調(diào)制解調(diào)器35也可以在個人計(jì)算機(jī)10內(nèi)部,這樣通過系統(tǒng)總線18直接通信。重要的是注意到通過LAN 12和WAN 13二者連接到遠(yuǎn)程服務(wù)器110是不必要的,但只舉例說明了在個人計(jì)算機(jī)10和遠(yuǎn)程服務(wù)器110之間提供通信路徑的可替換的方法。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解程序模塊,例如操作系統(tǒng)36,應(yīng)用程序模塊117,瀏覽器程序模塊37,和文檔程序38能夠通過可讀取的計(jì)算機(jī)媒體被提供到個人計(jì)算機(jī)10。在操作環(huán)境1的典型實(shí)施例中,可讀取的計(jì)算機(jī)媒體能夠包括本地或遠(yuǎn)程存儲器存儲設(shè)備,它可以包括本地硬盤驅(qū)動器20、軟盤23、CD-ROM/DVD 26、RAM 17、ROM 16,以及遠(yuǎn)程存儲器存儲設(shè)備33。在個人計(jì)算機(jī)10的一些典型實(shí)施例中,本地硬盤驅(qū)動器20被用于存儲數(shù)據(jù)和程序。
雖然個人計(jì)算機(jī)10的其它元件和操作環(huán)境1基本上未被示出,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解這樣的元件和它們之間的相互連接是已知的。因此,與個人計(jì)算機(jī)10的這些元件和操作環(huán)境1有關(guān)的附加細(xì)節(jié)基本上不需要為了由本領(lǐng)域普通技術(shù)人員實(shí)施本發(fā)明而在與本發(fā)明聯(lián)系中被公開。
參考圖1B,示出了根據(jù)本發(fā)明的一個典型實(shí)施例構(gòu)成的用于以一種OIL語言記錄宏的宏建立和記錄系統(tǒng)100的框圖。典型的宏建立和記錄系統(tǒng)100包括一個用戶接口105,一個服務(wù)器110,和一個應(yīng)用程序117。應(yīng)用程序117包括一個宏程序庫120,Visual Studio for Applications(VSA)子系統(tǒng)125,Visual Basic forApplications(VBA)子系統(tǒng)130。宏程序庫120包括處理器135和宏錄制器引擎140。宏錄制器引擎140包括一個錄制器145,一個編制器150,指令列表155,校驗(yàn)器160,和變量映射表165。VSA子系統(tǒng)125包括一個VSA錄制器175。VBA子系統(tǒng)130包括一個VBA錄制器170。
用戶接口105可以通過計(jì)算機(jī)網(wǎng)絡(luò)通信連接到服務(wù)器110。用戶接口105為用戶提供一個用于與服務(wù)器110,數(shù)據(jù)庫115和應(yīng)用程序117通信的裝置。例如,用戶接口105能夠經(jīng)由服務(wù)器110發(fā)送包括數(shù)據(jù)和詢問的信息到應(yīng)用程序117和數(shù)據(jù)庫115。用戶接口105能夠經(jīng)由服務(wù)器110從數(shù)據(jù)庫115和應(yīng)用程序117接收信息。在一個典型實(shí)施例中,用戶接口105是一臺個人計(jì)算機(jī)。
服務(wù)器110可以通過計(jì)算機(jī)網(wǎng)絡(luò)通信連接到用戶接口105和數(shù)據(jù)庫115。服務(wù)器110通常表示響應(yīng)于通過用戶接口105來自一個用戶的命令的計(jì)算機(jī)或程序。
數(shù)據(jù)庫115可以通過計(jì)算機(jī)網(wǎng)絡(luò)通信連接到服務(wù)器110和應(yīng)用程序117。數(shù)據(jù)庫115包括與軟件應(yīng)用程序、語言處理器和宏錄制器有關(guān)的信息。在一個典型實(shí)施例中,數(shù)據(jù)庫115是一個結(jié)構(gòu)化查詢語言服務(wù)器數(shù)據(jù)庫。
應(yīng)用程序117是一個為了在包括文字處理、帳目管理或產(chǎn)品列表管理的特殊任務(wù)的執(zhí)行中幫助用戶的軟件應(yīng)用程序。
宏程序庫120是一個動態(tài)鏈接程序庫。在一個典型實(shí)施例中,宏程序庫120包含在應(yīng)用程序117內(nèi),但是宏程序庫120能夠獨(dú)立于應(yīng)用程序117的存在,允許宏程序庫120被多個應(yīng)用程序117訪問。處理器135包括一個或多個多種類型的碼處理器,包括C Plus Plus(C++)處理器,C Sharp(C#)處理器,VBA處理器,和Visual Basic.Net(VB.Net)處理器。處理器135通常轉(zhuǎn)換從宏錄制器引擎140接收的指令為特定語言源編碼。
錄制器145、編制器150、指令列表155、校驗(yàn)器160和變量映射表165通常是組件對象模型(COM)組件。在一個典型實(shí)施例中,錄制器145、編制器150、指令列表155、校驗(yàn)器160和變量映射表165駐留在應(yīng)用程序117內(nèi)。然而,在一個可替換的典型實(shí)施例中,這些COM組件能夠獨(dú)立于應(yīng)用程序117的存在,這樣多種應(yīng)用程序117能夠訪問信號編制器150。錄制器145表示一個錄制和存儲由用戶在用戶接口105的動作建立的宏的程序。編制器150能夠建立一個空的指令列表155,從錄制器145接收信息,利用語言獨(dú)立語法建立指令,發(fā)送指令到校驗(yàn)器160和變量映射表165以確保正確的指令構(gòu)成,并將該指令加到指令列表155。錄制器145能夠接著發(fā)送指令列表155到處理器135以轉(zhuǎn)換指令列表155為特定語言源編碼。
指令列表155是一個指令和操作數(shù)對的列表,其中操作數(shù)能夠是取決于指令格式的指令的任意部分。在一個典型實(shí)施例中,指令列表以一比一或一比零的相互關(guān)系包括指令和操作數(shù)。一旦完成,指令列表155通常包括以計(jì)算機(jī)語言獨(dú)立語法建立的一組指令。完整的指令列表被錄制器145發(fā)送到處理器135。校驗(yàn)器160確定指令列表155中的指令是否包括正確數(shù)量和類型的操作數(shù)。例如,校驗(yàn)器160能夠確保處理器135毫無問題的從接收的指令列表155生成源編碼。一旦確定了合適的結(jié)構(gòu),校驗(yàn)器160就向后發(fā)送指令到編制器150。變量映射表165能夠從編制器150接收指令,存儲指令內(nèi)變量的名字和類型,確保用戶不能建立一個具有相同名字但不同類型的變量,并返回該指令到編制器150。
VSA子系統(tǒng)125是一個包括VSA錄制器175的動態(tài)鏈接程序庫。VSA錄制器175通常從一個VSA處理器135接收宏源編碼并在與建立宏的文檔相關(guān)聯(lián)的VSA應(yīng)用軟件117內(nèi)保存源編碼。
VBA子系統(tǒng)130是一個包括VBA錄制器170的動態(tài)鏈接程序庫。VBA錄制器170通常從一個VBA處理器135接收宏源編碼并在與建立宏的文檔相關(guān)聯(lián)的VBA應(yīng)用軟件117內(nèi)保存源編碼。在一個典型實(shí)施例中,系統(tǒng)100的目的是產(chǎn)生一個處理?xiàng)W鳛槟繕?biāo)的指令列表155,其中每個指令具有正確的類型和對應(yīng)操作數(shù)的數(shù)量。
圖2是舉例說明根據(jù)本發(fā)明的一個典型實(shí)施例構(gòu)成的利用一種計(jì)算機(jī)語言獨(dú)立語法建立的指令列表200的初始結(jié)構(gòu)的統(tǒng)一建模語言圖表的圖?,F(xiàn)在參考圖1B和2,典型的指令列表200包括駐留在編制器150的指令列表155中的指令205和操作數(shù)250。指令205包括callvirt 210、ldloc 215、stloc 220、ldc_i4 225、ldc_r8230、ldstr 235、pop 240和備注245。操作數(shù)250包括變量255、方法260和字面值265。菱形207和標(biāo)記0..1 252通常表示零或一個與指令列表155中的每個指令205相關(guān)聯(lián)的操作數(shù)250。
變量255是操作數(shù)250的一種類型,并通常定義為一個能夠包含在程序執(zhí)行期間能夠被調(diào)整的數(shù)據(jù)的指定的存儲單元。方法260是操作數(shù)250的一種類型,定義為當(dāng)接收到一個消息時由一個對象執(zhí)行的過程。字面值265是操作數(shù)250的一種類型,定義為在應(yīng)用程序117中使用的一個值,表示成除變量之外的自身或表達(dá)式的結(jié)果。例如,數(shù)字“25”,字符“a”,和字符串“hello”是字面值265的所有例子。
指令callvirt 210表示一個虛擬方法的呼叫。Callvirt 210采用一個方法260作為其操作數(shù)。Callvirt 210也需要一些與已經(jīng)存在與處理?xiàng)V械姆椒?60相關(guān)聯(lián)的自變量。處理?xiàng)T谥噶盍斜?55的處理該過程中被使用,隨著處理?xiàng)5囊?guī)模的增長和下降,指令列表155被處理。在一個典型實(shí)施例中,指令列表155中的一些指令放置元素在處理?xiàng)I?,一些去除處理?xiàng)V械脑?,以及一些指令不干涉處理?xiàng)?。Callvirt 210消除掉處理?xiàng)V械囊恍┳宰兞坎?zhí)行方法260。如果方法260返回了什么,callvirt 210施加返回的信息到處理?xiàng)!dloc 215表示加載一個本地變量的動作,其提取由Ldloc 215指令指定的變量255并施加變量255到處理?xiàng)I弦员阌蓜e的東西消耗,例如另一個存儲操作或呼叫。Stloc 220表示存儲一個本地變量的動作,其提起處理?xiàng)V械囊粋€值并把該值賦予一個變量255。
Ldc_i4 225表示加載一個四字節(jié)整數(shù)在處理?xiàng)I喜⑻崛∫粋€字面值265作為其相應(yīng)的操作數(shù)。例如,如果指令205 ldc_i4 225被使用,它可以采用包括4、8和12的數(shù)字。Ldc_r8 230表示加載一個八字節(jié)雙精度值到處理?xiàng)I?。象ldc_i4 225一樣,ldc_r8 230提取一個字面值265作為其相應(yīng)的操作數(shù)。Ldstr 235加載一個字符串在該棧上并提取一個字面值作為其相應(yīng)的操作數(shù)250。Pop 240不提取一個相應(yīng)的操作數(shù),而是,僅僅在給出pop指令240時刪除在處理?xiàng)m敳康娜魏尾僮鲾?shù)250。備注245提取一個字面值265并作為備注中的一個字符串提交它。處理器135可以調(diào)整該字符串使之成為對于這種語言合適的格式。
本領(lǐng)域技術(shù)人員應(yīng)理解,作為指令列表200一部分被示出的這些指令僅是指令可能集合的總數(shù)的一個小的子集,指令可能集合的總數(shù)包括能夠利用該語言獨(dú)立語法處理的運(yùn)算和邏輯指令。
圖3-5是舉例說明由一個用于以一種計(jì)算機(jī)語言獨(dú)立語法記錄宏的典型方法完成的由計(jì)算機(jī)執(zhí)行的過程的邏輯流程圖。圖3是舉例說明在圖1的典型的宏記錄系統(tǒng)100的操作環(huán)境內(nèi)一個以計(jì)算機(jī)語言獨(dú)立語法記錄宏的典型過程的基本步驟的邏輯流程圖300。
現(xiàn)在參考圖1B和3,典型的方法300在START步驟開始并前進(jìn)到步驟305,其中用戶從一個用戶接口105打開一個應(yīng)用程序117。用戶接口105通常表示客戶能夠從它通過服務(wù)器110和數(shù)據(jù)庫115訪問應(yīng)用程序117的點(diǎn)。在用戶接口105,用戶通常通過在監(jiān)視器上選擇一個與應(yīng)用程序117相對應(yīng)的圖標(biāo)打開應(yīng)用程序117。
在步驟310,用戶開始錄制一個宏。在一個典型實(shí)施例中,用戶通過從應(yīng)用程序117中的下拉框選擇“錄制宏”開始錄制一個宏。接著出現(xiàn)一個對話框,這樣用戶能夠給將要錄制的宏取個名字,選擇是否在數(shù)據(jù)庫115中存儲這個宏并提供紅的簡單介紹,例如建立這個宏的目的或宏的功能。一旦用戶完成宏的介紹,用戶能夠關(guān)閉該對話框,并且應(yīng)用程序117開始錄制這個宏。
在步驟315,用戶執(zhí)行一個可記錄的動作,在步驟320應(yīng)用程序117執(zhí)行一個可記錄的動作。一個可記錄的動作是指用戶在應(yīng)用程序117進(jìn)行的任何操作,包括鍵盤敲擊,從應(yīng)用程序117的一個特定區(qū)域的數(shù)據(jù)選擇,或數(shù)學(xué)確定。在步驟325,處理一個詢問以確定是否由用戶執(zhí)行的可記錄動作已經(jīng)被記錄。如果沒有,“否”分支前進(jìn)到步驟365,在那里處理另一個詢問以確定是否用戶執(zhí)行了另一個可記錄動作。如果這個動作被記錄,“是”分支前進(jìn)到步驟330。
在步驟330,應(yīng)用程序117在宏錄制引擎140中建立一個指令列表155。指令列表155通常包括以一種計(jì)算機(jī)語言獨(dú)立語法概括這個宏的操作的一系列指令。這些指令是以一種計(jì)算機(jī)語言獨(dú)立語法用戶記錄的動作的一種譯碼。在步驟335,應(yīng)用程序117發(fā)送指令列表155到宏錄制引擎140。在步驟345,宏錄制器引擎140發(fā)送指令列表155到一個或多個處理器135。發(fā)送指令列表155到一個或多個處理器135的時間的確定通常由應(yīng)用程序117確定。例如,一旦用戶完成一個產(chǎn)生相應(yīng)源編碼行的動作,應(yīng)用程序117通常將發(fā)送從用戶動作建立的指令列表155到處理器135。處理器135能夠存在于應(yīng)用程序內(nèi)或外,并能夠包括能夠以多種計(jì)算機(jī)語言產(chǎn)生編碼的處理器135,例如C++,C#,VBA,和VBA.Net。在步驟345,宏錄制器145能夠發(fā)送信號指令列表155到一個或多個處理器135以便根據(jù)這個宏的用戶想要的使用和用戶的語言偏好生成一種或多種類型的特定語言源編碼。
在步驟350,處理器135把指令列表155從計(jì)算機(jī)語言獨(dú)立語法轉(zhuǎn)換為一種特定語言源編碼,例如C++,C#,VBA,和VBA.Net。在步驟355,處理器135發(fā)送特定語言源編碼到宏錄制器引擎140。在步驟360,宏錄制器引擎140在一個適當(dāng)?shù)奈恢帽4嬖撎囟ㄕZ言源編碼。在一個典型實(shí)施例中,用于保存源編碼的適當(dāng)?shù)奈恢冒〝?shù)據(jù)庫115,VSA子系統(tǒng)125,VBA子系統(tǒng)130或應(yīng)用程序117。例如,錄制器145能夠發(fā)送指令列表155到一個VBA處理器135以處理該指令列表155為VBA編碼。一旦處理完成,該VBA編碼被發(fā)送到宏錄制器引擎140,其接著發(fā)送VBA編碼到VBA子系統(tǒng)130中的VBA錄制器170。在一個典型實(shí)施例中,應(yīng)用程序117確定該適當(dāng)?shù)奈恢貌⑼ㄟ^處理接口105給用戶選擇。接著用戶根據(jù)提供的選擇決定適當(dāng)?shù)奈恢?。在步驟361,編制器150刪除指令列表155。在步驟362,應(yīng)用程序117刪除編制器150。
在步驟365,進(jìn)行一個詢問以確定是否該用戶已經(jīng)用應(yīng)用程序117執(zhí)行了另一個可記錄動作。如果是這樣,“是”分支前進(jìn)到步驟325以確定是否該動作已經(jīng)被記錄。如果用戶沒有執(zhí)行另一個可記錄動作,“否”分支前進(jìn)到步驟370。在步驟370,用戶停止以應(yīng)用程序117錄制宏。用戶能夠通過從在用戶接口105的監(jiān)視器上出現(xiàn)的應(yīng)用程序117中的一個下拉框中選擇“停止錄制宏”來停止錄制宏。宏現(xiàn)在是一種特定語言源編碼并且能夠由用戶以應(yīng)用程序117進(jìn)行存取。方法300接著停止在END步驟。
圖4是舉例說明如圖3的步驟330完成的一樣以一種計(jì)算機(jī)語言獨(dú)立語法編制一個指令列表155的一種典型計(jì)算機(jī)執(zhí)行方法的邏輯流程圖?,F(xiàn)在參考圖1B、3和4,在步驟405,隨著用戶以應(yīng)用程序117執(zhí)行一個可記錄的動作,方法330被初始化。在步驟410,應(yīng)用程序117用宏錄制引擎140建立編制器150。在應(yīng)用程序117中編制器150通常為每個記錄的用戶動作建立。然而,在一個可替換的典型實(shí)施例中,在前一個指令列表155被處理器135處理之后,編制器150能夠隨著一個空的指令列表155被復(fù)位,由此不需要為每個記錄的用戶動作建立一個新的編制器150。
在步415,在宏錄制引擎140中編制器150建立一個空的指令列表155,變量映射表165,和校驗(yàn)器160。指令列表155,變量映射表165,和校驗(yàn)器160通常為應(yīng)用程序117中每個可記錄的用戶動作建立。然而,在一個可替換的典型實(shí)施例中,在前一個指令列表155被處理器135處理之后,指令列表155,變量映射表165,和校驗(yàn)器160能夠隨著一個空的指令列表155被復(fù)位,由此不需要為每個記錄的用戶動作建立一個新的指令列表155、變量映射表165和校驗(yàn)器160。
在步驟420,應(yīng)用程序117轉(zhuǎn)換一部分記錄的用戶動作為具有計(jì)算機(jī)語言獨(dú)立語法的指令。在步驟425,作為必須的,編制器150從該指令附加信息到變量映射表165。如果該指令包含一個在較早的指令中以前沒有被使用的變量,信息將被從編制器150添加到變量映射表165。在步驟445,編制器150發(fā)送該指令到校驗(yàn)器160。在步驟450,校驗(yàn)器160確定是否該指令被正確的被建立。為了確定是否該指令被正確的建立,校驗(yàn)器160檢驗(yàn)該指令的編碼以核對正確的編碼結(jié)構(gòu),包括該指令是否包括操作數(shù)正確的類型和數(shù)量或正確的信息類型的確定以便執(zhí)行一個呼叫。
在步驟455,進(jìn)行一個詢問以確定是否編制器150使用了校驗(yàn)器160去確定相對于指令列表155的當(dāng)前內(nèi)容當(dāng)前指令是否是被正確構(gòu)成的。如果是這樣,“是”分支前進(jìn)到步驟460,在那里編制器150使用校驗(yàn)器160以確定是否該指令構(gòu)成給出的指令列表155的當(dāng)前內(nèi)容的感覺。接著過程繼續(xù)到步驟470。如果編制器150不使用校驗(yàn)器160確定去確定相對于指令列表155的當(dāng)前內(nèi)容當(dāng)前指令是否是被正確的構(gòu)成的,“否”分支前進(jìn)到步驟470。在步驟470,編制器150添加該指令到指令列表155。
在步驟475,進(jìn)行一個詢問以確定指令列表155是否被完成。如果沒有,“否”分支前進(jìn)到步驟420,在那里應(yīng)用程序117轉(zhuǎn)換另一部分用戶動作為具有計(jì)算機(jī)語言獨(dú)立語法的指令。如果指令列表155被完成,“是”分支前進(jìn)到圖3的步驟335圖5是舉例說明如圖4的步驟450完成的那樣確定是否一個指令被正確建立的校驗(yàn)器160的一種典型的計(jì)算機(jī)執(zhí)行的方法的邏輯流程圖?,F(xiàn)在參考圖1B、4和5,在步驟510,隨著校驗(yàn)器160從編制器150接收一個指令方法450被初始化。在步驟515,進(jìn)行一個詢問以確定由校驗(yàn)器160接收的指令是否包括正確的數(shù)量和類型的操作數(shù)。如果沒有,“否”分支前進(jìn)到步驟520,在那里指令列表155建立失敗并且過程結(jié)束。如果該指令包含正確的數(shù)量和類型的操作數(shù),“是”分支前進(jìn)到圖4的步驟455。
總之,本發(fā)明使用戶和開發(fā)者能夠以多種不同編程語言建立和執(zhí)行宏。通過利用OIL的語言獨(dú)立語法,一個宏能夠以一種語言被建立并且不必要以其他語言各自建立。替換的,OIL語言轉(zhuǎn)換原始宏的指令為一組能夠轉(zhuǎn)換為各種不同語言的中立指令。
應(yīng)當(dāng)理解,本發(fā)明滿足這里描述的現(xiàn)有技術(shù)的需要,并達(dá)到上面作過說明的目的。雖然這里已經(jīng)示出并描述了本發(fā)明的幾個典型實(shí)施例,對于本領(lǐng)域技術(shù)人員來說可以進(jìn)行各種調(diào)整和變化,而不脫離由附加的權(quán)利要求及其等效物定義的精神和范圍。例如,本發(fā)明的方法能夠被應(yīng)用到除通常描述為宏的那些以外的計(jì)算機(jī)可讀取指令。
權(quán)利要求
1.一種計(jì)算機(jī)執(zhí)行的方法,用于以一種計(jì)算機(jī)語言獨(dú)立語法記錄指令,包括步驟接受一個在一個計(jì)算機(jī)系統(tǒng)中記錄至少一個動作的請求;初始化計(jì)算機(jī)系統(tǒng)中的一個記錄系統(tǒng)以記錄至少一個動作;接受一個在計(jì)算機(jī)系統(tǒng)上執(zhí)行的至少一個動作;用該記錄系統(tǒng)記錄在計(jì)算機(jī)系統(tǒng)上執(zhí)行的該至少一個動作;轉(zhuǎn)換用記錄系統(tǒng)記錄的該至少一個動作為一個具有計(jì)算機(jī)語言獨(dú)立語法的至少一個指令;轉(zhuǎn)換具有計(jì)算機(jī)語言獨(dú)立語法的該至少一個指令為一個具有計(jì)算機(jī)語言獨(dú)立語法的指令列表;和轉(zhuǎn)換該具有計(jì)算機(jī)語言獨(dú)立語法的指令列表為多個源編碼語言之一。
2.權(quán)利要求1的方法,還包括步驟確定包括至少一個指令的另一個動作是否被計(jì)算機(jī)系統(tǒng)接受;接受一個停止記錄的請求;和由記錄系統(tǒng)停止記錄。
3.權(quán)利要求1的方法,其中轉(zhuǎn)換該至少一個指令為一個具有計(jì)算機(jī)獨(dú)立語法的指令列表的步驟,包括步驟建立一個指令列表;轉(zhuǎn)換至少一個在計(jì)算機(jī)系統(tǒng)上執(zhí)行的動作為一個具有計(jì)算機(jī)語言獨(dú)立語法的指令;添加該具有計(jì)算機(jī)語言獨(dú)立語法的指令到一個包括至少一個具有計(jì)算機(jī)語言獨(dú)立語法的指令的指令列表;發(fā)送包括至少一個具有計(jì)算機(jī)語言獨(dú)立語法的指令的指令列表到多個處理器的至少之一;和在該多個處理器的至少之一中處理該包括至少一個具有計(jì)算機(jī)語言獨(dú)立語法的指令的指令列表為一種特定語言源編碼。
4.權(quán)利要求3的方法,還包括步驟接受具有計(jì)算機(jī)語言獨(dú)立語法的指令到一個校驗(yàn)器;使校驗(yàn)器確定具有計(jì)算機(jī)語言獨(dú)立語法的指令是否被正確的構(gòu)成;詢問是否校驗(yàn)器評估了具有計(jì)算機(jī)語言獨(dú)立語法的指令以確定是否基于指令列表的內(nèi)容了解指令的意義;和基于一個肯定的確定,允許校驗(yàn)器確定是否基于指令列表的內(nèi)容了解具有計(jì)算機(jī)語言獨(dú)立語法的指令的意義。
5.權(quán)利要求3的方法,其中通過一個駐留在一個軟件應(yīng)用程序中的編制器為每個錄制的宏建立指令列表。
6.權(quán)利要求5的方法,其中通過軟件應(yīng)用程序?yàn)槊總€錄制的宏建立編制器。
7.權(quán)利要求3的方法,其中編制器為每個以軟件應(yīng)用程序要錄制的宏建立校驗(yàn)器,變量映射表和指令列表。
8.權(quán)利要求1的方法,其中響應(yīng)于至少一個動作以多個源編碼語言發(fā)出源編碼包括一個宏。
9.權(quán)利要求1的方法,其中以多個處理器的至少一個建立多個源編碼語言之一。
10.權(quán)利要求9的方法,其中多個處理器的至少一個包括C處理器,C阡處理器,VBA處理器,和VB.Net處理器。
11.權(quán)利要求1的方法,其中指令列表包括至少一個能夠被處理器識別并能夠以計(jì)算機(jī)系統(tǒng)轉(zhuǎn)換為源編碼的指令;一個操作數(shù),依據(jù)計(jì)算機(jī)系統(tǒng)中指令運(yùn)算或鍵控規(guī)定信息。
12.一種計(jì)算機(jī)可讀取的媒體,具有用于執(zhí)行權(quán)利要求1中列舉的步驟的計(jì)算機(jī)可執(zhí)行的指令。
13.一種用于以計(jì)算機(jī)語言獨(dú)立語法記錄指令的系統(tǒng),包括用戶接口;耦合到用戶接口的服務(wù)器;一個耦合到數(shù)據(jù)庫的錄制器,提供一個裝置記錄在用戶接口啟動的動作;耦合到錄制器的編制器,可操作的用于從錄制器接收錄制的動作并基于錄制的動作生成至少一個指令;耦合到編制器的指令列表,可操作的用于從編制器接收生成的該至少一個指令;和耦合到編制器的多個處理器的至少一個,可操作的用于接收該指令列表并生成至少一種源編碼。
14.權(quán)利要求13的系統(tǒng),還包括耦合到數(shù)據(jù)庫和多個動態(tài)鏈接程序庫的軟件應(yīng)用程序;耦合到編制器和多個處理器的至少一個的校驗(yàn)器,可操作的用于確定指令列表是否被正確的構(gòu)成;耦合到編制器和多個處理器的至少一個的變量映射表,可操作的用于為包含在指令中的變量評估指令列表。
15.權(quán)利要求14的系統(tǒng),還包括一個用于接收生成的源編碼并存儲生成的源編碼直到需要的子系統(tǒng)。
16.權(quán)利要求13的系統(tǒng),其中多個處理器之一包括Visual Basic forApplications處理器。
17.權(quán)利要求13的系統(tǒng),其中多個處理器之一包括C++處理器。
18.權(quán)利要求13的系統(tǒng),其中多個處理器之一包括C處理器。
19.權(quán)利要求13的系統(tǒng),其中多個處理器之一包括Visual Basic.Net處理器。
20.權(quán)利要求13的系統(tǒng),其中編制器位于軟件應(yīng)用程序中。
21.權(quán)利要求13的系統(tǒng),其中編制器被耦合到多個軟件應(yīng)用程序,能夠以計(jì)算機(jī)語言獨(dú)立語法為多個軟件應(yīng)用程序編制指令。
22.一個指令列表,包括以計(jì)算機(jī)語言獨(dú)立語法形式構(gòu)成的指令,指令列表包括至少一個計(jì)算機(jī)系統(tǒng)或軟件應(yīng)用能夠識別和執(zhí)行的指令。
23.權(quán)利要求22的指令列表,還包括操作數(shù),依據(jù)指令運(yùn)算或鍵控規(guī)定信息。
24.權(quán)利要求22的指令列表,其中從包括變量,方法和字面值的組中選擇操作數(shù)。
25.權(quán)利要求22的指令列表,其中至少一個指令的每一個具有與其相關(guān)聯(lián)的操作數(shù)。
26.一種計(jì)算機(jī)可讀取的媒體,用于以計(jì)算機(jī)語言獨(dú)立語法的方式記錄指令,包括步驟接受一個在一個計(jì)算機(jī)系統(tǒng)中記錄至少一個動作的請求;初始化計(jì)算機(jī)系統(tǒng)中的一個記錄系統(tǒng)以記錄至少一個動作;接受在計(jì)算機(jī)系統(tǒng)上執(zhí)行的至少一個動作;轉(zhuǎn)換在計(jì)算機(jī)系統(tǒng)上執(zhí)行的該至少一個動作為一個具有計(jì)算機(jī)語言獨(dú)立語法的至少一個指令;轉(zhuǎn)換該至少一個指令為一個具有計(jì)算機(jī)語言獨(dú)立語法的指令列表;和轉(zhuǎn)換該具有計(jì)算機(jī)語言獨(dú)立語法的指令列表為多個源編碼語言之一。
全文摘要
一種目標(biāo)指令語言(OIL)提供一種用于以計(jì)算機(jī)語言獨(dú)立語法錄制宏的方法,這樣宏能被轉(zhuǎn)換為多種計(jì)算機(jī)語言的源編碼而不需要重新錄制宏或從錄制的語言翻譯宏為一種可替換的語言,由此減少為多種計(jì)算機(jī)語言建立宏所需要的時間,降低在多次重復(fù)一個簡單任務(wù)中固有的誤差的似然性,提供給軟件用戶一個使用用戶偏愛的語言錄制宏的可能。
文檔編號G06F9/44GK1519710SQ200410005278
公開日2004年8月11日 申請日期2004年1月8日 優(yōu)先權(quán)日2003年1月8日
發(fā)明者D·P·科爾, A·馬休, D P 科爾 申請人:微軟公司