專利名稱:表格格式編程的制作方法
本申請是1995年10月2日提交的申請?zhí)枮?8/538,426且專利號為US 5,867,818的美國專利的部分繼續(xù)申請。在此引用此申請作為參考。
本發(fā)明涉及一種通過填寫不同種類的表格來實現(xiàn)編程功能和便于控制程序流的對計算設(shè)備進行編程的方法。
本發(fā)明通常涉及一種編程工具,該編程工具被設(shè)計成程序員與計算機之間的接口。這種編程方法工具廣泛使用表格來表達程序員的邏輯思維過程并使編程過程更易于為他人所理解。因此,這些改進提高了編程效率,減少了出現(xiàn)程序故障和結(jié)構(gòu)錯誤的機會。另外,一個程序員學(xué)習這種編程方法所需的培訓(xùn)成本是最低的。將來任何程序員都能夠很容易地讀懂和維護依據(jù)本發(fā)明而編寫的程序。
傳統(tǒng)的編程語言定義一組編程指令和編程規(guī)則。諸如BASIC、C和JAVA之類的通用編程語言是按照從上到下逐行順序列表的形式編寫程序。在很多應(yīng)用程序中,需要編寫幾百頁代碼來描述要求的作業(yè)功能。要求一個程序員從很長的程序列表中指出一個程序的邏輯流程是非常困難的。因此,程序的長短為將來的維護工作帶來了困難。除此以外,多頁充滿了代碼行序列的程序很難被以前沒有涉及此作業(yè)的其他程序員所理解。雖然已經(jīng)利用了大量的壓縮指令或編程符號,但以不同編程語言編寫而成的程序的長短仍超出了一個專業(yè)程序員能夠容易理解的范圍。在很多情況下,一個程序的原作者會發(fā)現(xiàn)經(jīng)過了一個較長的時期之后,他也很難理解他或她本人所編寫的程序。壓縮指令集的要求與可讀性是彼此矛盾的。因此非常需要一種編程方法,該方法能夠提供壓縮的程序長度并易于被其他程序員及非專業(yè)人員所理解。
每次發(fā)明一種新的編程語言時,都定義編碼符號和指令集來描述一個程序功能。還定義規(guī)則來限制如何使用編程指令以便計算設(shè)備能夠翻譯和執(zhí)行利用該方法編寫而成的程序。在很多情況下,為了確證所有這些指令集并向程序員講述編程規(guī)則,用以描述一種編程語言的指令手冊超過了兩英寸厚。利用幾個月來培訓(xùn)一個程序員學(xué)會所有的指令集并理解一種新編程語言的所有編程規(guī)則是非同一般的。通常是通過數(shù)年的編程經(jīng)驗而學(xué)到更多的編程技巧。
雖然很多編程語言允許一個程序按照該作業(yè)的結(jié)構(gòu)要求來提供條件跳轉(zhuǎn)、調(diào)用功能或分支到程序的其它分段,但是一個專業(yè)的程序員在花費了大量時間閱讀該程序之后仍很難解釋這些交互式分支操作在程序結(jié)構(gòu)中的邏輯流程。
市場上提供了各種可用的編程語言,每種專用于一種特定應(yīng)用或按照特殊的編程環(huán)境而設(shè)計。許多其他的編程語言被設(shè)計成程序指定硬件配置或系統(tǒng)。在很多情況下,不同的編程語言使用不同的符號或表達式來表示一個描述相似功能的指令。一個程序員在學(xué)習了多種分別具有不同格式和指令表達式的編程語言之后,對于應(yīng)當使用什么符號或表達式經(jīng)常會感到混淆不清。因此非常需要一種能夠使程序員克服這些困難的新的編程方法。
由于大多數(shù)編程語言被設(shè)計成在其指定的應(yīng)用環(huán)境中能夠最佳地解釋編程功能,所以很多涉及多種功能狀態(tài)的編程作業(yè)最好被分解成多個模塊,每個模塊是按照其指定的環(huán)境以不同語言編寫而成的。因此,非常需要一種適用于管理以不同語言編寫的程序段的集成的專用編程方法。隨著因特網(wǎng)的普及,非常需要一種通用的編程方法,該方法適用于協(xié)調(diào)不同格式的編程模塊以形成一個組合程序,并適用于將程序下載到與主計算機距離遙遠的單個本地計算機上。對于這種類型的應(yīng)用,程序必須是壓縮的并且能夠根據(jù)不同本地計算機的種類進行自重構(gòu)。
專利號為US 5,867,818的美國專利最先引入了一種用以對一個具有多個輸入和輸出端子的硬件控制器芯片進行編程的原始表格格式方法。本申請指向在發(fā)明這種原始結(jié)構(gòu)之后進行的進一步研究中所實現(xiàn)的各種改進。
本發(fā)明面向?qū)W習一個通用模塊結(jié)構(gòu)的方法以便利用表格格式編程的概念來對一個計算設(shè)備進行編程。本發(fā)明的一個目的是創(chuàng)建用以指導(dǎo)計算設(shè)備操作的編程方法的一個通用模塊并組建該模塊以使普通人員無須接受專業(yè)培訓(xùn)即可使用該模塊。本發(fā)明的另一個目的是創(chuàng)建一個編程模塊使得以這種格式編寫的任何程序易于被不具有編程語言方面的經(jīng)驗的其他人員所理解或者可包含在已被編寫的程序中。本發(fā)明的另一個目的是創(chuàng)建一個功能通過編碼過程而清楚地標識編程作業(yè)的結(jié)構(gòu)的編程模塊,從而能夠花費最少的力量來維護該程序。其結(jié)果是,能夠相當多地減少學(xué)習一種編程語言的培訓(xùn)成本、編寫程序的時間成本、調(diào)試程序的時間成本以及修改程序的維護成本。通過一種用戶友好的編程結(jié)構(gòu),希望在編程過程中出現(xiàn)較少的編程錯誤,從而減少調(diào)試所需的時間成本。
本發(fā)明的另一個目的是創(chuàng)建一種結(jié)構(gòu)編程格式,該格式能夠清楚地表達該作業(yè)的骨架結(jié)構(gòu)并使該單個具有特定功能的程序模塊以選定的最適于該功能的任何語言編寫。這種方法進一步提高了編程效率并減少了將來維護工作的工作量。
本發(fā)明的編程方法包括以程序數(shù)據(jù)填寫兩個以上表格的步驟。各種類型的表格被設(shè)計成用以執(zhí)行不同的支持功能。一個表格被定義為一個數(shù)據(jù)矩陣。一個表格可以是一維或多維的。通常用m行和n列表示一個表格矩陣,其中m和n是大于等于1的整數(shù)??捎靡粋€標簽、一個表達式或一組表達式來表示表格的每個元素。
在本發(fā)明的第一實施例中,編程方法引入了任務(wù)表的概念,任務(wù)表包括一個用于控制多個任務(wù)的操作的數(shù)據(jù)表格。一個程序中可能存在一個以上的任務(wù)表并且每個表格由一種或多種任務(wù)狀態(tài)構(gòu)成。在編程過程中無論何時指定一種任務(wù)狀態(tài),都可以定義所指定的任務(wù)的狀況和/或操作。而且任務(wù)優(yōu)先權(quán)信息可包括在操作任務(wù)表或由該計算設(shè)備的另一個單獨表格以便在以計算設(shè)備的共享資源運行多個任務(wù)的同時分配處理優(yōu)先權(quán)。
在本發(fā)明的基本方面,形成一個表格來定義包括輸入和/或輸出信息在內(nèi)的一種或多種配置狀態(tài)。當滿足了一種配置狀態(tài)的輸入限定條件時,將以另一個被稱為事件表或路徑表的表格中所表示的一系列特定操作作為響應(yīng)。將至少一種配置狀態(tài)指定為有效狀態(tài)。用于微控制器的表格格式編程方法的最早版本在美國專利US 5,867,818中有所描述。本申請是面向多年的研究對基本概念的各種改進以擴大該技術(shù)的服務(wù)范圍。
在本發(fā)明的另一個實施例中,形成另一個表格來定義觸發(fā)一種限定符配置狀態(tài)所需的限定條件。在本發(fā)明中,首次引入了虛擬限定符的概念。一個虛擬限定符被定義為表示來自一個物理硬件終端的任何限定條件。在考慮到由一個軟件指令所造成的結(jié)果或由整個軟件程序造成的結(jié)果時,虛擬限定符是非常重要的。虛擬限定符還涉及計算設(shè)備內(nèi)部的硬件,如內(nèi)部寄存器的溢出。其可通過一個內(nèi)部軟件或硬件中斷的結(jié)果,一個標記的產(chǎn)生、極性信號、表示存在來自另一個系統(tǒng)的數(shù)據(jù)或存在一個標記的信號而被觸發(fā)。虛擬限定符的另一個通用例子是一個鼠標驅(qū)動程序的輸出,它可以指示一個指針隨鼠標的移動而移動的方向。
在本發(fā)明的另一個實施例中,形成一個表格來定義一個輸出狀態(tài)的輸出配置。該輸出狀態(tài)可以是一個將通過一個物理硬件終端而被發(fā)送的信號或一種虛擬計算輸出狀態(tài)的配置。虛擬計算輸出狀態(tài)被定義成任何一種不描述硬件終端的操作的輸出狀態(tài)。虛擬計算輸出狀態(tài)的一個例子是觸發(fā)一個軟件程序開始運行,或設(shè)置用于控制一個軟件的特殊條件參數(shù),或觸發(fā)軟件以操作某些特定功能。
當獲得合格的觸發(fā)時,執(zhí)行一個相應(yīng)的操作。路徑表或事件表是用于將一個或多個相應(yīng)操作進行分組的表格。一個路徑可表示在接收到合格條件時所要執(zhí)行的一個操作或一系列操作。一個路徑可被另一個路徑初始化。這個相應(yīng)的操作或操作序列被稱為一個路徑方程(pathequation)。狀態(tài)表與路徑表的交互式組合與狀態(tài)圖所示的事件結(jié)構(gòu)相似。除此以外,表格格式編程還提供了一種能夠更好地反映出人類思維的程序表示方式,從而使其對用戶更為友好。為了更好地表達程序流的描述內(nèi)容,可根據(jù)程序員的意愿為路徑表中的每個路徑分配一個有意義的標號。一個有意義的命名標號可被分配給一個配置狀態(tài)或一個路徑。所有這些標號將幫助程序員或其他人員理解所編寫的程序的操作和邏輯流程。這是本發(fā)明的一個重要貢獻,有助于解釋編譯程序和減少將來的維護成本。
所發(fā)明的編程方法中所包含的另一個表格將一個輸出狀態(tài)下的輸出條件指向于一個特定的操作序列。可用另一個表格來表示這個序列以便簡化編程過程。
本發(fā)明中所引入的另一種類型的表格使程序員能夠?qū)⒈砀窀袷骄幊陶Z言的表達式和/或語法變成所需的其它形式的表達式或符號。所包括的其它表格定義了一組或多組程序庫或外部程序以支持編程工作。
在表格格式編程方法的支持之下,傳統(tǒng)的編程過程被大大改變。當開始結(jié)構(gòu)編程作業(yè)時,程序員用狀態(tài)和路徑表對程序流的骨架結(jié)構(gòu)進行交互式的描述。程序員可自由地分配有意義的標號或名稱以便表示每種配置狀態(tài)和路徑。對每種狀態(tài)配置和路徑方程的有意義命名將有助于描述程序的流程。當包括在一個路徑中的一個操作難以用可得到的指令集表達或最好用另一種語言的程序模塊來描述該操作時,程序員自由地分配一個有意義的標號來表達這個所需的操作。在編程過程的結(jié)尾,程序員應(yīng)當為所分配的每個未定義標號提供可執(zhí)行的程序模塊。以這種方式,通過交互式地組織多組表格而形成了程序模塊。一個具有至少一個狀態(tài)表和一個路徑表的程序模塊被稱為一個程序組。可向每個程序組分配另一個有意義的標號以便描述程序模塊的功能。然后在需要跳轉(zhuǎn)或功能調(diào)用時,這個標號可用于另一個程序模塊或程序組以指向此程序組。為方便起見,將在程序開始時所執(zhí)行的缺省的第一個程序組稱為“main”程序組。在每個程序組中,應(yīng)當具有一個“start”路徑,用作在初始化程序或缺省啟動程序時的啟動路徑。為了改善編程效率,可用不同于主程序組中所用的表格格式編程方法的語言來構(gòu)成支持程序模塊。在同一程序中可使用多種不同的語言。這就非常希望按在表格格式編程方法中具有能夠在不同語言的程序模塊之間傳遞參數(shù)和變量為特征設(shè)計。在一個最佳實施例中,一個表格格式程序被設(shè)計成與不同編程語言的接口并被用作在以不同語言編寫的程序模塊之間進行通信的橋梁。可以說表格格式編程語言大大改變了編寫程序的概念和習慣。在一種富有邏輯和較好結(jié)構(gòu)的方式下編寫一個程序。通過自由地分配有意義的標號,程序流程被盡量平滑地組合而成以便描述該編程作業(yè)。然后每個標號與一個用任何語言編寫的外部程序模塊相鏈接。有時,可排列成多級程序組或模塊。由于每個表格格式程序組的程序長度通常非常短且該程序具有合理的結(jié)構(gòu),從而能夠容易地實現(xiàn)表格格式編程的上述優(yōu)越性。
對于表格格式編程來說,自由分配或使標號與指令關(guān)鍵字等效對于支持多語言編程平臺是非常重要的。這是由于多種語言可對同一類型的應(yīng)用程序使用不同的語法。標號的自由分配和等效特征使用戶能夠根據(jù)他/她的意愿而統(tǒng)一標號和語法。
表格格式編程的特性使其成為一種用以增強另一種語言的編程結(jié)構(gòu)的極佳支持工具。例如,一種高級語言的編譯程序可被修改成包括僅足以提供以該語言編寫而成的一個程序的骨架結(jié)構(gòu)的表格格式編程函數(shù)。
由于表格格式編程方法是唯一和獨立于其協(xié)同的第三種語言程序的,所以通過只提供一個主要用于處理所有表格格式編程任務(wù)的簡單表格格式協(xié)處理器就能夠簡化程序管理作業(yè)。這種多處理器結(jié)構(gòu)將減輕主處理器的工作量并使其集中處理常規(guī)作業(yè)和提高尤其在多任務(wù)運行環(huán)境中的整體系統(tǒng)性能。表格格式協(xié)處理器可以是一個位于主處理器外部或與主處理器共存于同一集成電路芯片上的處理器。當表格格式編程應(yīng)用于微處理器或微控制器時,經(jīng)過編譯或編碼的表格格式程序變成了存儲在諸如ROM、EPROM或閃速存儲器之類的存儲器中的用于微處理器或微控制器運行的數(shù)字數(shù)據(jù)。然后一個由處理器和存儲表格格式程序的編譯形式的存儲器構(gòu)成的印制電路部件被用于制造可出售的商業(yè)成品。
根據(jù)表格格式編程的結(jié)構(gòu)組織,它特別適用于事件驅(qū)動的應(yīng)用程序,例如在windows環(huán)境下的編程,網(wǎng)站,交互式游戲或控制編程。用于事件驅(qū)動編程中的表格格式的一個重要特征是用高度壓縮的格式來表示一個程序。大多數(shù)用于小作業(yè)的表格格式程序的長度都少于一頁。證明了表格格式編程中的一頁可表示八頁匯編語言程序的實驗性結(jié)論是根據(jù)可用指令集的復(fù)雜性而作出的。與很多高級語言相比,還可在相當大的程度上節(jié)省代碼的長度。這種特性使其在用作通過一個有限帶寬的通信信道進行通信的媒體時是相當經(jīng)濟的;在例如與網(wǎng)絡(luò)或因特網(wǎng)應(yīng)用中的多個本地計算機進行通信的主系統(tǒng)之間。應(yīng)當注意一個網(wǎng)絡(luò),通信連接或通信信道是指將兩個計算設(shè)備連接在一起的任何裝置,包括串行端口、并行端口、USB端口、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、LAN和任何使兩個計算設(shè)備接口的通信裝置。兩端的設(shè)備可通過有線、無線或混合連接模式進行連接。在因特網(wǎng)編程中,在本地計算機執(zhí)行一個下載程序之前,還需要一個估計用戶計算機的系統(tǒng)配置,然后調(diào)整程序設(shè)置的步驟。計算機中很多與人接口的設(shè)備配置,例如監(jiān)視器、圖形卡、聲音發(fā)生設(shè)備、指針控制、游戲控制器控制等都屬于將被定義的配置設(shè)置。由于因特網(wǎng)通信線通常是一個系統(tǒng)的瓶頸,所以建議在本地計算機上執(zhí)行表格格式編程的編譯作業(yè),以便利用表格格式編程的壓縮代碼的優(yōu)點。
圖11是示出了一個本地計算機801如何與一個遠程計算機803相連接的方框圖。在很多應(yīng)用中,一個表格格式程序被存儲在本地計算機中。根據(jù)請求,通過一個通信連接802將該程序下載到遠程計算機中。該表格格式程序可存儲在遠程計算機的存儲裝置804中或立刻由遠程計算機進行編譯。編譯文件是一個用以執(zhí)行遠程計算機的某些預(yù)定工作的可執(zhí)行文件。這個可執(zhí)行文件也可存儲在遠程計算機的存儲裝置804中。
當一個編譯器被設(shè)計成用于處理表格格式編程時,著重建議使用關(guān)鍵字來識別每個表格以及相應(yīng)程序組的狀態(tài)和位置。以任務(wù),程序組,限定符,狀態(tài),路徑和程序庫為示例關(guān)鍵字用于識別所示實施例中的功能表格。應(yīng)當注意表格格式編程方法的編譯,翻譯,解釋或轉(zhuǎn)換包括將表格格式程序變換成其它程序格式,例如機器語言或任一種更高級語言的進程。該變換進程可由用另一種編程語言編寫或被一個可執(zhí)行表格格式程序支持的編譯程序執(zhí)行。
任務(wù)表的概念有效地提高了在多任務(wù)運行環(huán)境下進行表格格式編程的便利性。本發(fā)明的特征如后面的權(quán)利要求所述。對計算設(shè)備的限制是指具有計算能力的任何設(shè)備,包括計算機、微控制器、微處理器、由微控制器或微處理器構(gòu)成的印制電路部件。除計算機以外,用以支持本發(fā)明技術(shù)的其它支持硬件包括調(diào)試硬件、諸如電纜、通信口、網(wǎng)絡(luò)集線器之類的通信連接以及特定的網(wǎng)絡(luò)。表格格式程序可被顯示在顯示終端和印刷品上,并可被編碼為數(shù)字數(shù)據(jù)。表示該表格格式程序的編碼數(shù)字數(shù)據(jù)被存儲在諸如RAM、ROM、磁盤驅(qū)動器和CD ROM之類的任何存儲設(shè)備中。實施例中所用的技術(shù)術(shù)語、關(guān)鍵字和標號只是作為例子,它可具有各種變形和修改,并且能夠容易地預(yù)見到表格格式的重新排列可達到相同的效果,所有這些特征都包含在后述的權(quán)利要求范圍內(nèi)。結(jié)合附圖的詳細說明更有利于本發(fā)明的理解。
為了充分利用本發(fā)明技術(shù)的有益之處,用戶需要為計算機預(yù)處理操作進行精心的準備。典型的計算機預(yù)處理操作包括分析程序作業(yè)說明,將方案簡化為表格格式的相關(guān)狀態(tài)圖。在提高程序結(jié)構(gòu)清晰度的同時引入表格格式程序組需要用戶在開始應(yīng)用編程技術(shù)之前清楚地識別和定義方案的具體功能模塊。由于表格格式編程方法的優(yōu)點,另一個接口說明過程需要確證表格格式程序組或模塊的接口關(guān)系以便為一組程序員分配編程作業(yè)。在網(wǎng)絡(luò)通信或下載應(yīng)用中,計算機預(yù)處理操作涉及通過一種通信連接或網(wǎng)絡(luò)向一個遠程計算機發(fā)送表格格式程序。
通過表格格式編譯器執(zhí)行處理中的計算機操作,該編譯器將表格格式程序翻譯成本地計算機、目標微控制器或遠程計算機可執(zhí)行的代碼。后一計算機操作通常是目標計算機或微控制器可執(zhí)行的代碼。這個可執(zhí)行代碼還可被計算機或微控制器運行以便根據(jù)原始的編程說明來執(zhí)行功能。編譯后的可執(zhí)行代碼通常存儲在諸如RAM、ROM、任何可編程非易失性存儲器之類的存儲裝置或任何其它商業(yè)可用的存儲設(shè)備中。在微控制器作為消費品的情況下,用于存儲編譯后的可執(zhí)行文件的存儲裝置通常位于出售品中而不是位于編譯計算機中。在這種情況下,編譯計算機只是作為一個開發(fā)系統(tǒng)或遠程計算設(shè)備的程序供應(yīng)方。
圖1示出了表格格式程序的一個實施例的結(jié)構(gòu)。
圖2A是用于定義等效于用戶定義表達式的表格格式表達式的表格。
圖2B示出了如何將一個名稱分配給圖2A所示的表格。
圖3是用于定義將被識別的字的不同打印格式的表格。
圖4是示出了一個任務(wù)表的不同任務(wù)狀態(tài)的實施例。
圖5A是示出了一個程序中的多個任務(wù)表的實施例。
圖5B是圖5A的數(shù)字化表示。
圖6A是示出了一個表格格式組的一個實施例的程序。
圖6B是圖6A的實施例的另一種開發(fā)形態(tài)。
圖7是示出了所包括的文件列表的表格。
圖8是圖7所示的表格的另一種形態(tài)。
圖9示出了用于表格格式編程中的一些建議長度和描述性的指令命令。
圖10示出了現(xiàn)有技術(shù)中用于聲音發(fā)生微控制器中的基本表格格式程序。
圖11是示出了一個本地計算機通過一種通信連接將一個表格格式程序下載到一個遠程計算機中的方框圖。
在下面整個詳細描述中,所有附圖中的相同附圖標記表示相同的元素。
首先參照圖10中所示的由美國專利US 5,867,818公開的基本表格格式編程。該表格格式程序由用以對一個聲音發(fā)生可編程控制器編程的兩部分構(gòu)成一個狀態(tài)表和一個路徑表。在狀態(tài)表的第二行中,定義了控制器的相應(yīng)輸入觸發(fā)引腳的順序。狀態(tài)0到狀態(tài)4中的每一個定義了控制器的一種可能觸發(fā)狀態(tài)。例如,RPath1元素指向于狀態(tài)0的TG1,表示如果檢測到一個上升沿(用“R”表示),則執(zhí)行命名Path1的路徑。在Path1中,有效狀態(tài)改變到狀態(tài)1,之后產(chǎn)生一個名為“Sound1”的聲音。在發(fā)出該聲音之后,控制返回Path1并開始另一個循環(huán)的聲音發(fā)生序列,直到在State1狀態(tài)中由TG1接收到一個下降沿觸發(fā)(用FPath11表示)為止。這個程序例示出了TG1到TG4的“l(fā)evel hold”功能。即,當壓下TG1到TG4中的一個時,將產(chǎn)生一個聲音。聲音將是循環(huán)發(fā)生的,直到放開觸發(fā)按鈕為止。
下面參照圖1,圖1示出了一個改進后的表格格式程序?qū)嵤├兴x定的一個表格的結(jié)構(gòu)。關(guān)鍵字101表示程序的開始。程序員在關(guān)鍵字下面的位置上指定了程序名。關(guān)鍵字106表示一個列出了所包括的程序模塊的表格的開始部分。關(guān)鍵字107表示一個定義了該程序中所用常量的表格的開始部分。關(guān)鍵字102對程序中所用的變量進行說明。關(guān)鍵字103是一個列出了用戶定義的等效命令和語法表達式的表格。為了使程序關(guān)鍵字是可區(qū)分的,程序員可利用關(guān)鍵字104在表格的開始部分定義關(guān)鍵字的打印格式。上述所有特征是為表格格式程序做準備工作。任務(wù)表105提供了一種或多種任務(wù)狀態(tài),用以定義哪個任務(wù)是有效的、暫停的或終止的。程序組111由一個可選的限定表112,至少一個狀態(tài)表113和一個路徑表116組成。實際的程序作業(yè)由狀態(tài)表和路徑表的內(nèi)容交互構(gòu)成??筛郊虞敵鰻顟B(tài)表115和輸出方程表以便進一步定義程序的輸出狀態(tài)。最后,附加一個程序庫表121以便提供通用的命令串和子程序。應(yīng)當注意上述所有表格無須按順序排列并且很多表格的建立只是為了提供可選的特征。另外,一個程序可包含多個相同類型的表格,如任務(wù)表和狀態(tài)表的情況??稍陉P(guān)鍵字冒號之后隨意指定表格的名稱以便更好地體現(xiàn)該程序的含義。表格格式編程中所用的關(guān)鍵字可多于一個字并且可以用指令、具體的變量、常量和系統(tǒng)硬件來表示。應(yīng)當注意所提供的關(guān)鍵字只是舉例說明,還可使用其它的關(guān)鍵字名稱。除此以外,對表格的范圍進行合理的改進是可能的,應(yīng)將其視為本申請的保護范圍之內(nèi)。
現(xiàn)在參照圖2A,表格100代表圖1中的表格103的具體例子。關(guān)鍵字201“定制表達式(Custom Expression)”表示這個功能表的開始部分,該表列出了等效于正規(guī)表格格式表達式的用戶定義表達式。例如,假設(shè)邏輯AND功能的正規(guī)表格格式表達式是203所指的“AND”;一個習慣用C語言編程的程序員可隨意地用202所示的C語言指令集中的“&&”來代替表格格式命令“AND”。定制表達式適用于語言或系統(tǒng)設(shè)置的任何字或符號,例如指令命令、符號和系統(tǒng)關(guān)鍵字。建議每次在定義一個替換表達式時提供一個注釋204。這個功能的優(yōu)點在于為程序員提供個人化的支持,以便總可以使用慣用的符號或表達式。但是,當打印所編寫的程序時,編譯器或編輯器最好以正規(guī)表達式打印出程序清單以便于其他人員閱讀。對程序編輯器亦是如此。只要鍵入用戶定義的表達式,將可以顯示出正規(guī)的表達式。還建議在預(yù)定的正規(guī)或用戶定義的表達式之間提供一種轉(zhuǎn)換功能,使用戶可以選擇是以正式的形式還是以定制的形式顯示或打印程序。利用這種用戶定制表達式的特征,在保持程序員使用縮寫的表達式或較短的符號來表示指令命令和語法的同時,還可利用有意義的長表達式名稱使程序清單對其他人員而言更具有可讀性。利用公知的查表方法,在表格格式程序中建立正式的語法組和相應(yīng)的用戶定義的等效語法和標號組。一個典型的應(yīng)用實例如圖9所示,圖中列出了一些較長的描述性指令集。移位操作符“BIT SHIFT LEFT”和“BIT SHIFT RIGHT”清楚地描述了所要執(zhí)行的操作。但是,這些指令對于有經(jīng)驗的程序員來說太長和不受歡迎。程序員將“BIT SHIFT LEFT”指令等效于C語言中的簡潔而描述性較差的“<<”指令。長的指令名使使程序易于理解但對有經(jīng)驗的程序員來說是無用的?!岸ㄖ票磉_式”表在保持長指令表達式的優(yōu)點的同時有效地解決了這個問題。
由于QWERT鍵盤上可用的符號是非常有限的,因此從鍵盤上很難發(fā)現(xiàn)足夠的有意義符號來組成一種新的象表格格式編程方法那樣與其它某些通用記號和符號的傳統(tǒng)用法不相矛盾的編程方法。通過使用戶能夠按照自己的意愿重構(gòu)指令和符號,定制表達式表可作為一種解決此問題的方式。
元素210示出了了如何將一個名稱“MySign”分配給“客戶表達式”表。當為了使一個以上的用戶操作或閱讀程序而提供一組以上的“客戶表達式”表時,特別需要一個名稱。例如,除了包括在程序中的表“MySign”以外,另一個名為“JohnsSign”的定制表可被加到同一個程序中。如果John想要閱讀該程序,只需將“JohnsSign”表達式表設(shè)為缺省顯示表,John將可以以他所喜歡的格式來顯示該程序。此表的新特性使每個用戶都包括他們自己的定制表達式設(shè)置,以便于按照他們喜歡的格式來轉(zhuǎn)換或編輯程序。
盡管圖2A所示的表格提供了一種重構(gòu)關(guān)鍵字和表達式的方法,但需要一種為一個小作業(yè)提供另一種語言的替換表達式或命令的簡單方法。這是可以通過在用該語言規(guī)定的表達式前指定一個表示該語言的符號來實現(xiàn)的。圖2B示出了如何用二進制數(shù)00001111屏蔽(mask)寄存器A的內(nèi)容以便于得到寄存器A最后四位的內(nèi)容,然后進一步顯示這個數(shù)字。表達式216以元素“(C&&)”來表示“&&”指令是一個“C”語言指令。然后利用一個預(yù)定義的“Display”命令來顯示寄存器A的屏蔽值??商鎿Q地,利用一個微處理器的匯編語言中的“&”指令可得到執(zhí)行同一功能的表達式。標記“A()”是一個表示括號中的操作是以匯編語言編寫而成的表達式。盡管這兩種方法都很方便,但是仍沒有圖2A中所示的能夠使一個全程序的個人化表示式是被轉(zhuǎn)換或個人化的定制表達式表功能強大。
由于表格格式編程中涉及用戶指定的大量的分立標號,并且這些標號分散在程序中并與關(guān)鍵字和指令命令相混合,因而對于一個閱讀該程序的用戶來說,難以從其它關(guān)鍵字和指令命令中識別出這些標號。因此最好提供用以識別這些標號的裝置以便使該程序?qū)τ脩舾鼮橛押?。圖3示出了一個控制如何表現(xiàn)用戶分配標號的程序表。表元素234提供了可選擇的情況??捎糜谶x擇的典型情況包括首字母、所有大寫字母和所有小寫字母。表元素239表示可選擇的字母類型。典型的可選擇類型包括黑體、斜體和下劃線。應(yīng)當注意元素234和239都為包括黑白打印機在內(nèi)的各種顯示設(shè)備提供了卓越的識別功能。關(guān)鍵字231表示用于定義程序部分的識別類型的開始部分。建議在關(guān)鍵字231后面設(shè)置一個由用戶分配的名稱以便表示下面的設(shè)置最適用于某個特定的人員。在程序中可包括多個依據(jù)個人喜好而分配的識別類型表,并且可為每個表分配一個用元素232表示的名稱。選擇其中一個識別類型表可將打印格式設(shè)置成適用于正在閱讀該程序的特定用戶。
為了表示在多任務(wù)運行環(huán)境下具有較好結(jié)構(gòu)的程序流,在圖4所示的實施例中引入了一個任務(wù)控制表(此后稱為任務(wù)表)。元素261是用于識別一個任務(wù)表的關(guān)鍵字。元素262是一個對任務(wù)表命名的標號。提供這個名稱是為了在需要兩個或多個任務(wù)表時與其它任務(wù)表相區(qū)別。元素263、264表示可在任務(wù)表的控制下運行的不同任務(wù)或程序。任務(wù)表的每一行表示一個任務(wù)狀態(tài)。在每種任務(wù)狀態(tài)下,指定一種任務(wù)條件以表示每種任務(wù)的運行條件。下面列出了用以描述一種任務(wù)條件的表達式的幾個例子Start表示不論該任務(wù)或程序是正在運行、中止或已經(jīng)結(jié)束,都從頭開始重新運行該程序;Continue表示如果一個任務(wù)已經(jīng)開始運行,則繼續(xù)運行之;Pause表示任務(wù)或程序被置于中止狀態(tài);Run表示如果一個任務(wù)還沒有開始運行,則開始運行之;如果一個任務(wù)或程序正在運行,則繼續(xù)運行之;如果一個任務(wù)被中止,則恢復(fù)該任務(wù)的運行;X表示結(jié)束該任務(wù)的運行。
在行265,任務(wù)的名稱為“Task Status 1”,它指示“Main”程序開始運行而程序2到n都處于結(jié)束狀態(tài)。在任務(wù)狀態(tài)268,指示所有的程序運行。應(yīng)當注意對每個任務(wù)表來說,在任何時刻只有一個任務(wù)狀態(tài)被指定為有效。在具有有限資源的系統(tǒng)中,向正在運行的有效任務(wù)指定優(yōu)先權(quán)是非常重要的。任務(wù)狀態(tài)273和274為任務(wù)們分配優(yōu)先權(quán)。應(yīng)當注意可以建立一個獨立的表格來描述分配給任務(wù)的優(yōu)先權(quán)。由于有效任務(wù)表和優(yōu)先權(quán)任務(wù)表中每一元素的開頭元素是相同的,所以可以將兩種類型的任務(wù)表組合成一個任務(wù)表,如圖4所示。在這種情況下,就需要兩種有效任務(wù)狀態(tài),一種用于任務(wù)有效狀態(tài),而另一種用于任務(wù)優(yōu)先權(quán)分配。
圖5A示出了一個介紹任務(wù)表概念下的實際應(yīng)用例子。圖5B是圖5A的標號表示。這個例子由三個任務(wù)表組成。第一任務(wù)表名為“Input”,如元素301所示。它由三個分別名為“Keyboard”、“Mouse”和“Gameport”的程序組成?!癒eyboard”是一個用于掃描鍵盤上的按鍵的程序?!癕ouse”是一個對鼠標的移動進行譯碼的程序,而“Gameport”則輸入來自博弈端口的觸發(fā)信號。在名為“All”的任務(wù)狀態(tài)305中,運行三個程序以使計算設(shè)備對三個輸入設(shè)備都有響應(yīng)。在名為“Normal”的任務(wù)狀態(tài)306中,則只認可鍵盤和鼠標。不使用博弈端口是為了提高計算設(shè)備的服務(wù)效率。在處于游戲模式時,名為“Game”的任務(wù)狀態(tài)309變成唯一的有效程序或任務(wù)。不使用鍵盤和鼠標是為了使計算設(shè)備將所有資源集中在游戲上。第二任務(wù)表是一個名為“Ports”用于控制計算設(shè)備的串行和并行端口的表格。名為“Device”的第三任務(wù)表如元素341所示。它控制驅(qū)動器程序操作“CDRom”342、“HardDriveC”343和軟盤驅(qū)動器。當任務(wù)狀態(tài)“ReadCD”345被激活時,CD Rom和Hard Drive C驅(qū)動器程序被激活而軟盤驅(qū)動器程序被終止。在需要硬盤驅(qū)動器全速運行的模式中,任務(wù)狀態(tài)“HDFullSpeed”346變成有效任務(wù)狀態(tài)而硬盤驅(qū)動器變成唯一正在運行的設(shè)備。根據(jù)這個應(yīng)用實例,建議只對具有相似內(nèi)容或相互關(guān)聯(lián)的任務(wù)進行分組以形成一個共用的任務(wù)表。應(yīng)當注意在任何時候,每個任務(wù)表中只有一個任務(wù)狀態(tài)被指定為有效。
參照圖6A,示出了表格格式程序的一個主程序組。該程序名為“WebSale”,提供了一個通過因特網(wǎng)提供的銷售程序的骨架結(jié)構(gòu)。這個例子示出了在表格格式編程環(huán)境下進行多種語言編程的概念。為了便于描述該實施例而在程序中插入了行號。應(yīng)當注意狀態(tài)和路徑方程不必是按照順序排列的?,F(xiàn)在參照第1行。關(guān)鍵字“Group”表示一個表格格式組或程序模塊的開始部分。該組的名稱為“Main”。將Main作為一個關(guān)鍵字用以表示這個組是在開始運行該程序時所要執(zhí)行的第一程序組。第2行以一個關(guān)鍵字“qualifier”開始,它定義了在配置狀態(tài)中所列出的限定符的限定條件。在第3到6行,將術(shù)語“Icon”用作一個功能性命令,用于構(gòu)造一個圖標并在單擊該圖標時觸發(fā)該配置狀態(tài)。在典型的表格格式編程中,按順序是數(shù)形成大量圖標。在限定表中定義和命名每個圖標。例如,當Icon(1)指向于名稱“Catalog”時,字“Catalog”被指定給第一圖標并顯示于其上。實際上,一旦將一個名稱指定給一個圖標,其編號就是不重要的,除非在一個程序中提到了術(shù)語“icon(n)”并且“n”是一個計算結(jié)果。第7行定義了一個名為“FirstPage”的輸入狀態(tài)配置表。在這個表中指定了五種限定符,即“Catalog”、“Purchase”、“Service”、“Home”和“Quit”。每種限定符系指一個圖標的觸發(fā),如第2行的限定表中所定義的。第一輸入限定符狀態(tài)名為“Ready”,如第8行所示。在這種狀態(tài)下,當接收到一個代表圖標“Catalog”的限定觸發(fā)時,執(zhí)行名為“P_catalog”的路徑,對其它限定符來說亦是如此。第9行示出了另一個名為“Hold1”的輸入配置狀態(tài)。狀態(tài)方程中的“x”表示相應(yīng)的限定條件是無關(guān)條件,在該條件下當出現(xiàn)限定觸發(fā)時,該觸發(fā)被阻塞或不需要響應(yīng)。
下面參照提供了另一個名為“Response”的配置表的圖6A中的第11行。這是一個具有五個元素的輸出狀態(tài)配置表。前四個元素具有一個關(guān)鍵字“Group”,表示構(gòu)成了一個程序組的程序。冒號后面是程序組的名稱。第一組名為“Info”,用于提供產(chǎn)品信息。第二組“Order”是一個指導(dǎo)用戶通過諸如登記信用卡號、產(chǎn)品號、定單數(shù)量、總量、選擇之類的購買過程,對數(shù)據(jù)加密并將定單發(fā)送到供應(yīng)商進行譯碼的程序。第三組“Service”提供了通用的交互式客戶服務(wù)條件。第四組“Register”登記客戶信息。輸出配置的最后一個元素是一個與計算設(shè)備的揚聲器相連接的硬件端口P3.1。當為這個端口分配一個代碼P+時,一個正向脈沖串被發(fā)送到揚聲器并聽到一個通知音。端口P3.1是一個硬件終端,因此將其分類為一個面向硬件的輸出。前四組都是面向軟件的輸出條件,因而被分類為虛擬計算輸出。任何與一個硬件輸出無關(guān)的輸出條件被定義為一個虛擬輸出。虛擬計算輸出的含義包括任何用以產(chǎn)生數(shù)據(jù)的與終端無關(guān)的操作,信號或信息的顯示或產(chǎn)生,初始化程序,重起動程序,啟動軟件計時器,或計數(shù)器或操作一個內(nèi)部電路,如寄存器等。第12到17行是在狀態(tài)表“Response”下配置的輸出狀態(tài)。當一個“Run”命令出現(xiàn)在一個輸出配置狀態(tài)中時,運行相應(yīng)的組程序。當接收到一個“Continue”指令時,繼續(xù)運行正在運行的程序或者如果該程序還沒有開始運行或處于暫停狀態(tài),則該程序保持空閑狀態(tài)?!皒”標記表示不需要輸出操作。利用這些描述,第12到17行的輸出狀態(tài)的操作是一目了然的。應(yīng)當注意在一個程序中可能存在一個以上的輸入或輸出狀態(tài)表。多個狀態(tài)表簡化了標格的結(jié)構(gòu)并使編程作業(yè)更為容易。但是,應(yīng)當注意在任何時候,每種輸入狀態(tài)表中只有一種配置狀態(tài)被指定為有效。作為一種編程技巧,相互聯(lián)系的輸入限定符和輸出條件可被組合成一個狀態(tài)表。還應(yīng)當注意,如果需要,可將輸入狀態(tài)和輸出狀態(tài)組合成一種混合狀態(tài)。
第18行啟動操作“Path(s)”。當路徑名被一種配置狀態(tài)的任何限定符元素所引用時,每個路徑定義一個或多個要執(zhí)行的操作。第19行是一個名為“Start”的路徑,在執(zhí)行Group時,該路徑是一個缺省起始路徑。當首先起動該程序時,從所引用的所需操作中開始編程過程。開始操作“CheckSystem”檢查輸入顯示驅(qū)動器、物理端口之類的本地計算系統(tǒng)的配置以得到運行程序可用的揚聲器和系統(tǒng)資源。要估計的本地計算設(shè)備可用資源包括計算機時間、寄存器個數(shù)、可用存儲器的存儲量、存儲器配置、所占用的計時器和計數(shù)器、可用的中斷通道以及任何專用硬件電路配置。“CheckSystem”操作中應(yīng)包括一個根據(jù)系統(tǒng)參數(shù)重構(gòu)下載程序的過程。下一個步驟是顯示第一頁。在程序中僅將此操作定義為“DisplayFirstPage”。然后產(chǎn)生一“滴滴”聲?!癏old2”表示所有的輸出配置置于保持狀態(tài),如“Response”狀態(tài)表所示?!癛eady”指令始于輸入狀態(tài)表“FirstPage”的“Ready”狀態(tài)。在“Ready”狀態(tài)中,無論何時接收到圖標“Catalog”、“Purchase”或“Service”的一個限定觸發(fā),都執(zhí)行相應(yīng)路徑20到22中的一個。在上述每個路徑中,顯示指示該操作的窗口并啟動促銷程序?!癇uySolicit”是一個用于請求銷售公司產(chǎn)品的交互式程序。在路徑“P_purchase”中,操作“Hold1”和“Hold3”限制除圖標“Home”和“Quit”之外的來自本地用戶終端的可允許響應(yīng)?!癎reyButton”是一個用以改變圖標顏色的操作,它不適用于例如由狀態(tài)命令“Hold1”所指定的圖標“Catalog”、“Purchase”和“Service”。當執(zhí)行第23行的路徑“Bye”時,結(jié)束程序“Terminate”和該程序。一個意味著“程序組結(jié)束”的關(guān)鍵字“EOG”位于程序組的結(jié)尾,用于通知編譯器該程序組到此結(jié)束。
應(yīng)當看到所討論的編程方法根據(jù)組成狀態(tài)和路徑而交互式地描述了程序操作。使用了由程序員分配的有意義的術(shù)語,如“Beep”、“CheckSystem”和“Terminate”。這個過程就象編寫一篇用以精確描述程序所需操作的論文一樣自然。
在此程序的編譯過程中,很多程序員分配的術(shù)語仍然是未標識的,例如“CheckSystem”、“DisplayFirstPage”和“BuySolicit”。這些程序員分配的標號都是計算設(shè)備不可執(zhí)行的,除非它們與一個可執(zhí)行程序鏈接。圖6B中所示的下一個步驟就是需要進一步定義未標識標號的描述。使這些標號可執(zhí)行的典型方法是將它們與一個外部可執(zhí)行程序相鏈接或以一個來自程序庫的程序來定義該標號。這就非常需要編譯器提供一種能夠識別所有程序員分配標號的功能。該標識最好在通過一個黑白打印機打印該程序時是可識別的。典型的最佳識別方法包括改變字母字格式和字型,如黑體、斜體或下劃線。然后分析每種未標識標號的要求并選擇一種最適宜的編程語言來編寫一個程序以便提供所需的操作。
可以用任何語言,甚至另一個表格格式程序來編寫支持程序。這些支持程序被“包括”在用于編譯器的程序中以使所有程序集中在一起。圖6B的第18行表示“CheckSystem”最好是一個用Java語言編寫的前綴為“EJ”的程序,其中“E”表示它是一個被包括在內(nèi)的外部程序。操作“DisplayFirstPage”最好用Visual Basic語言編寫。在第19行中,操作“BuySolicit”,一個征求購買的窗口最好來自一個局部或總程序庫。第23行表示局部程序庫的開始部分。第24行是一個精心設(shè)計的路徑方程,它描述了征求客戶的操作。這個操作包括執(zhí)行一個用“C”編寫的外部程序“CheckRecord”和一個用Visual C++編寫的程序“SolicitWindow”,以便通過人機對話的形式征求購買產(chǎn)品的客戶。第20行中的元素“GreyButton”是指一個位于局部程序庫中的路徑,它由一個用于識別哪個圖標具有“x”標記的“C”程序和另一個用Visual Basic編寫的程序用于將這些圖標變成灰暗顏色以表示這些圖標不能被觸發(fā)。
當建立了一個具有大量支持程序的程序庫時,一個熟悉表格格式編程的程序員可通過選擇和引用各種通用支持程序來開始編程作業(yè)。圖7示出了構(gòu)成一個包括窗口和收發(fā)器的程序時的引用的表示例。在這個引用表中的支持程序是必須遵循的,并因此需要編譯器排除不用于所要構(gòu)成的程序中的任何引用程序。
利用表格格式編程方法來管理用其它語言編寫而成的支持程序需要更高的技術(shù)要求,例如在程序之間傳送參數(shù)和使變量相等的方法。如果不同類型的程序是由不同的編譯器翻譯的,則要特別考慮對這些程序的正常管理。所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解所公開的表格格式編程方法的優(yōu)點并建立一個編譯系統(tǒng)來完成所需的操作。例如,在引用一個特殊外部程序時,可分配預(yù)先定義的寄存器或存儲器塊來處理參數(shù)的傳遞。
從上述實施例中總結(jié)出表格格式編程的主要優(yōu)點如下1.通過編寫描述性標號可比較容易地編寫程序。
2.程序的結(jié)構(gòu)較好以致出現(xiàn)故障的機會很小。
3.對于硬件終端來說,簡化了與虛擬軟件輸出的組合和對高級程序流的影響。
4.表格格式程序提供了清楚簡潔的表達方式并易于為第三者讀懂。它所提供的友好而清楚的表達對于進一步減少程序調(diào)試時間和縮減維護成本是非常重要的。
5.表格格式編程方法使利用多種語言來構(gòu)造一個程序變得更加簡單。根據(jù)應(yīng)用環(huán)境和每種語言的特點來選擇語言。
6.用表格格式編寫的簡明程序提供了較高的數(shù)據(jù)壓縮率并使通過具有有限帶寬和數(shù)據(jù)處理效率的通信通道而從一個遠程的主機終端到一個本地計算設(shè)備的傳輸更加理想。
上述本發(fā)明的最佳實施例只是舉出的例子,可以預(yù)想到各種修改、規(guī)定的改變、表格的重排、指令和關(guān)鍵字的分配都能達到相同的效果,從而這些修改和改進都應(yīng)包括在后述的權(quán)利要求范圍內(nèi)。
權(quán)利要求
1.一種由計算設(shè)備執(zhí)行的計算機程序,包括具有x種配置狀態(tài)的第一表格,所述配置狀態(tài)中的至少一種定義了一個或多個限定條件;規(guī)定了y個路徑的第二表格,當滿足所述第一表格中列出的一個限定條件時,執(zhí)行所述路徑中的至少一個;所述程序還包括下述表格中的至少一個(1)一個規(guī)定了用于表示一種編程語言的相應(yīng)預(yù)定義指令的用戶定制表達式的表格;(2)一個定義了關(guān)鍵字的可取字格式的表格;(3)一個用m種任務(wù)狀態(tài)定義n個任務(wù)的有效性的表格,所述任務(wù)狀態(tài)中的至少一種規(guī)定了k個有效的選定任務(wù);(4)一個用p種任務(wù)狀態(tài)定義q個任務(wù)的表格,所述任務(wù)狀態(tài)中的至少一個規(guī)定了將被服務(wù)的有效任務(wù)的優(yōu)先權(quán);(5)一個定義了x個限定表達式的表格,每個限定表達式表示一種配置狀態(tài)的一個限定條件;以及(6)一個定義了y個輸出表達式的表格,每個輸出表達式表示一種配置狀態(tài)或所述第二表格中列出的一個路徑元素的一個輸出條件。
2.如權(quán)利要求1所述的計算機程序,其特征在于用存儲在用于存儲數(shù)字數(shù)據(jù)的存儲裝置中數(shù)據(jù)來表示。
3.如權(quán)利要求2所述的計算機程序,其特征在于該程序被嵌入用于銷售商品的計算設(shè)備中。
4.一種用于對響應(yīng)一個或多個限定條件執(zhí)行一個或多個路徑的計算設(shè)備進行編程的編程方法;所述編程方法最少包括步驟(1)規(guī)定x種配置狀態(tài);(2)規(guī)定一個或多個限定條件到至少一種配置狀態(tài),(3)規(guī)定y個由所述計算設(shè)備執(zhí)行的路徑;(4)分配z個標號來表示步驟(3)中的一個或多個路徑元素,其中z是一個大于等于1的整數(shù);(5)對于步驟(2)中的每個限定條件,當滿足一個特定限定條件時,就規(guī)定步驟(3)中的一個將被計算設(shè)備執(zhí)行的路徑;(6)將配置狀態(tài)中的至少一種規(guī)定為有效配置狀態(tài);(7)為步驟(4)中的每個分配標號,定義一個用所述標號表示的可執(zhí)行程序。
5.如權(quán)利要求4所述的編程方法,其特征在于步驟(4)中的標號最初不能被所述計算設(shè)備執(zhí)行并且另一步驟(7)被配置成能夠被所述計算設(shè)備執(zhí)行所述標號。
6.如權(quán)利要求5所述的編程方法,其特征在于還包括識別不能被所述計算設(shè)備執(zhí)行的所述標號以用于構(gòu)成步驟(7)的程序的步驟。
7.如權(quán)利要求4所述的編程方法,其特征在于用包括表格格式編程語言在內(nèi)的任何可用編程語言來構(gòu)成步驟(7)的程序。
8.如權(quán)利要求7所述的編程方法,還包括定義用于在步驟(1)到(6)所表示的程序和標號所表示的可執(zhí)行程序之間傳遞參數(shù)的裝置的步驟。
9.如權(quán)利要求4所述的編程方法,還包括規(guī)定指向于所述x種配置狀態(tài)中的至少一種的一個或多個輸出條件的步驟。
10.如權(quán)利要求4所述的編程方法,其特征在于在一個路徑或一種配置狀態(tài)中規(guī)定了至少一個輸出條件。
11.如權(quán)利要求4所述的編程方法,還包括識別所述計算設(shè)備管理其狀態(tài)和路徑所需的資源的步驟。
12.如權(quán)利要求4所述的編程方法,還包括指示所述計算設(shè)備用于構(gòu)成步驟(7)的程序的資源的步驟。
13.如權(quán)利要求4所述的編程方法,其特征在于所述計算設(shè)備由兩個或多個處理器構(gòu)成;通過第一處理器提供管理特定狀態(tài)和路徑的資源并利用第二處理器資源運行步驟(7)的程序的至少一部分。
14.如權(quán)利要求4所述的編程方法,其特征在于所述計算設(shè)備被定義為第一計算設(shè)備;所述編程方法還包括通過通信連接從與所述第一計算設(shè)備距離遙遠的第二計算設(shè)備接收表示上述步驟的數(shù)字數(shù)據(jù)的步驟。
15.如權(quán)利要求4所述的編程方法,其特征在于至少部分所述步驟按照表格格式進行組織。
16.如權(quán)利要求15所述的編程方法,還包括將步驟(1)和(2)的配置狀態(tài)分成一個或多個表格的步驟。
17.如權(quán)利要求15所述的編程方法,其特征在于配置狀態(tài)或路徑不必按照順序彼此依次列出。
18.如權(quán)利要求4所述的編程方法,還包括將配置狀態(tài)和路徑說明轉(zhuǎn)換成存在所述計算設(shè)備中的數(shù)字數(shù)據(jù)以便用于執(zhí)行的步驟。
19.如權(quán)利要求4所述的編程方法,還包括用于轉(zhuǎn)換利用不同格式的第二編程語言的所述步驟的至少部分說明的步驟。
20.如權(quán)利要求4所述的編程方法,還包括用于識別由所述步驟構(gòu)成的程序位置的步驟。
21.如權(quán)利要求7所述的編程方法,其特征在于步驟(7)的程序是一個位于由權(quán)利要求1中的步驟構(gòu)成的程序之外的程序。
22.如權(quán)利要求21所述的編程方法,還包括用于識別所述外部程序位置的步驟。
23.如權(quán)利要求4所述的編程方法,還包括用于形成一個獨立的用于規(guī)定由步驟(1)到(7)構(gòu)成的程序是有效還是無效的表格的步驟。
24.如權(quán)利要求4所述的編程方法,還包括用于分配一個表示一種配置狀態(tài)的標號的步驟。
25.如權(quán)利要求4所述的編程方法,還包括用于分配一個表示一個路徑的標號的步驟。
26.一種用于對執(zhí)行多個程序的計算設(shè)備進行編程的編程方法,包括步驟(1)規(guī)定n個可由所述計算設(shè)備執(zhí)行的程序;(2)定義m種任務(wù)狀態(tài),每種任務(wù)狀態(tài)規(guī)定k個有效的選定程序,其中k是一個大于等于0的整數(shù);以及(3)規(guī)定步驟(2)中的一種任務(wù)狀態(tài)為有效任務(wù)狀態(tài)。
27.如權(quán)利要求26所述的編程方法,其特征在于至少一個程序是一個表格格式程序,包括x種程序配置狀態(tài),所述配置狀態(tài)中的至少一種定義了一個或多個限定條件;y個由所述計算設(shè)備執(zhí)行的路徑;以及當滿足一個特定的限定條件時,所述計算設(shè)備執(zhí)行所述路徑中的一個。
28.如權(quán)利要求26所述的編程方法,其特征在于步驟(1)的程序是用不同的語言編寫而成。
29.如權(quán)利要求26所述的編程方法,還包括用于提供一個關(guān)鍵字以表示構(gòu)成步驟(1)到(3)的一個表格格式程序組的步驟。
30.如權(quán)利要求26所述的編程方法,其特征在于所述任務(wù)狀態(tài)不必按照順序彼此依次列出。
31.如權(quán)利要求26所述的編程方法,其特征在于步驟(1)到(3)定義了第一任務(wù)表,所述編程方法還包括定義一個不同的第二任務(wù)表的步驟。
32.一種用于對一個遠程計算設(shè)備編程的方法,包括步驟(1)規(guī)定x種配置狀態(tài),所述配置狀態(tài)中的至少一種定義一個或多個限定條件;(2)規(guī)定y個由所述計算設(shè)備執(zhí)行的路徑;(3)對步驟(1)的每個限定條件,當滿足一個特定的限定條件時,規(guī)定一個由所述計算設(shè)備執(zhí)行的路徑;(4)規(guī)定一種限定配置狀態(tài)變成有效配置狀態(tài);(5)將表示上述步驟的數(shù)字數(shù)據(jù)存入一個本地計算設(shè)備;以及(6)通過通信連接將步驟(5)的數(shù)字數(shù)據(jù)下載到所述遠程計算設(shè)備中。
33.如權(quán)利要求32所述的方法,其特征在于所述通信連接是一個網(wǎng)絡(luò)。
34.如權(quán)利要求33所述的方法,其特征在于所述網(wǎng)絡(luò)包括因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)或LAN。
35.如權(quán)利要求32所述的方法,還包括將一個路徑元素指向于以不同格式的第二編程語言編寫而成的程序的步驟。
36.如權(quán)利要求32所述的方法,還包括評估所述遠程計算設(shè)備結(jié)構(gòu)的步驟和將上述步驟配置成同所述遠程計算設(shè)備結(jié)構(gòu)運行的步驟。
37.如權(quán)利要求32所述的方法,還包括將所述步驟中規(guī)定的至少部分數(shù)據(jù)形成一個表格格式的步驟。
38.如權(quán)利要求32所述的方法,還包括將表示所述配置狀態(tài)和路徑的數(shù)字數(shù)據(jù)存入所述遠程計算設(shè)備中以便執(zhí)行的步驟。
39.如權(quán)利要求32所述的方法,還包括將配置狀態(tài)和路徑的至少部分說明轉(zhuǎn)換成不同格式的第二編程語言的步驟。
40.如權(quán)利要求32所述的方法,其特征在于配置狀態(tài)或路徑不必按照順序依次列出。
41.一種由第一處理器和第二處理器構(gòu)成的多處理器計算設(shè)備,其特征在于所述第一處理器用于執(zhí)行一個具有m種配置狀態(tài)和n個路徑的表格格式程序的至少一部分。
42.如權(quán)利要求41所述的多處理器計算設(shè)備,其特征在于第二處理器執(zhí)行用不是表格格式的第二語言編寫而成的程序。
43.如權(quán)利要求42所述的多處理器計算設(shè)備,其特征在于第二處理器用于執(zhí)行一個由所述第一處理器執(zhí)行的表格格式程序所指導(dǎo)的程序。
44.如權(quán)利要求41所述的多處理器計算設(shè)備,其特征在于所述第一和第二處理器位于一個集成電路上。
45.如權(quán)利要求41所述的多處理器計算設(shè)備,其特征在于處理器之一可執(zhí)行的至少一個指令不同于另一個處理器可執(zhí)行的指令集。
46.如權(quán)利要求41所述的多處理器計算設(shè)備,還包括用于在所述第一和第二處理器之間傳遞參數(shù)的裝置。
47.一種用于構(gòu)成一個適于對具有m種配置狀態(tài)和n個路徑的表格格式程序進行編譯的編譯器的方法,包括步驟(1)識別表示配置狀態(tài)的區(qū)域;(2)識別表示路徑的區(qū)域;(3)識別一種配置狀態(tài)的至少一個限定條件并將其與具體的路徑相連接;以及(4)將配置狀態(tài)A與一個將引用所述配置狀態(tài)A作為其元素的路徑相連接。
48.如權(quán)利要求47所述的方法,還包括用于將步驟(1)到(4)的功能綜合為一個現(xiàn)有語言的編譯器的過程。
49.如權(quán)利要求47所述的方法,在步驟(1)中還包括一個識別表示配置狀態(tài)開始部分的關(guān)鍵字的過程。
50.如權(quán)利要求47所述的方法,在步驟(2)中還包括一個識別表示路徑開始部分的關(guān)鍵字的過程。
51.如權(quán)利要求47所述的方法,還包括使一個用戶定制表達式與表格格式編程語言的一個具體指令相等的步驟。
52.如權(quán)利要求51所述的方法,還包括識別一個使用戶定制表達式與表格格式編程語言的預(yù)定義指令集相等的表格的步驟。
53.如權(quán)利要求47所述的方法,還包括根據(jù)所述表格格式程序的指令集識別不可執(zhí)行的標號的步驟。
54.如權(quán)利要求53所述的方法,還包括將所述不可執(zhí)行的標號與一個外部程序相連接的步驟。
55.如權(quán)利要求54所述的方法,其特征在于所述外部程序是用包括表格格式編程語言在內(nèi)的任何可用編程語言編寫而成的程序組成。
56.如權(quán)利要求47所述的方法,還包括區(qū)分兩個或多個程序組的步驟,其中每個程序組由至少一個配置狀態(tài)表和一個路徑表組成。
57.如權(quán)利要求56所述的方法,還包括對所述多個程序組之間的交互作用進行編譯的步驟。
58.如權(quán)利要求57所述的方法,還包括定義一個用于激活一個程序組的指令的步驟。
59.如權(quán)利要求58所述的方法,其特征在于所述指令用一個或多個任務(wù)表表示。
60.一種對計算裝置編程的方法,包括步驟(1)選擇一種具有預(yù)先定義的指令集的編程語言;(2)定義用于表示選定語言的一個具體指令的替換表達式;(3)用所述替換表達式編寫程序;以及(4)將所述程序配置成所述計算裝置可執(zhí)行的程序。
61.如權(quán)利要求60所述的方法,其特征在于選定的編程語言是表格格式編程語言,包括x種配置狀態(tài),所述配置狀態(tài)中的至少一種定義了一個或多個限定條件;y個能被所述計算設(shè)備執(zhí)行的路徑;以及當滿足一個特定限定條件時,所述計算設(shè)備就執(zhí)行一個路徑。
62.如權(quán)利要求60所述的方法,其特征在于步驟(4)是一個由編輯器、編譯器、解釋程序或一個翻譯程序執(zhí)行的翻譯過程。
63.如權(quán)利要求62所述的方法,還包括顯示用經(jīng)過翻譯的選定語言的預(yù)定的指令集組成的程序的步驟。
64.如權(quán)利要求62所述的方法,還包括顯示用用戶定制表達式組成的程序的步驟。
65.如權(quán)利要求60所示的方法,還包括提供一個位于程序內(nèi)部的表格以便將所述替換表達式與相應(yīng)的特定指令進行鏈接的步驟。
66.一種用于對響應(yīng)一個或多個虛擬限定執(zhí)行一個或多個路徑的計算設(shè)備進行編程的編程方法,所述編程方法包括步驟(1)規(guī)定x種配置狀態(tài),所述配置狀態(tài)中的至少一種定義了一個或多個限定條件;(2)定義步驟(1)中的限定條件中的至少一個以表示一個虛擬限定;(3)規(guī)定y個由所述計算設(shè)備執(zhí)行的路徑;(4)對于步驟(1)中的每個限定條件,當滿足所述限定中的一個具體限定條件時,再規(guī)定一個由所述計算設(shè)備執(zhí)行的路徑;(5)規(guī)定限定配置狀態(tài)中的一個變成有效配置狀態(tài)。
67.如權(quán)利要求66所述的編程方法,其特征在于所述計算設(shè)備被定義為第一計算設(shè)備;所述編程方法還包括通過通信連接從與所述第一計算設(shè)備距離遙遠的第二計算設(shè)備接收表示上述步驟的數(shù)字數(shù)據(jù)的步驟。
68.如權(quán)利要求66所述的編程方法,還包括規(guī)定一種或多種配置狀態(tài)以構(gòu)成一種輸出配置的步驟。
69.如權(quán)利要求68所述的編程方法,其特征在于所述輸出配置定義了所述計算設(shè)備的一個或多個輸出終端的輸出條件。
70.如權(quán)利要求68所述的編程方法,其特征在于所述輸出配置定義了由所述計算設(shè)備產(chǎn)生的虛擬計算輸出。
71.如權(quán)利要求66所述的編程方法,還包括將配置狀態(tài)和路徑說明轉(zhuǎn)換成所述計算設(shè)備可執(zhí)行的數(shù)字數(shù)據(jù)的步驟。
72.如權(quán)利要求66所述的編程方法,還包括用于轉(zhuǎn)換利用不同格式的第二編程語言的配置狀態(tài)和路徑的至少部分說明的步驟。
73.如權(quán)利要求66所述的編程方法,其特征在于x種配置狀態(tài)和y個路徑不必按照順序彼此依次列出。
74.如權(quán)利要求66所述的編程方法,還包括提供一個用于識別由所述步驟組成的程序位置的關(guān)鍵字的步驟。
75.如權(quán)利要求66所述的編程方法,還包括將步驟(1)中的配置狀態(tài)分成一個或多個表格的步驟,每個表格中有一種配置狀態(tài)被規(guī)定為有效。
76.如權(quán)利要求66所述的編程方法,還包括構(gòu)成一個獨立的用于確定由步驟(1)到(7)組成的程序是有效還是無效的表格的步驟。
77.如權(quán)利要求66所述的編程方法,還包括下列步驟(6)提供一個預(yù)先定義的指令集以便對路徑和配置狀態(tài)編程;(7)定義用于表示步驟(6)中的指令集的一個特定指令的替換表達式;(8)用替換表達式編寫程序;以及(9)將所述程序配置成所述計算裝置可執(zhí)行的程序。
78.如權(quán)利要求77所述的編程方法,其特征在于步驟(9)是一個由編輯器、替換表達式和相應(yīng)的特定指令執(zhí)行的翻譯過程。
79.如權(quán)利要求66所述的方法,還包括規(guī)定一種配置狀態(tài)為有效的步驟。
80.如權(quán)利要求66所述的方法,其特征在于將一個路徑定義為在初始化時將被執(zhí)行的缺省路徑。
81.一種用于在一個計算設(shè)備的程序列表中識別預(yù)定類型的字(wordings)的編程方法,包括從多種預(yù)定字格式(wording style)選擇中選擇一種字格式的步驟。
82.如權(quán)利要求81所述的編程方法,還包括步驟(1)定義x種配置狀態(tài),所述配置狀態(tài)中的至少一種定義了一個或多個限定條件;(2)定義由所述計算設(shè)備執(zhí)行的y個路徑;以及(3)當滿足一個具體限定條件時,向所述計算設(shè)備分配一個路徑以執(zhí)行。
83.如權(quán)利要求81所述的編程方法,其特征在于通過一個具有關(guān)鍵字的表格來定義所述字格式。
84.如權(quán)利要求81所述的編程方法,其特征在于所述預(yù)定字型被配置成高亮度的用戶定制標號。
85.如權(quán)利要求81所述的編程方法,還包括形成兩組或多組用戶定制字格式并且其中一組被定義為有效的步驟。
86.一種用于對響應(yīng)一個或多個限定條件執(zhí)行一個或多個路徑的計算設(shè)備進行編程的編程方法;所述編程方法包括步驟(1)規(guī)定x種配置狀態(tài),其中x是一個大于等于1的整數(shù);(2)規(guī)定一個或多個到于所述x種配置狀態(tài)中的至少一種的限定標號;(3)使步驟(2)中的限定標號指向一個用于描述限定條件或所述標注所表示的條件的獨立的表達式;以及(4)規(guī)定y個可執(zhí)行路徑,其中響應(yīng)步驟(3)中規(guī)定限定條件來執(zhí)行至少一個路徑。
87.一種計算裝置,包括用于執(zhí)行一個程序的計算裝置;用于訪問于一個遠程計算設(shè)備相連接的通信連接的裝置;以及用于存儲所述計算裝置或所述遠程計算設(shè)備所執(zhí)行的數(shù)字數(shù)據(jù)的存儲裝置;其中所述數(shù)字數(shù)據(jù)包括具有x種配置狀態(tài)和y個路徑的表格格式程序表示;所述配置狀態(tài)中的至少一種定義了一個或多個限定條件;而在滿足一個提單限定條件時,所述計算裝置執(zhí)行所述路徑中的一個。
全文摘要
適用于利用多種語言并通過因特網(wǎng)和網(wǎng)絡(luò)環(huán)境下載的表格格式編程方法提供了一個用于定義定制表達式的可選表格(103,200),一個用于規(guī)定多任務(wù)應(yīng)用的可選表格(105,260),一個用于規(guī)定標號的打印字格式的可選表格(104,230)以及一個與路徑表(116)交互作用的配置狀態(tài)表(113)。一個可選限定表(112)定義了一種輸入配置狀態(tài)的限定條件。硬件實施包括一個用于處理表格格式編程過程并釋放主處理器用于其它應(yīng)用的協(xié)處理器。在編程過程中,程序員提供了用戶定制標號來描述所需的功能和操作。這些標號還可用于其它程序組中開發(fā)。
文檔編號G06F9/44GK1250907SQ99120898
公開日2000年4月19日 申請日期1999年10月8日 優(yōu)先權(quán)日1998年10月9日
發(fā)明者林亞夫 申請人:林亞夫