專利名稱:圖形化開發(fā)程序的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)一種程序開發(fā)系統(tǒng)及方法,特別是關(guān)于一種以流程圖方式開發(fā)程序的系統(tǒng)及方法。
背景技術(shù):
在電腦領(lǐng)域中,有許多種程序語言可供用來撰寫程序,常用的程序語言如C語言、組合語言及BASIC語言等。圖1是表示使用程序碼直接撰寫一組合語言程序的示意圖,其是以符合組合語言的語法及符號一行一行地撰寫程序。但是使用程序碼直接撰寫程序易造成許多問題。例如,當(dāng)開發(fā)的程序較大時,由于指令太繁多且語法規(guī)定嚴(yán)格,使撰寫程序者容易用錯指令或語法,而撰寫者卻未發(fā)現(xiàn)撰寫該程序碼時所犯的錯誤而繼續(xù)撰寫,當(dāng)程序碼撰寫完成進(jìn)行測試或使用時,才發(fā)現(xiàn)程序有錯(bug),而必須偵錯及修改。又,因為程序太長,所以在檢閱及修改時,所耗費的時間非常久,偵錯步驟非常不容易,也容易有疏忽,且若非該程序開發(fā)者,要檢閱、修改及維護(hù)該程序,亦非常困難。
特別是在發(fā)展開發(fā)系統(tǒng)時,傳統(tǒng)上利用編譯器來寫微控制器的程序碼,再將程序碼進(jìn)行組合(assembler)、連結(jié)(linker)、排除故障(debugger)等動作。而且是以“行”為觀點,一行行來撰寫程序及操作,雖然有巨集的使用,一旦系統(tǒng)復(fù)雜度增加或是較長的程序碼,對于開發(fā)者或維護(hù)者將是很大的負(fù)擔(dān),程序?qū)灰妆焕斫馀c閱讀。能夠更有系統(tǒng)與流程來開發(fā),和及時提醒使用者可能會發(fā)生錯誤,是傳統(tǒng)開發(fā)環(huán)境所缺乏的。
為了使開發(fā)程序更容易,且讓撰寫者更容易尋找程序錯誤及修改,減少檢錯及修改的時間,并為了讓非撰寫者更容易了解程序及維護(hù),需要一種新的開發(fā)程序用的系統(tǒng)及方法。
發(fā)明內(nèi)容
本發(fā)明的主要目的即在提出一種開發(fā)程序用的系統(tǒng)及方法,主要是利用許多簡易的圖形操作介面來替代及轉(zhuǎn)換傳統(tǒng)的程序開發(fā)。
本發(fā)明是利用流程圖系統(tǒng)來撰寫程序,使開發(fā)成程序變得更加容易,不會發(fā)生上述中傳統(tǒng)開發(fā)程序碼所產(chǎn)生的開發(fā)困難、不易檢閱、以及維護(hù)管理不易。
采用本發(fā)明的系統(tǒng)及方法,除了讓使用者更有系統(tǒng)地開發(fā)程序及增加程序可讀性之外,選具有檢查內(nèi)部程序碼、計算循環(huán)(回圈)機器周期及兩程序區(qū)段之間的機器周期、顯示各寄存器的狀態(tài)及追蹤程序碼等功用。根據(jù)本發(fā)明,一種開發(fā)程序的系統(tǒng)包括一數(shù)據(jù)(資料)裝置提供各種圖形介面以替換一行行的程序碼,一操作裝置把各個圖形介面組合成一流程圖,以及一轉(zhuǎn)換裝置把各圖形所組合的流程圖轉(zhuǎn)換成程序碼。
圖1是一組合語言程序的示意圖;圖2是表示程序碼與圖形介面之間的對應(yīng);圖3是表示錯誤與正確的程序碼;圖4是表示以流程圖進(jìn)行分段測試;圖5是表示以流程圖計算機器周期;圖6是表示跟蹤寄存器的變化;圖7是表示開發(fā)程序用的系統(tǒng)組成;及圖8是表示本發(fā)明所使用的觀點。
具體實施例方式
以下實施例是為說明實施本發(fā)明的最佳實施例,以便本領(lǐng)域的技術(shù)人員能了解本發(fā)明的內(nèi)容并據(jù)以實施。
現(xiàn)在對本發(fā)明附圖中的圖號說明如下10圖形介面 11程序碼13流程圖 12程序區(qū)段14圖形介面 16程序區(qū)段18圖形介面 20圖形介面22程序區(qū)段 24程序區(qū)段26程序區(qū)段 28圖形介面
30程序區(qū)段 32程序區(qū)段34圖形介面 36圖形介面38程序區(qū)段 40箭頭42程序區(qū)段 44程序區(qū)段46流程圖 48圖形介面50圖形介面 52圖形介面54圖形介面 56接點58接點 60接點62圖形介面 64流程圖66流程圖 68寄存器A的操作70寄存器A的操作 72寄存器A的操作74圖形介面 76圖形介面78圖形介面 80程序碼82從程序碼到圖形的轉(zhuǎn)換84從圖形到程序碼的轉(zhuǎn)換86圖形數(shù)據(jù)結(jié)構(gòu) 88顯示流程圖90使用者介面 92儲存檔案94機器語言階段 96程序碼語言階段98流程圖階段以圖1中所提供的簡單組合語言程序11為例,根據(jù)本發(fā)明,首先提供一圖形界面庫,該界面庫包括許多圖形介面,每一圖形介面對應(yīng)至少一函數(shù)或程序區(qū)段。如圖2所示,從圖形界面庫中選取一圖形介面10,選取程序碼“ORG 0”為一程序區(qū)段12與圖形介面10相對應(yīng),然后再選取一圖形介面14,其對應(yīng)程序區(qū)段16的程序碼“MOV A,@ 0x11”及“IOW 0x0E”,接著選兩個圖形介面18及20各代表調(diào)用(呼叫)函數(shù)的程序區(qū)段22及24,而程序碼分別為“CALL Fun1”及“CALL Fun2”,接著下一程序區(qū)段26的程序碼“STARTNOP”是表示為執(zhí)行另一程序區(qū)段26,所以以輸入指令“START”來表示,選出一圖形介面28輸入程序區(qū)段26的程序碼“MOV A,@ 0x00”及“MOV 0x07,A”,接著下一程序區(qū)段30及32的程序碼“WAITJBS0x05,2”及“JMP WAIT”是表示有一程序碼要跳躍到“WAIT”的程序區(qū)段30來作循環(huán)(回圈),所以選一圖形介面34表示循環(huán)(回圈),接著在圖形界面庫中選出一圖形介面36選取程序區(qū)段38輸入“MOV A,0xff”的程序碼,而每個圖形介面之間,都以一箭頭40連接,表示流程操作程序。圖2中的流程圖13即表示圖1的程序11,其中每個圖形介面都與程序11當(dāng)中的某一程序區(qū)段相互對應(yīng)。然后把這些圖形介面組成的流程圖13利用一轉(zhuǎn)換裝置轉(zhuǎn)換成程序11的程序碼后,即可輸入電腦中執(zhí)行。如此,以流程圖的方式來開發(fā)程序,將也變得簡單、快速且容易達(dá)成。
另一種應(yīng)用是在撰寫程序碼后,將程序分割為許多程序區(qū)段,再轉(zhuǎn)換為流程圖,例如,從圖1的程序11轉(zhuǎn)換為圖2的流程圖13。這將使得后續(xù)的程序偵錯及閱讀變得容易。例如,在程序碼中含有一錯誤指令,如圖3所示,程序區(qū)段42中的程序碼“MOA A,@ 0x11”為一錯誤指令,則系統(tǒng)會表示這個指令錯誤且要求如程序區(qū)段44的正確程序碼“MOV A,@ 0x11”。又例如,當(dāng)存在一跳轉(zhuǎn)(跳躍)程序碼,卻跳轉(zhuǎn)至不符合(不合)中斷子(副)程序、子程序內(nèi)部或是跨頁的情況時,則系統(tǒng)會提出警告。
由于把程序碼劃分為許多區(qū)段,測試及偵錯變得更容易。如圖4所示,程序碼被轉(zhuǎn)換為流程圖46之后,可以分區(qū)段逐次或隨機進(jìn)行測試。圖形介面48、50及52表示不同的程序區(qū)段,這些圖形介面48、50及52結(jié)合在一起形成一流程圖46,若想測試部分程序,可以把其中單一圖形介面48單獨進(jìn)行測試,而圖形介面48測試完再進(jìn)行下一圖形介面50的測試,依此類推。
若要計算機器周期,如圖5所示,從流程圖64取出圖形介面54的上、下兩接點56及58,經(jīng)過一計算裝置就能計算該程序區(qū)段兩點56及58之間的機器周期T1,若要計算循環(huán)(回圈)機器周期,也是取出圖形介面62的上、下兩接點58及60,而計算裝置就把循環(huán)(回圈)周期ΔT乘以一變量N,變量N表示作循環(huán)(回圈)的次數(shù),而計算機器周期T2=ΔT×N。
若要跟蹤(追蹤)各寄存器的狀態(tài),以圖6所示為例,跟蹤寄存器A的變化,如方塊68、70及72所示,以一跟蹤裝置可以從圖形介面74、76及78中所輸入的程序區(qū)段中的程序碼檢知寄存器A的內(nèi)容,從其中發(fā)現(xiàn)寄存器A的變化,確認(rèn)是否有未預(yù)料的狀況出現(xiàn)。
如圖7所示,本開發(fā)程序用的系統(tǒng)96含有四個主要處理程序,而且使用定義的圖形數(shù)據(jù)結(jié)構(gòu)86。方塊80表示程序碼,方塊82及84分別表示(a)從程序碼轉(zhuǎn)換到圖形及(b)從圖形轉(zhuǎn)換到程序碼,而方塊88表示(c)將收集的圖形數(shù)據(jù)結(jié)構(gòu)86以圖形顯示在電腦屏幕上,呈現(xiàn)完成的流程圖,方塊90表示(d)抓取從使用者介面來的信息,得知使用者對圖形介面的操作,例如點取、新增、刪除圖形。此外,系統(tǒng)96還包括方塊92,表示將圖形數(shù)據(jù)結(jié)構(gòu)儲存為檔案或從檔案中讀取圖形數(shù)據(jù)結(jié)構(gòu)86。
本發(fā)明以流程圖觀點來開發(fā)組合語言的程序,建立與傳統(tǒng)程序碼的橋梁,亦即用更高級的觀點去發(fā)展開發(fā)環(huán)境,如圖8所示,其中,低級的語言為機器語言階段94,接下來為程序碼語言階段96,最高級的是利用流程圖階段98來撰寫程序。本發(fā)明以圖形介面的操作來開發(fā)程序,使得開發(fā)過程變得容易且可靠性提高,后續(xù)的修改及維護(hù)也更加簡單。
權(quán)利要求
1.一種開發(fā)程序用的系統(tǒng),包括一圖形界面庫,提供許多圖形介面,每一圖形介面對應(yīng)至少一函數(shù)或程序區(qū)段;一操作裝置,用于從該圖形界面庫選取圖形介面而組合一流程圖;和一轉(zhuǎn)換裝置,將該流程圖轉(zhuǎn)換為一套程序碼。
2.如權(quán)利要求1的開發(fā)程序用的系統(tǒng),還包括一反轉(zhuǎn)換裝置,將該程序碼轉(zhuǎn)換為該流程圖。
3.如權(quán)利要求1的開發(fā)程序用的系統(tǒng),還包括一顯示裝置,以顯示該許多圖形介面及流程圖。
4.如權(quán)利要求1的開發(fā)程序用的系統(tǒng),還包括一判斷裝置,以判斷指令、函數(shù)及程序區(qū)段是否正確。
5.如權(quán)利要求1的開發(fā)程序用的系統(tǒng),還包括一除錯裝置,以執(zhí)行故障排除及檢查程序區(qū)段。
6.如權(quán)利要求1的開發(fā)程序用的系統(tǒng),還包括一周期裝置,以計算機器周期。
7.如權(quán)利要求1的開發(fā)程序用的系統(tǒng),還包括一跟蹤裝置,以跟蹤寄存器、存儲器及各程序區(qū)段的狀態(tài)。
8.一種開發(fā)程序的方法,包括下列步驟定義許多圖形介面的數(shù)據(jù)結(jié)構(gòu);選取該許多圖形介面以組合一流程圖;以及將該流程圖轉(zhuǎn)換為一套程序碼。
9.一種開發(fā)程序的方法,包括下列步驟將一套程序碼分割成為許多程序區(qū)段;以及將每一程序區(qū)段以一圖形介面表示而成為一流程圖。
10.如權(quán)利要求9的開發(fā)程序的方法,還包括對該流程圖中單一圖形介面進(jìn)行測試。
11.如權(quán)利要求9的開發(fā)程序的方法,還包括對該流程圖中的二接點之間計算機器周期。
12.如權(quán)利要求9的開發(fā)程序的方法,還包括跟蹤該流程圖中的寄存器、存儲器及程序區(qū)段的狀態(tài)。
13.如權(quán)利要求9的開發(fā)程序的方法,還包括將該流程圖轉(zhuǎn)換為程序碼。
全文摘要
本發(fā)明公開一種以流程圖方式開發(fā)程序的系統(tǒng)及方法。以往撰寫程序者是直接利用程序碼來撰寫程序,易發(fā)生程序復(fù)雜度增加,且開發(fā)程序不易理解及維護(hù),對于程序的偵錯亦相當(dāng)困難。而本發(fā)明是利用流程圖方式來撰寫程序,以避免直接使用程序碼撰寫程序,讓撰寫程序者及維護(hù)者易于了解及閱讀,使程序更容易被開發(fā)及維護(hù)。
文檔編號G06F9/45GK1459719SQ02119868
公開日2003年12月3日 申請日期2002年5月17日 優(yōu)先權(quán)日2002年5月17日
發(fā)明者邱延誠, 鐘問星 申請人:義隆電子股份有限公司