用于使用圖形對象來封裝編程語言的自適應(yīng)自修改系統(tǒng)。封裝系統(tǒng)是有直觀基礎(chǔ)的并適于不合格的用戶。以使用描述被執(zhí)行的函數(shù)或功能的流程圖的圖形結(jié)構(gòu)這種創(chuàng)新且新穎的方式來編寫封裝。
背景技術(shù):
:封裝基于被請求被可視化的編程語言,同時可能并不包含該文檔中所描述的所有方面,而僅包含原始編程語言所需要的那些方面。封裝系統(tǒng)是有直觀基礎(chǔ)的并適于不合格的用戶。以使用描述被執(zhí)行函數(shù)并能夠代表許多類型的需求的流程圖的圖形結(jié)構(gòu)來執(zhí)行封裝。封裝本身在允許對封裝方案的創(chuàng)建、解釋和調(diào)試的完全圖形環(huán)境中被完成。例如,電話通信程序?qū)⒕哂幸韵陆Y(jié)構(gòu):非技術(shù)用戶或具有非邏輯技能的用戶將能夠使用如以上撥號計劃組件調(diào)色板中以及拖動ivr(交互式語音應(yīng)答)組件的下圖中所描述的一種函數(shù)的容器圖。封裝由向用戶提供適合其理解能力的工具的不同級別組成。例如,技術(shù)用戶或具有邏輯技能的用戶將能夠使用諸如“如果”符號、復(fù)合循環(huán)句子等的邏輯函數(shù)。當(dāng)在特定系統(tǒng)上被使用時,本申請中所提出的本發(fā)明可以是平臺無關(guān)的。例如,對于電話通信系統(tǒng),可以獨立于特定電話交換臺的類型或任何其他相關(guān)基礎(chǔ)設(shè)施來定義撥號計劃的組件,因此能夠適應(yīng)許多類型的電話系統(tǒng),因此,它提出了在行業(yè)編寫代碼的新的方式。技術(shù)實現(xiàn)要素:對編程語言的封裝可以通過外部模塊來擴展,外部模塊實際上通過將由非熟練用戶使用的圖形外表來封裝打算給技術(shù)用戶使用的原始編程方法或函數(shù)。如果封裝能夠表示若干種被封裝的編程語言,則可以使用相同的較高級別表示來生成程序或與支持這些語言的系統(tǒng)的接口,其與使用的封裝語言無關(guān)。一般說明:·連接器是包括各種行為表、相似比較能力、跳轉(zhuǎn)表和連接執(zhí)行所需的任何其他函數(shù)的一種類。連接器具有定義其僅由連接器所需的能力的基礎(chǔ)類?!と萜魇前ㄌ幚硭袑ο笾g的中轉(zhuǎn)邏輯的對象的特定的類。容器實際上是一種執(zhí)行對象?!ごa-對象背后的代碼可以利用封裝接口或編程語言被編寫,假如在后一種情況下,程序員將定義附加到特定代碼的封裝圖形用戶界面(gui)。在這種情況下,相同的gui可以與執(zhí)行相同函數(shù)的不同編程語言一起被使用?!ぷ止?jié)碼-系統(tǒng)提供執(zhí)行字節(jié)碼的虛擬機。還必須為其提供對象的字節(jié)碼轉(zhuǎn)換。這允許系統(tǒng)實際解釋對象,而不需要轉(zhuǎn)換被封裝的代碼。解釋器具有垃圾收集(gc)系統(tǒng)和對系統(tǒng)調(diào)用的支持。主要實現(xiàn)包括三個封裝級別:-高級別,其允許針對非技術(shù)用戶的圖形函數(shù)的執(zhí)行,從而使用由描述如流程圖中的動作流的線來鏈接的預(yù)定義圖形對象。-低級別,其允許針對技術(shù)用戶執(zhí)行圖形邏輯函數(shù),能夠遵循編程命令。低級別也使用如流程圖中通過線來鏈接的圖形對象。-應(yīng)用程序接口(api)級別,其使得能夠運行不同的命令,通過該命令可以被構(gòu)建用于最高級別中的對象或繪圖。封裝只需要用戶寫諸如函數(shù)參數(shù)的最小的文本。每個特定目標(biāo)在被添加到基本封裝中時都附帶了基礎(chǔ)庫的重要集合。例如,對于電話通信領(lǐng)域,處理超文本傳輸協(xié)議(http)、傳真(fax)、簡單郵件傳輸協(xié)議(smtp)的庫,處理各種媒介的庫以及處理不同配置的數(shù)據(jù)庫(諸如鍵值,文檔庫,結(jié)構(gòu)化查詢語言(sql)和其他類型)的庫。此外,還將提供正則表達式評估和其他基礎(chǔ)庫。例如,這些函數(shù)使得能夠創(chuàng)建經(jīng)由表征狀態(tài)轉(zhuǎn)移(rest)報告的工具,從而允許在需要時取回某些數(shù)據(jù)。此外,在低級別中,可以發(fā)送和取回作為流程圖的部分的各種變量。自動執(zhí)行api的圖形表示,但是必須由api提供者創(chuàng)建合適繪圖的實現(xiàn)。這種通過用戶輸入的實現(xiàn)對于所需的函數(shù)是唯一的。封裝的表達具有處理數(shù)據(jù)的若干方式:·變量-存在三種類型的變量:ο局部變量-在本地容器中存儲數(shù)據(jù)的方式,同時該數(shù)據(jù)在特定容器之外不可用。ο線程變量-只要線程存在就存在的變量。一旦線程的功能能力和性能被終止,該變量就停止存在。每個線程在運行時將包含該變量的獨立的實例。ο全局變量-在程序的所有階段都可以訪問的只讀或讀寫變量,該變量一旦被改變,新的數(shù)據(jù)對于使用該變量的程序的每個部分都可訪問?!し治龉δ芑蚝瘮?shù)-能夠分析所接收的數(shù)據(jù)的功能:ο使用正則表達式(regex)分析文本-實施不同的regex引擎ο分析變量內(nèi)容ο文本比較ο時間比較ο數(shù)值范圍比較·復(fù)制變量內(nèi)容(從局部容器變量到線程變量,從線程變量到全局變量等)ο觸發(fā)被引起的事件,系統(tǒng)將觸發(fā)回調(diào)。ο終止執(zhí)行的能力?!み壿嬚Z法和操作的執(zhí)行。ο“if”語法-條件適應(yīng)的情況。ο“unless”語法-條件不適應(yīng)的情況。ο執(zhí)行“while”循環(huán)-檢查作為進入循環(huán)的部分的條件。ο執(zhí)行“for”循環(huán)-執(zhí)行預(yù)定數(shù)目的迭代。ο執(zhí)行“foreach”循環(huán)-對數(shù)據(jù)執(zhí)行迭代。ο執(zhí)行“repeat”循環(huán)-在每個周期完成時執(zhí)行評估時執(zhí)行循環(huán)。ο執(zhí)行“goto”函數(shù)-有條件及無條件。ο執(zhí)行“case”比較。ο執(zhí)行“retry”調(diào)用-重新執(zhí)行代碼塊。ο執(zhí)行“redo”調(diào)用-在錯誤的情況下嘗試重新執(zhí)行函數(shù)。支持操作者進行數(shù)據(jù)比較以及按位操作。·處理字符串的函數(shù)·數(shù)學(xué)函數(shù)·處理日期和時間的函數(shù)以圖形的方式表示以上選項。它們在用戶友好的流程圖被呈現(xiàn),使得非技術(shù)用戶而非理解編程概念的用戶能夠遵循發(fā)生的情況。例如,圖示出了regex如何工作:^([0-29]{1,})其圖形表示:可以看出,繪圖比regex表達式更容易被理解。此外,黑色箭頭指向條件的方向,這意味著字符串處理將朝哪個方向移動,因為regex可能被命令影響向前或向后。選擇正確的模式匹配包括選擇適當(dāng)?shù)牧鞒虉D元素。例如,命令“至少”(l)可以饋送有“多少次”。如果它是指一次(“2”),則該命令使得可以出現(xiàn)一個重復(fù)的模式。當(dāng)提到最小一次和最大10次(“3”)時,第三個命令使得能夠饋送兩個值。這些命令使視覺方法中的思考,而不是以下編程語言:(1){1,}(2){1}(3){1,10}數(shù)據(jù)的這種圖形表示有助于甚至高級用戶從這些流程圖中受益,并且非技術(shù)用戶可以編寫復(fù)雜的regex自動化。由于編程語言的封裝基于流程圖系統(tǒng),本發(fā)明提供了表示數(shù)據(jù)流的各種類型的連接器。例如,不熟悉術(shù)語“循環(huán)”的用戶可以接收具有內(nèi)部條件的圓形連接器,該內(nèi)部條件指示何時執(zhí)行該執(zhí)行,并且何時停止?!皵嚅_”連接器與重復(fù)連接器不同。檢查數(shù)據(jù)的每個命令(例如“case”)具有用于比較值的連接器以及在沒有找到數(shù)據(jù)時的默認(rèn)動作。連接器表示如何處理數(shù)據(jù)的方式。你可以發(fā)現(xiàn)諸如以下的連接器:·直接執(zhí)行(默認(rèn)選項)·跳轉(zhuǎn)連接器(類似于“goto”)·布爾型連接器(類似于“if”)·多重選擇連接器(類似于“case”)·循環(huán)連接-改變無論位于開始還是結(jié)束的條件的類型的選擇,以重復(fù)直到布爾型聲明允許其退出(類似于“while”和“repeat”)·具有編號的循環(huán)連接器(類似于“for”)·錯誤時的循環(huán)執(zhí)行(類似于“redo”)·無響應(yīng)情況下的循環(huán)執(zhí)行(類似于“retry”)以上所有連接器必須針對不了解或不理解復(fù)雜的邏輯函數(shù)的不合格的用戶被表達。在下面,這些函數(shù)被轉(zhuǎn)換成封裝語言的較低級別。容器是將一定數(shù)量的函數(shù)組裝到一個組的方式。例如,邏輯函數(shù)是種容器,其使用連接器聚集各種可能性。必須被聚集的每個函數(shù)(例如“case”)都具有容器。當(dāng)用戶想要創(chuàng)建一組必須被執(zhí)行的命令時,他必須創(chuàng)建這樣的容器。當(dāng)特定函數(shù)引導(dǎo)流到該容器時,命令組被應(yīng)用,并只有過后才繼續(xù)到其他函數(shù)。通過“跳轉(zhuǎn)”連接器來連接容器內(nèi)部的命令到外部函數(shù)是可能的。默認(rèn)情況下局部變量的范圍僅僅包括容器。按照函數(shù)的期待在容器之間傳輸值是可能的。因此,容器具有函數(shù)的行為,接收“參數(shù)”并返回值。編程設(shè)置是圖形化的,從而使能圖形元素的使用。所描述的編程設(shè)置還工作在分布式網(wǎng)絡(luò)中。圖形化地繪制另一個用戶在另一個完全不同的系統(tǒng)上實際實施的程序元素是可能的。高級別圖形封裝通過隱藏允許數(shù)據(jù)流分發(fā)的實際協(xié)議來使能輕松進行協(xié)作工作,并且具有增加的選項以實施任何現(xiàn)有的或新的通信協(xié)議。編程設(shè)置包括圖形交互調(diào)試器。如果以電話為例,當(dāng)應(yīng)用調(diào)試器時,在被呼叫期間在ivr中鍵入數(shù)字1應(yīng)用預(yù)定義的檢查過程,檢查過程檢查其是否實際執(zhí)行用戶想要的函數(shù)。如果沒有,系統(tǒng)停止并警告用戶。關(guān)于圖形表示,調(diào)試器考慮允許設(shè)置圖形斷點,增加通過圖形過濾器的流,以及圖形化地標(biāo)記調(diào)試區(qū)域。此外,即使在調(diào)試器激活之前,封裝環(huán)境在創(chuàng)建一個具有預(yù)定義的任何問題的圖形流程圖時知道警告用戶。例如可以在執(zhí)行前標(biāo)識諸如使用非初始化變量,鍵入不兼容性和其他設(shè)計錯誤。使用方式:封裝編程的圖形表示是顯式系統(tǒng)的外表。這意味著圖形繪圖和知曉將圖形對象的含義轉(zhuǎn)換為命令集合的系統(tǒng)并列。能夠被轉(zhuǎn)換并被保護為字節(jié)碼的命令或函數(shù)的那些集合適用于各種編程語言,并具有將字節(jié)碼重新轉(zhuǎn)換為經(jīng)典編程語言的能力。系統(tǒng)本身是面向?qū)ο蟮?。系統(tǒng)中的每個編程元素都是知曉執(zhí)行某些動作的圖形表示類。每個類都包含一個定義其類別的特定字段。例如,“case”類具有一個將其定義為“case”的字段,并且不改變該字段的繼承其的每個連接的類都屬于“case”。這樣可以類似地定義作為連接器或容器的其他類。這些類被靈活構(gòu)造,允許混合類型行為、創(chuàng)建方法、創(chuàng)建構(gòu)造器和解構(gòu)器,并在需要時能夠繼承和覆蓋。表達式“構(gòu)造器”和“解構(gòu)器”是固定的,因此也可以對它們執(zhí)行繼承和覆蓋函數(shù)。只要具有指示其的特殊組件,就可以創(chuàng)建一個作為子進程或線程的類。每個對象都能夠創(chuàng)建對函數(shù)的回調(diào)。每個回調(diào)激活一個方法或另一個對象。為了創(chuàng)建具有接收值的能力的組件的圖形表示,必須存在指示哪些字段在圖形模式下是可用的一種方法。為了導(dǎo)出字段,該方法的名稱必須是唯一的。如果其不存在,則圖形組件不會呈現(xiàn)要饋送的字段。如果字段被導(dǎo)出,則必須實現(xiàn)的另一種方法是發(fā)送鍵入信息的方法。這些字段的特性是:·數(shù)據(jù)類型(整型、字符、二進制數(shù)據(jù)、附加類等)·數(shù)據(jù)驗證:ο數(shù)字范圍ο精確值組ο模板(如regex)ο預(yù)定義的值列表ο在某個位置的值確定(例如,第二個字符必須是a)ο純文本ο空值ο強制型字段的標(biāo)記如果創(chuàng)建低級別api,則可以下降到與程序系統(tǒng)類似的級別,然而,用戶接口將用作對象而不是過程特征。系統(tǒng)支持匿名類。默認(rèn)執(zhí)行類稱為“main”,并且它是未聲明的。如果編程語言支持的話,一個匿名類可以在運行時支持混合類型。每個對象可以具有其自己的命名空間,例如,創(chuàng)建一個命名空間是可能的,在“media”下聚集與媒介(media)相關(guān)的所有函數(shù)。因此,如果存在其他具有相同對象名稱的命名空間,則會根據(jù)每個命名空間創(chuàng)建的唯一添加值進行區(qū)分,從而防止重復(fù)。面向?qū)ο蟮木幊虒嵤┓绞绞沟媚軌騽?chuàng)建繼承。類的繼承使得能夠改變方法以及集成構(gòu)造器和解構(gòu)器。圖形表示本身就是一個對象,這意味著當(dāng)存在定義必要的屬性構(gòu)造器和解構(gòu)器來初始化并破壞對象的存儲器的一些字段時,圖形組件要被看作一個具有被看作轉(zhuǎn)換為方法的函數(shù)的集合的類。還必須實施一個實際運行的方法。在運行方法中,調(diào)用必要的函數(shù)和方法。對于連接器而言這也是真的。當(dāng)在屏幕上顯示圖形表示時,類-對象的實例被創(chuàng)建。對類執(zhí)行繼承和改變是可能的,因此,例如當(dāng)作取回值的類可以是輸入的父類。輸入類可以是case類的父類等。通用類繼承自主類,其通常定義“類”,并在大多數(shù)編程語言中被稱為“對象”。它不必被正式聲明。意思是說,如果它沒被正式聲明,它仍然包括這樣的繼承。這是基礎(chǔ)類,其包括最小存儲器管理,定義singleton的能力,以及必要時定義用于實現(xiàn)的強制字段和用于類轉(zhuǎn)移的各種rtti定義的能力。對于不支持對象(object)類的編程語言(如c),封裝系統(tǒng)將知道通過指向以該語言實施它的正確方式來轉(zhuǎn)換它并進行相應(yīng)的運轉(zhuǎn)。在定義對象時,也定義了對其所表示的編程語言的轉(zhuǎn)換。同樣地,例如如果它代表諸如多個專用分組交換機(pbx)的較高級別的解決方案,則到字節(jié)碼的轉(zhuǎn)換被定義。gui類也在封裝中被預(yù)定義,當(dāng)被繼承時其提供它是gui類以及它將如何在用戶界面中顯示的信息。如果類沒有繼承自gui類,那么該類將不會被顯示在系統(tǒng)上。當(dāng)前第1頁12