稱及順序;表格第一行足變換后的次列集的各數(shù)據(jù)的名稱及順序。其它行列可以是“1”、“0(或不填寫)”、“F”等?!癐”表示相應(yīng)行的數(shù)據(jù)直接傳給相應(yīng)列;“0”表示不傳遞數(shù)據(jù);“F”表示相應(yīng)行的數(shù)據(jù)通過變換F傳給相應(yīng)列。
[0033]表達(dá)式定義界面設(shè)計如附圖3所示,界面成表格形式。表格最左上角空格中為表達(dá)式名。表格第一列是數(shù)據(jù)名;表格的第一行是表達(dá)式,表達(dá)式的每一個變量占一列,運算符占一列:表格的第一行最后一列是表達(dá)式的計算結(jié)果,最后一列的其它行為空。其余的表格中,對應(yīng)算符的表格均應(yīng)為空。剩下的表格可以是“1”、“0(或不填寫)”、“F”等?!癐”表示相應(yīng)行的數(shù)據(jù)直接傳給相應(yīng)變量;“0”表示不傳遞數(shù)據(jù);“F”表示相應(yīng)行的數(shù)據(jù)通過變換F傳給相應(yīng)變量。
[0034]鏈接定義界面設(shè)計如附圖4所示,界面成表格形式。表格最左上角空格中為鏈接名。表格第一列是前驅(qū)模塊名;表格第一行是后繼模塊名。其它空格可以填寫“1”、“0(或不填)”、“K”、“D”、“H”、“B”等。其含義分別是,“I”表示對應(yīng)的行模塊的數(shù)據(jù)和控制直接鏈接到相應(yīng)的列模塊,是一種平凡的復(fù)合鏈接;“0”表示沒有鏈接;“K”表示對應(yīng)行列間僅有控制鏈接;“D”表示對應(yīng)行列間僅有數(shù)據(jù)鏈接;“H”表示對應(yīng)行列間是一個復(fù)合鏈接;“B”表示滿足條件時鏈接有效。其中“K”、“D”、“H”、“B”所表示的具體內(nèi)容可以借助其它界面詳細(xì)定義。當(dāng)鏈接一同與其前驅(qū)模塊、后繼模塊被命名后,它們的這個整體稱之為一個新的模塊。可以在程序的其它位置被引用。當(dāng)同一行中有多個控制標(biāo)記時,多個控制鏈接僅表示有多個后繼模塊將被引用,并不標(biāo)明引用模塊之間的先后順序。
[0035]同一個鏈接定義界面中控制鏈接可以出現(xiàn)在多行中,其表明程序具有并發(fā)或并行特征。因此需要有并發(fā)安全保證機制。可分為兩類,靜態(tài)并發(fā)安全保證和動態(tài)并發(fā)安全保證。靜態(tài)并發(fā)安全保證指程序在編輯、編寫時所作的并發(fā)安全檢查;動態(tài)并發(fā)安全保證指程序在運行時所作的死鎖預(yù)防\死鎖避免5和死鎖檢測與恢復(fù)6。靜態(tài)并發(fā)安全保證和動態(tài)并發(fā)安全保證可以分別使用上文提到的列集和運行時列集等數(shù)據(jù)結(jié)構(gòu)結(jié)合相應(yīng)策略和算法實現(xiàn)。
[0036]對于程序設(shè)計者,在程序編輯過程中可以加入一些策略,使兩個或多個前驅(qū)模塊的數(shù)據(jù)集完全產(chǎn)生后或同時占有這些資源時再將數(shù)據(jù)集發(fā)給后繼模塊。這一策略可以通過將關(guān)聯(lián)的數(shù)據(jù)列集合并生成新的數(shù)據(jù)列集來實現(xiàn)。這個合并后定義的新的數(shù)據(jù)列集不參與運行時數(shù)據(jù)傳遞,但表明數(shù)據(jù)同步關(guān)系。這樣可以避免死鎖。
[0037]約束管理
[0038]本專利所描述的數(shù)據(jù)驅(qū)動計算機語言,其編寫及編輯過程,如上所述,是基于一個個形式一致,含義各異的表格完成的。而對表格的內(nèi)容編輯人多是依賴系統(tǒng)中已有的模塊,并進行選擇和鏈接等操作,從而形成具有新功能的應(yīng)用程序。由于模塊的數(shù)據(jù)接口即適用的列集各異,所以在編輯界面中可以根據(jù)數(shù)據(jù)類型或模塊特點等因素,僅將可以適配的后繼模塊或相關(guān)表格顯示出來,方便編程者編輯程序。
【附圖說明】
7
[0039]圖1本發(fā)明所述“列集定義界面”示意圖
[0040]圖2本發(fā)明所述“列集變換界面”示意圖
[0041]圖3本發(fā)明所述“表達(dá)式定義界面”示意圖
[0042]圖4本發(fā)明所述“鏈接定義界面”示意圖
【具體實施方式】
[0043]具體實施時借助以下系統(tǒng)已有軟便件,系統(tǒng)AP1、數(shù)據(jù)庫系統(tǒng)API,一種編程語言(一般地C/C++或Java)。通過以下過程建立本發(fā)明所述計算機語言。
[0044]定義實現(xiàn)基礎(chǔ)輸入模塊這些模塊將涵蓋系統(tǒng)所能接收的所有數(shù)據(jù),并從標(biāo)準(zhǔn)的數(shù)據(jù)接口產(chǎn)生數(shù)據(jù)輸出,供后繼模塊使用。
[0045]定義實現(xiàn)基礎(chǔ)輸出模塊這些模塊將產(chǎn)生形式各異的輸出效果。
[0046]定義以上基礎(chǔ)模塊所使用到的列集及與模塊的關(guān)聯(lián)關(guān)系在隨后的應(yīng)用中便可以使用這些數(shù)據(jù),處理、約束相關(guān)程序設(shè)計。
[0047]實現(xiàn)大量的算法模塊及靈活的數(shù)據(jù)接口在各行各業(yè)中有大量的成熟的算法存在。在這里將這些算法重新實現(xiàn)為具有標(biāo)準(zhǔn)接口可以被靈活引用的模塊。隨同程序模塊的實現(xiàn),須將典型用例、文檔等一同實現(xiàn)。以便參考使用。
[0048]按前述方法實現(xiàn)人機交互編程,并實現(xiàn)程序生成功能。
【主權(quán)項】
1.一種數(shù)據(jù)驅(qū)動計算機語言設(shè)計、實現(xiàn)、方法,其特征在于,當(dāng)有新數(shù)據(jù)產(chǎn)生時就有相應(yīng)的消費模塊用于該數(shù)據(jù)的處理(變換),當(dāng)處理進行完成后,數(shù)據(jù)也將隨之消亡。即程序的執(zhí)行是由數(shù)據(jù)的產(chǎn)生、變換、消亡不斷驅(qū)動的。由一些模塊通過鏈接(分為數(shù)據(jù)鏈接、控制鏈接、條件鏈接和復(fù)合鏈接等)形成彼此間有一定的執(zhí)行順序,具有一定的功能和意義的程序。
2.繼權(quán)利要求1,其特征還在于,系統(tǒng)中有基礎(chǔ)輸入模塊和基礎(chǔ)的輸出模塊,以及可選數(shù)最和類型的變換模塊。而編程過程可以歸結(jié)為一系列的表格內(nèi)容的確定、展開與細(xì)化。程序?qū)崿F(xiàn)和編輯的線索可以是“模塊導(dǎo)引程序設(shè)計”方式,也可以是“數(shù)據(jù)導(dǎo)引程序設(shè)計”方式。
3.根據(jù)權(quán)利要求1,其特征在于模塊間表達(dá)和傳遞數(shù)據(jù)時,數(shù)據(jù)采用列集的組織方式;當(dāng)數(shù)據(jù)組織有不同時,可以通過列集變換實現(xiàn)數(shù)據(jù)結(jié)構(gòu)的變換。包含運行時數(shù)據(jù)的列集稱為運行時列集,列集和運行時列集可以起到數(shù)據(jù)同步的作用。
4.根據(jù)權(quán)利要求2,其特征在于,表達(dá)式定義采用擴展的列集變換形式將數(shù)據(jù)與表達(dá)式中的各變量建立對應(yīng)關(guān)系。
5.根據(jù)權(quán)利要求1,其特征在于,鏈接將直接前驅(qū)模塊和直接后繼模塊聯(lián)系起來。鏈接有“空”鏈接,即無鏈接;平凡的復(fù)合鏈接,即數(shù)據(jù)不加變換地通控制一起傳遞到后繼模塊;控制鏈接,即只傳遞控制到后繼模塊;數(shù)據(jù)鏈接,僅傳遞數(shù)據(jù)到后繼模塊;復(fù)合鏈接,不僅傳遞控制而且傳遞數(shù)據(jù)到后繼模塊;條件控制鏈接,僅在條件滿足時傳遞控制;條件復(fù)合鏈接,僅在條件滿足時既傳遞控制又傳遞數(shù)據(jù)。復(fù)合鏈接與數(shù)據(jù)鏈接,可以進一步的展開、細(xì)化、定義,當(dāng)無進一步操作時,即認(rèn)為與平凡鏈接有同等效果。
6.根據(jù)權(quán)利要求5,其特征在于,當(dāng)一個或多個鏈接一同與其前驅(qū)模塊、后繼模塊被命名后,它們的這個整體稱之為一個新的模塊。通過這個名字,該模塊可以在其它位置被引用。
7.根據(jù)權(quán)利要求1、3,其特征在于,一方面,程序運行時可以動態(tài)生成新的數(shù)據(jù)列集供后繼模塊使用;另一方面,程序運行時可以使列集數(shù)據(jù)消亡。當(dāng)一個程序所屬的所有數(shù)據(jù)全都消亡時,程序即結(jié)束。
8.根據(jù)權(quán)利要求1、2,其特征在于,一個程序中可能出現(xiàn)兩個或兩個以上控制路徑并行的情況。這時程序的行為是并行或并發(fā)的。
9.根據(jù)權(quán)利要求8,其特征在于,程序設(shè)計時通過定義“合并”的列集,使數(shù)據(jù)得到同步。除此外,程序在編寫、編輯時可以進行靜態(tài)并發(fā)安全驗證,在運行時可以進行動態(tài)并發(fā)安全保證。
10.繼權(quán)利要求2,其特征還在于程序編寫、編輯環(huán)境可以利用數(shù)據(jù)、模塊之間的關(guān)聯(lián)關(guān)系進行約束管理,方便程序正確編寫。
【專利摘要】本發(fā)明涉及一種計算機語言的設(shè)計、實現(xiàn)和方法。主要包括設(shè)計、實現(xiàn)和貫穿其中的工程技術(shù)方法。其特點是當(dāng)有新數(shù)據(jù)產(chǎn)生時就有相應(yīng)的消費模塊用于該數(shù)據(jù)的處理(變換),當(dāng)處理進行完成后,數(shù)據(jù)也將隨之消亡。所以程序的執(zhí)行是由新數(shù)據(jù)的產(chǎn)生、變換、消亡作為“推動力”的,即數(shù)據(jù)驅(qū)動。因此本發(fā)明稱為“數(shù)據(jù)驅(qū)動計算機語言”。本發(fā)明的突出特點是程序的編寫與編輯對鍵盤鼠標(biāo)的依賴很??;采用列集概念規(guī)范數(shù)據(jù)接口,靈活的數(shù)據(jù)及引用關(guān)系表達(dá),一致的人機界面和靈活的語義表達(dá)。其優(yōu)點是易于在模塊層面上快速編程,實現(xiàn)應(yīng)用;提高模塊的重用率和人機交互的靈活性。
【IPC分類】G06F9-44
【公開號】CN104808972
【申請?zhí)枴緾N201410035990
【發(fā)明人】張炯
【申請人】張炯
【公開日】2015年7月29日
【申請日】2014年1月26日