欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于以一種語(yǔ)言獨(dú)立語(yǔ)法記錄宏的方法和系統(tǒng)的制作方法

文檔序號(hào):6382791閱讀:187來(lái)源:國(guó)知局
專利名稱:用于以一種語(yǔ)言獨(dú)立語(yǔ)法記錄宏的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及一種計(jì)算環(huán)境內(nèi)的宏記錄系統(tǒng)。更特別地,本發(fā)明涉及一種用于以計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法建立宏指令的方法和系統(tǒng),其中宏最后將被記錄,這樣宏能夠被處理為多種源編碼語(yǔ)言而不用重新建立宏。
背景技術(shù)
計(jì)算設(shè)備在本領(lǐng)域是眾所周知并被廣泛應(yīng)用的。例如,計(jì)算設(shè)備可以采用個(gè)人計(jì)算機(jī),具有計(jì)算機(jī)終端接入的中央計(jì)算機(jī)終端,或者一個(gè)具有連接到一個(gè)諸如因特網(wǎng)的的網(wǎng)絡(luò)的計(jì)算設(shè)備的廣泛分布的系統(tǒng)的形式。雖然一些計(jì)算設(shè)備可以由幾個(gè)人或沒(méi)有人介入操作,許多計(jì)算設(shè)備需要人們輸入進(jìn)行操作。計(jì)算設(shè)備,例如個(gè)人計(jì)算機(jī),通常具有一個(gè)用于輸入數(shù)字和文本信息的鍵盤。
依靠由計(jì)算設(shè)備執(zhí)行的工作的類型,計(jì)算設(shè)備也可以具有其他類型的輸入。例如,隨著圖形用戶接口的普及,圖形輸入設(shè)備的使用顯著地增加。圖形輸入設(shè)備包括諸如計(jì)算機(jī)鼠標(biāo)、圖形輸入板、數(shù)字化儀和光筆的設(shè)備。這些設(shè)備使一個(gè)諸如光標(biāo)的圖象元素能在一個(gè)計(jì)算機(jī)屏幕上移動(dòng)和定位。這個(gè)圖像元素可以被使用以便選擇操作指令操作計(jì)算機(jī)或可以參與信息的輸入。
上述的計(jì)算機(jī)鼠標(biāo)是最常用的圖形輸入設(shè)備的一種。鼠標(biāo)被連接到計(jì)算設(shè)備并被使用以便選擇命令和輸入圖形信息。通過(guò)穿過(guò)一個(gè)表面的移動(dòng)鼠標(biāo),該鼠標(biāo)的相對(duì)運(yùn)動(dòng)被通知到計(jì)算設(shè)備,由此移動(dòng)圖形光標(biāo)。鼠標(biāo)上的按鍵訪問(wèn)并激活指令并通過(guò)定位光標(biāo)輸入圖形信息。
計(jì)算設(shè)備也能夠基于基于操作計(jì)算設(shè)備的應(yīng)用從一個(gè)用戶接受其他形式的輸入,包括語(yǔ)音輸入,從數(shù)碼相機(jī)的輸入,從數(shù)碼攝像機(jī)的輸入,以及從其它連接到該計(jì)算設(shè)備并通過(guò)一個(gè)局域或廣域網(wǎng)耦合的計(jì)算資源的輸入。
當(dāng)操作一個(gè)計(jì)算設(shè)備時(shí),一個(gè)用戶能夠與輸入設(shè)備交互作用以便指導(dǎo)計(jì)算設(shè)備的操作。常常計(jì)算設(shè)備需要相同的一系列輸入以執(zhí)行特定的運(yùn)算。執(zhí)行這套重復(fù)的操作可以包括從一個(gè)或多個(gè)輸入設(shè)備的幾個(gè)輸入。例如,一個(gè)特定的運(yùn)算可能需要鼠標(biāo)動(dòng)作以啟動(dòng)一個(gè)程序,接著用鍵盤按照原文輸入一個(gè)訪問(wèn)密碼。鍵盤、鼠標(biāo)和其它輸入是經(jīng)常需要的以便達(dá)到重復(fù)的運(yùn)算。每次用戶想要執(zhí)行這個(gè)重復(fù)的運(yùn)算時(shí),用戶都必須通過(guò)相同的順序利用相同的輸入設(shè)備進(jìn)行。這不僅是浪費(fèi)時(shí)間,而且這個(gè)順序很容易弄錯(cuò)。在一些情況下,重復(fù)的操作可以用一個(gè)宏來(lái)簡(jiǎn)化。
宏被使用以便自動(dòng)地重復(fù)鍵盤、鼠標(biāo)和在一個(gè)特定的應(yīng)用中的其它輸入?;旧?,宏通常是包括重復(fù)指令的文件。宏一旦建立,就可以由計(jì)算設(shè)備重放。例如,許多軟件應(yīng)用程序具有宏記錄和回放能力。在這些軟件應(yīng)用程序中,用戶可以記錄一個(gè)宏以便執(zhí)行一個(gè)特定的運(yùn)算或一系列操作并給這個(gè)宏一個(gè)名字。因此,那個(gè)運(yùn)算或者系列操作可以通過(guò)執(zhí)行那個(gè)命名的宏來(lái)執(zhí)行,由此節(jié)省用戶的時(shí)間并有效地重復(fù)宏的所有步驟。為了運(yùn)行這個(gè)宏,該軟件應(yīng)用程序通常具有一個(gè)宏回放功能,其能夠由命令或通過(guò)使用快捷鍵命令啟動(dòng)。
隨著當(dāng)前宏錄制器技術(shù)發(fā)展,只用一種語(yǔ)言,Visual Basic應(yīng)用程序(VBA)記錄用基本上是可能的。然而,還存在許多其它能夠被用于記錄和運(yùn)行宏的編程語(yǔ)言。此外,用戶更喜歡根據(jù)用戶的個(gè)人偏愛(ài)、技術(shù)和熟練程度使用他們選擇的語(yǔ)言來(lái)記錄宏。為了使用除VBA之外的一種語(yǔ)言記錄宏,應(yīng)用程序開發(fā)者不得不為每種用戶想要用其記錄宏的語(yǔ)言重新編寫的宏錄制器。這樣的方法不僅昂貴和浪費(fèi)時(shí)間,而且也容易出現(xiàn)錯(cuò)誤并導(dǎo)致以不同語(yǔ)言記錄的宏之間狀態(tài)不一致。提供一種用于由軟件應(yīng)用程序作很少工作就能以多種語(yǔ)言記錄一個(gè)宏的方法和系統(tǒng),節(jié)省用戶和應(yīng)用程序開發(fā)者的時(shí)間和金錢。
發(fā)明概述在這里公開的本發(fā)明的方法和系統(tǒng)提供了一種用于以計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法記錄計(jì)算機(jī)宏的裝置,由此使一個(gè)軟件應(yīng)用程序能夠只記錄一次這些指令,接著轉(zhuǎn)換這些指令為許多種計(jì)算機(jī)語(yǔ)言的任意的源編碼。因此,本發(fā)明的一方面是允許一個(gè)想要以一種或多種計(jì)算機(jī)語(yǔ)言記錄一個(gè)宏的用戶通過(guò)打開計(jì)算機(jī)系統(tǒng)中的一個(gè)記錄系統(tǒng)開始這個(gè)宏的記錄。該記錄系統(tǒng)通常包括一個(gè)位于宏記錄引擎內(nèi)的宏錄制器。宏錄制器和宏記錄引擎都能位于計(jì)算機(jī)系統(tǒng)上的軟件應(yīng)用程序。
用戶能夠通進(jìn)一步執(zhí)行一個(gè)或多個(gè)用戶想要記錄在計(jì)算機(jī)系統(tǒng)上的動(dòng)作。這些動(dòng)作通常在一個(gè)駐留在計(jì)算機(jī)系統(tǒng)中的軟件應(yīng)用程序上被執(zhí)行。這些動(dòng)作能夠包括在用戶與軟件應(yīng)用程序交互作用的時(shí)候發(fā)生的一連串命令或鍵盤敲擊。這些動(dòng)作通常由軟件應(yīng)用程序轉(zhuǎn)換為一系列指令,稱之為具有一種計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法的指令列表。這個(gè)指令列表通常表示一種由用戶完成的并由記錄系統(tǒng)記錄的這些動(dòng)作的計(jì)算機(jī)可讀取的譯碼。這些指令的計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法能夠允許這些指令一旦被建立,能被轉(zhuǎn)換為一種或多種不同的計(jì)算機(jī)語(yǔ)言。這種計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法通常不是與軟件應(yīng)用程序使用的計(jì)算機(jī)語(yǔ)言對(duì)稱的。
指令列表通常包括指令和操作對(duì)象二者,他們之間是一對(duì)一或一對(duì)零的關(guān)系。操作對(duì)象通常指被產(chǎn)生影響或被操作的信息。用戶動(dòng)作在一個(gè)編碼程序的的幫助下通過(guò)軟件應(yīng)用程序被轉(zhuǎn)換為指令列表,編碼程序能夠位于軟件應(yīng)用程序中。這些指令由一種計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法構(gòu)成。一旦完成,指令列表就能夠被發(fā)送到一個(gè)或多個(gè)處理器以便轉(zhuǎn)換為特定計(jì)算機(jī)語(yǔ)言的源編碼。由于該指令列表是由一種計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法編寫的,該指令列表能夠依據(jù)開發(fā)者和用戶偏好由不同的軟件應(yīng)用程序被轉(zhuǎn)換為不同的計(jì)算機(jī)語(yǔ)言。例如,在用戶B可以選擇以語(yǔ)言B記錄宏的時(shí)候,用戶A可以選擇以語(yǔ)言A記錄宏。如果兩個(gè)用戶記錄同樣的宏,接著利用計(jì)算機(jī)語(yǔ)言獨(dú)立語(yǔ)法生成指令列表,但是該指令列表由不同的處理器處理為語(yǔ)言A和語(yǔ)言B。在另一個(gè)典型的實(shí)施例中,利用語(yǔ)言獨(dú)立語(yǔ)法建立的該指令列表在一個(gè)時(shí)間轉(zhuǎn)換為多種計(jì)算機(jī)語(yǔ)言是可能的,而不用在其被發(fā)送到每個(gè)不同的處理器之前重新建立這些指令和指令列表。
附圖簡(jiǎn)要說(shuō)明為了更完整的理解本發(fā)明和其優(yōu)點(diǎn),現(xiàn)在結(jié)合附圖進(jìn)行下面的說(shuō)明,其中

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