專利名稱:程序再生方法和裝置以及記錄有用于程序再生的程序的媒體的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及程序再生方法和裝置以及記錄了用于程序再生的程序的媒體,更詳細(xì)地說,涉及將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序重新構(gòu)筑在具有符合Lyee開發(fā)方法的結(jié)構(gòu)的程序中而維持該現(xiàn)有程序達(dá)到的功能的方法和裝置以及記錄了使計(jì)算機(jī)執(zhí)行這樣的處理的程序的記錄媒體。
背景技術(shù):
Lyee(governmental methodology for software providence)程序開發(fā)方法的出現(xiàn)是對先有的軟件作成方法的一次變革,因其大大地縮短了開發(fā)時(shí)間,減少了開發(fā)工時(shí)數(shù),易于維修和展現(xiàn)文件量的現(xiàn)象等成果,而受到關(guān)注。
用先有的軟件作成方法作成的現(xiàn)有的程序,系統(tǒng)工程師和程序員的個(gè)性容易體現(xiàn)在程序中。因此,即使有支持文件,對現(xiàn)有的程序進(jìn)行分析也不容易,而且?guī)缀跏遣豢赡?。即使通過在程序中增加新的描述來追加新的功能,進(jìn)行程序分析也不容易,所以,追加新功能的工作需要花費(fèi)很大的工作量。
進(jìn)而,當(dāng)要改變程序的工作環(huán)境時(shí)(計(jì)算機(jī)和OS的變更等),現(xiàn)有的程序一概不能使用,除了重新作成程序之外,沒有別的方法。
發(fā)明的公開本發(fā)明提供一種分析現(xiàn)有的程序并根據(jù)該分析結(jié)果生成具有和現(xiàn)有程序同等功能的程序的方法。再生的程序是符合Lyee的方法理論的程序,本發(fā)明可以使再生處理自動(dòng)化。
本發(fā)明的方法是將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的結(jié)構(gòu)的程序而維持上述現(xiàn)有程序達(dá)到的功能的方法。根據(jù)該方法,以識(shí)別出與單詞關(guān)連的定義體(單詞所屬的畫面、票單、文件、數(shù)據(jù)庫等)的形式從上述現(xiàn)有的程序中抽出那里使用的單詞,與和該單詞關(guān)連的定義體的種類對應(yīng),將抽出的單詞分配給一個(gè)或多個(gè)模塊,將現(xiàn)有程序的各命令語句或命令變換成符合某一個(gè)程序構(gòu)成要素的形式,該程序構(gòu)成要素是該命令語句或命令包含的單詞所分配的一個(gè)或多個(gè)模塊的多個(gè)程序構(gòu)成要素中的任何一個(gè)程序構(gòu)成要素,而且具有符合Lyee開發(fā)方法的結(jié)構(gòu)。
象后面詳述的那樣,符合Lyee的方法理論的程序(程序構(gòu)成要素)是以單詞為基礎(chǔ),對每一個(gè)模塊W04、W02、W03設(shè)置的。若按照本發(fā)明,因抽出包含在現(xiàn)有程序中的所有的單詞,所以,再生的程序滿足作為以單詞為基礎(chǔ)的(多個(gè))程序的總體的Lyee程序的結(jié)構(gòu)要求。包含在現(xiàn)有程序中的單詞以識(shí)別了是該單詞關(guān)連的定義體的形式抽出,抽出的單詞與和抽出的單詞關(guān)連的定義體的種類對應(yīng)分配給一個(gè)或多個(gè)模塊。而且,與已分配了該命令語句或命令所包含的單詞的一個(gè)或多個(gè)模塊中的多個(gè)程序構(gòu)成要素(符合Lyee的方法理論的程序)對應(yīng),對現(xiàn)有程序的各命令語句或命令進(jìn)行變換。因現(xiàn)有程序的各命令語句或命令也可以用在已再生的程序中,故再生的程序可以達(dá)到和現(xiàn)有程序同等的功能。
若按照本發(fā)明,可以較容易且?guī)缀踝詣?dòng)地將現(xiàn)有的程序再構(gòu)筑成Lyee程序的形式。因此,可以較容易地將裝在現(xiàn)有計(jì)算機(jī)中的現(xiàn)有程序作為能達(dá)到同等功能的新的程序移植到新的計(jì)算機(jī)中,能夠與程序工作環(huán)境的變化相對應(yīng)。因再生的程序符合Lyee的方法理論,故容易進(jìn)行維修等工作。
可以象下面那樣來表現(xiàn)程序的再生方法。即,本發(fā)明的方法是將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的結(jié)構(gòu)的程序而維持該現(xiàn)有程序達(dá)到的功能的方法,從現(xiàn)有程序中抽出由現(xiàn)有程序控制定義體,對抽出的定義體,準(zhǔn)備多個(gè)程序構(gòu)成要素,用來使由W02模塊、W04模塊和W03模塊的組構(gòu)成的基本結(jié)構(gòu)動(dòng)作,以識(shí)別出與單詞所屬的定義體和該單詞的輸入輸出區(qū)分的形式從上述現(xiàn)有的程序中抽出現(xiàn)有程序使用的單詞,與抽出的單詞所屬的定義體和輸入輸出區(qū)分對應(yīng),將該單詞分配給對于該單詞所屬定義體的W02模塊、W04模塊和W03模塊中的一個(gè)或多個(gè)模塊,將包含現(xiàn)有程序的單詞的命令語句或命令變換成符合多個(gè)程序構(gòu)成要素中的某一個(gè)的形式,這些程序構(gòu)成要素是在通過單詞與該命令語句或命令發(fā)生關(guān)連的多個(gè)模塊中,而且具有符合Lyee開發(fā)方法的結(jié)構(gòu)。
現(xiàn)有的程序一般包含由該程序控制的定義體(畫面、文件等)的描述。根據(jù)對定義體的描述把握由現(xiàn)有程序控制的定義體,準(zhǔn)備多個(gè)程序構(gòu)成要素(模板),用來使該定義體的基本結(jié)構(gòu)動(dòng)作?;窘Y(jié)構(gòu)是符合Lyee的方法理論的程序結(jié)構(gòu),包含W02模塊(程序)、W04模塊(程序)和W03模塊(程序)。
根據(jù)現(xiàn)有程序的描述,可以把握現(xiàn)有程序中使用的單詞所屬的定義體的種類和輸入輸出區(qū)分。根據(jù)定義體的種類和輸入輸出區(qū)分,可以把握現(xiàn)有程序中使用的單詞是不是應(yīng)分配給W02模塊、W04模塊和W03模塊中的某一個(gè)的單詞。
有時(shí),現(xiàn)有程序使用不屬于任何定義體的單詞。一般,已作成現(xiàn)有程序的程序大多是已作成用來存儲(chǔ)計(jì)算中間的數(shù)據(jù)的單詞。這樣的單詞另外還準(zhǔn)備有用來處理該單詞的基本結(jié)構(gòu)(用來使基本結(jié)構(gòu)動(dòng)作的多個(gè)程序構(gòu)成要素)。
此外,現(xiàn)有的程序有時(shí)包含錯(cuò)誤處理的描述。這時(shí),另外還準(zhǔn)備用來進(jìn)行該錯(cuò)誤處理的基本結(jié)構(gòu)(多個(gè)程序構(gòu)成要素)。
在一實(shí)施形態(tài)中,對在現(xiàn)有程序的命令語句或命令中的用來生成應(yīng)存儲(chǔ)在由單詞表示的字段中的數(shù)據(jù)的命令語句或命令,按照用來生成上述多個(gè)程序構(gòu)成要素中的數(shù)據(jù)的程序構(gòu)成要素(邏輯要素程序)的形式進(jìn)行變換。該命令語句或命令是用來將數(shù)據(jù)存儲(chǔ)在所謂端點(diǎn)單詞中的命令語句或命令。在用來生成端點(diǎn)單詞所屬(分配)模塊中的數(shù)據(jù)的程序構(gòu)成要素(邏輯要素程序)中,使用用來生成現(xiàn)有程序中的數(shù)據(jù)的命令語句或命令。
若識(shí)別出現(xiàn)有程序使用單詞是端點(diǎn)單詞還是始點(diǎn)單詞,則容易從現(xiàn)有程序中抽出上述命令語句。一般,使用端點(diǎn)單詞和始點(diǎn)單詞的命令語句可以根據(jù)包含在命令語句中的特定命令進(jìn)行把握。根據(jù)命令語句記述的決定(每一個(gè)程序語言的決定),可以把握在這樣的命令語句中,哪些單詞是端點(diǎn)單詞,哪些單詞是始點(diǎn)單詞。
在現(xiàn)有程序的命令語句或命令中,對于包含2個(gè)以上的單詞的命令語句或命令,最好判定該命令語句或命令使用的2個(gè)以上的單詞分別分配的2個(gè)以上的模塊的關(guān)系是否滿足規(guī)定的順序。接著,當(dāng)2個(gè)以上的模塊的關(guān)系不滿足規(guī)定的順序時(shí),將該命令語句或命令分解成多個(gè)命令語句或命令,使分解的命令語句或命令分別包含新的單詞。將新的單詞分配給W04模塊、W02模塊和W03模塊中的一個(gè)或多個(gè)模塊,使分解的命令語句或命令分別包含的2個(gè)以上的單詞分配的2個(gè)以上的模塊的關(guān)系滿足規(guī)定的順序。
一般,因現(xiàn)有的程序不是符合Lyee開發(fā)方法作成的,故有時(shí)在現(xiàn)有程序的命令語句或命令中記述一些命令語句或命令,這些命令語句或命令是不能存在于符合Lyee開發(fā)方法作成程序中的命令語句或命令、即使用2個(gè)以上的單詞的命令語句或命令,該命令語句或命令分別包含的2個(gè)以上的單詞分配的2個(gè)以上的模塊的關(guān)系不滿足Lyee法則所要求的規(guī)定的順序(循環(huán)結(jié)構(gòu))。對該命令語句或命令進(jìn)行分解(將1個(gè)命令語句改寫成2個(gè)以上的命令語句),使這樣的命令語句或命令滿足上述循環(huán)結(jié)構(gòu)的順序。因在現(xiàn)有程序中還殘留有滿足上述循環(huán)結(jié)構(gòu)的順序的命令語句或命令,故容易變換成各命令語句或命令的某一個(gè)程序構(gòu)成要素的形式。
在其它實(shí)施形態(tài)中,在現(xiàn)有程序的命令語句或命令中,把對定義體的進(jìn)行物理的輸入輸出處理的命令語句或命令作為上述多個(gè)程序構(gòu)成要素中用來統(tǒng)一控制模塊的程序構(gòu)成要素(模塊鏈接函數(shù)程序;主程序)的一部分。
最好利用一個(gè)或多個(gè)基本結(jié)構(gòu)的組合,根據(jù)現(xiàn)有程序作成表示上述現(xiàn)有程序的處理流程的處理路徑圖。通過作成處理路徑圖,對于現(xiàn)有程序的各命令語句和單詞,可以容易把握其在符合Lyee開發(fā)方法的程序中的地位。
例如,當(dāng)在上述處理路徑中表示連接2個(gè)以上不同的基本結(jié)構(gòu)的路徑或與結(jié)束處理連接的路徑時(shí),從上述現(xiàn)有程序中抽出表示該路徑分支點(diǎn)的分支條件的條件命令語句或條件命令。將已抽出的條件命令語句或條件命令變換成符合用來進(jìn)行上述分支點(diǎn)的分支元中的模塊的多個(gè)程序構(gòu)成要素(路徑作用要素程序)的形式??梢园盐諚l件命令語句或條件命令在符合Lyee開發(fā)方法的程序中的一個(gè)地位。
在現(xiàn)有程序使用的條件命令語句或條件命令中,除了在符合上述Lyee法則的程序中作為路徑的分支條件的條件命令語句或條件命令之外,還有作為數(shù)據(jù)輸出到顯示畫面時(shí)的條件(輸出條件)和從文件等讀出數(shù)據(jù)時(shí)的條件(輸入條件)的條件命令語句或條件命令。
根據(jù)現(xiàn)有程序的記述,檢索表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令,當(dāng)已抽出表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令時(shí),將抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素(輸入/輸出)的形式,該程序構(gòu)成要素在該數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件作用的模塊中的多個(gè)程序構(gòu)成要素中用于輸入作用或輸出作用的。
根據(jù)現(xiàn)有程序的記述,檢索表示等效單詞的判斷條件的條件命令語句或條件命令,當(dāng)已抽出表示等效單詞的判斷條件的條件命令語句或條件命令時(shí),將抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素(邏輯要素程序的成立條件)的形式,該程序構(gòu)成要素在該等效單詞分配的模塊中的程序構(gòu)成要素中用來生成數(shù)據(jù)。
本發(fā)明還提供程序再生裝置,將現(xiàn)有程序再生成具有符合Lyee開發(fā)方法的結(jié)構(gòu)的新的程序(Lyee程序)而能維持該現(xiàn)有程序達(dá)到的功能。
本發(fā)明的程序再生裝置包括存儲(chǔ)構(gòu)成Lyee程序的多個(gè)程序構(gòu)成要素的第1存儲(chǔ)裝置;存儲(chǔ)從根據(jù)現(xiàn)有程序作成的處理路徑圖得到的模塊鏈接函數(shù)信息、基本結(jié)構(gòu)信息、模塊信息、定義體信息、路徑信息和指令信息的第2存儲(chǔ)裝置;存儲(chǔ)給定的現(xiàn)有程序的第3存儲(chǔ)裝置;根據(jù)上述第2存儲(chǔ)裝置存儲(chǔ)的模塊鏈接函數(shù)信息、基本結(jié)構(gòu)信息、模塊信息和定義體信息將第3存儲(chǔ)裝置存儲(chǔ)的現(xiàn)有程序使用的單詞分配給包含在與該單詞關(guān)連的基本結(jié)構(gòu)中的W04模塊、W02模塊和W03模塊中的一個(gè)或多個(gè)模塊的第1分配裝置;和變換裝置,根據(jù)上述第2存儲(chǔ)裝置存儲(chǔ)的路徑信息和指令信息,把第3存儲(chǔ)裝置存儲(chǔ)的現(xiàn)有程序的各命令語句或命令變換成符合某一個(gè)程序構(gòu)成要素的形式,該程序構(gòu)成要素是該命令語句或命令包含的單詞分配的一個(gè)或多個(gè)模塊中的、上述第1存儲(chǔ)裝置存儲(chǔ)的多個(gè)程序構(gòu)成要素中任何一個(gè)程序構(gòu)成要素。
若按照本發(fā)明,因現(xiàn)有程序使用的單詞根據(jù)從根據(jù)現(xiàn)有程序作成的處理路徑圖得到的各種信息(模塊鏈接函數(shù)信息、基本結(jié)構(gòu)信息、模塊信息和定義體信息)分配給W04模塊、W02模塊和W03模塊中的一個(gè)或多個(gè)模塊,所以,對任何一個(gè)單詞,可以容易把握是否應(yīng)該將其作成符合Lyee法則的程序??梢园盐帐欠駪?yīng)該根據(jù)路徑信息和指令信息將現(xiàn)有程序中的命令語句或命令變換成符合多個(gè)程序構(gòu)成要素中任何一個(gè)的形式。
程序再生裝置具有用來讀取現(xiàn)有程序的命令語句或命令的讀取裝置。利用讀取裝置讀取的現(xiàn)有程序的命令語句或命令用在符合Lyee法則的程序構(gòu)成要素(模板)中。
進(jìn)而,本發(fā)明提供一種記錄媒體,記錄用來控制上述程序再生裝置的程序,特別記錄使程序再生裝置執(zhí)行把現(xiàn)有程序使用的單詞分配給模塊的處理的程序(分配程序)和使程序再生裝置執(zhí)行把現(xiàn)有程序的命令語句或命令變換成符合根據(jù)Lyee的方法理論的多個(gè)程序構(gòu)成要素的任何一個(gè)的形式的處理的程序(變換程序)。程序記錄媒體包括磁盤、光盤、光磁盤、磁帶和半導(dǎo)體存儲(chǔ)器等。
附圖的簡單說明
圖1是表示符合Lyee法則的軟件模型的一般形式的方框圖。
圖2表示一例在線處理的處理路徑圖。
圖3表示一例批處理的處理路徑圖。
圖4把一例K的處理路徑圖和在線處理T0的處理路徑圖一起表示。
圖5表示一般的軟件的處理路徑圖的一部分。
圖6是表示Lyee法則中的單詞的處理(單詞的相互關(guān)系)的概念圖。
圖7表示每一個(gè)基本結(jié)構(gòu)必要的程序種類及其地位。
圖8是表示W(wǎng)04模塊函數(shù)程序的處理流程的流程圖。
圖9是表示W(wǎng)02模塊函數(shù)程序的處理流程的流程圖。
圖10是表示W(wǎng)03模塊函數(shù)程序的處理流程的流程圖。
圖11是表示相位要素程序(模板)的處理流程的流程圖。
圖12是表示邏輯要素程序(W04)(模板)的處理流程的流程圖。
圖13是表示輸出作用要素程序(模板)的處理流程的流程圖。
圖14是是表示路徑作用要素程序(模板)的處理流程的流程圖。
圖15是表示構(gòu)造作用要素程序(模板)的處理流程的流程圖。
圖16是表示邏輯要素程序(W02)(模板)的處理流程的流程圖。
圖17是表示邏輯要素程序(W02G)(模板)的處理流程的流程圖。
圖18表示邏輯要素程序(W02)的具體程序例子。
圖19表示程序再生處理的全部流程。
圖20是表示程序再生處理裝置的構(gòu)成的方框圖。
圖21表示現(xiàn)有程序的具體例子。
圖22表示一例接收商品訂貨的畫面。
圖23表示一例商品表。
圖24是表示圖21所示的現(xiàn)有程序的處理流程的流程圖。
圖25是表示圖21所示的現(xiàn)有程序的處理流程的流程圖。
圖26是表示形式化處理的詳細(xì)處理流程的流程圖。
圖27表示一例指令表(全部)。
圖28表示一例指令表(按程序)。
圖29表示圖21所示的現(xiàn)有程序的處理的處理路徑圖。
圖30表示一例處理路徑圖信息表。
圖31是表示第1次坐標(biāo)決定處理的詳細(xì)流程的流程圖。
圖32表示第1次坐標(biāo)決定處理后的一例Lyee Belt。
圖33是表示標(biāo)準(zhǔn)化處理的詳細(xì)流程的流程圖。
圖34是表示第2次坐標(biāo)決定處理的詳細(xì)流程的流程圖。
圖35表示第2次坐標(biāo)決定處理后的一例Lyee·belt。
圖36是表示命令語句的展開處理的詳細(xì)流程的流程圖。
圖37表示一例指令表。
圖38是表示IF語句的分析處理的詳細(xì)流程的流程圖。
圖39是表示IF語句的分析處理的詳細(xì)流程的流程圖。
圖40是表示IF語句的分析處理的詳細(xì)流程的流程圖。
圖41是表示Lyee ALL處理的內(nèi)容的流程圖。
圖42表示一例復(fù)制子句展開處理。
圖43表示另一例復(fù)制子句展開處理。
圖44表示又一例復(fù)制子句展開處理。
圖45表示一例子程序展開處理。
圖46表示一例清除處理。
圖47表示一例變則修正處理。
圖48表示一例命令語句的一行化處理。
圖49表示另一例命令語句的一行化處理。
圖50表示一例單層化處理。
實(shí)施發(fā)明的最佳形態(tài)1、符合Lyee法則的軟件模型人們要求計(jì)算機(jī)進(jìn)行信息處理的基本功能是,將得到的信息在顯示裝置的顯示畫面上進(jìn)行顯示,從打印機(jī)打印輸出和將其存儲(chǔ)在存儲(chǔ)裝置中。計(jì)算機(jī)輸出得到的信息(也包括沒有信息)。在符合Lyee法則的軟件模型中,把該輸出部分(與輸出有關(guān)的軟件部分)作為出發(fā)點(diǎn)。把與軟件的輸出有關(guān)的部分稱作W04模塊(模塊意指意圖的輸送)。
與由和軟件的輸出有關(guān)的部分控制的計(jì)算機(jī)的動(dòng)作(信息處理結(jié)果在顯示畫面上的顯示等)對應(yīng),將下面應(yīng)進(jìn)行的用于信息處理的新的信息輸入到計(jì)算機(jī)中。例如,若由和軟件的輸出有關(guān)的部分(W04模塊)輸出的信息是人能夠認(rèn)識(shí)的輸出信息(顯示畫面上顯示的數(shù)值等),人對它的意思進(jìn)行認(rèn)識(shí),作出判斷并開始行動(dòng)。人的行動(dòng)對計(jì)算機(jī)來說是以輸入的方式來體現(xiàn)的。把與輸入有關(guān)的軟件部分稱作W02模塊。
計(jì)算機(jī)對輸入作出響應(yīng)并執(zhí)行預(yù)定的處理。該處理是用來生成想利用上述W04模塊輸出的信息的處理。把對輸入作出響應(yīng)使計(jì)算機(jī)動(dòng)作的軟件部分作為W03。
計(jì)算機(jī)輸出對輸入作出響應(yīng)后進(jìn)行的處理的處理結(jié)果。即,在W03模塊之后,按順序進(jìn)行接下來的W04模塊。根據(jù)Lyee的方法理論,軟件模型基本上具有循環(huán)結(jié)構(gòu),從W04模塊出發(fā),經(jīng)W02模塊、W03模塊,再回到W04模塊。該循環(huán)結(jié)構(gòu)模型的一般形式如圖1所示。
在圖1所示的循環(huán)結(jié)構(gòu)模型(以下,稱作“基本結(jié)構(gòu)”)中W03模塊包含作為子模塊的W02G和W04P。W02G子模塊是進(jìn)行取入從W02模塊轉(zhuǎn)移到W03模塊的數(shù)據(jù)(Get)等的處理的軟件部分。W04P子模塊是利用規(guī)定的數(shù)據(jù)處理作成新的數(shù)據(jù)的軟件部分。在Lyee的軟件模型中,基本上,由W02模塊接收的信息取入W03模塊的W02G子模塊中。在W04P模塊中,進(jìn)行預(yù)先規(guī)定的處理(四則運(yùn)算)。W04P子模塊的信息轉(zhuǎn)移到W04模塊中,利用W04模塊進(jìn)行輸出(在顯示畫面上顯示,記錄在文件、數(shù)據(jù)庫中)。
在符合Lyee法則的軟件模型中,由W04模塊、W02模塊和W03模塊構(gòu)成的基本結(jié)構(gòu)根據(jù)由W04模塊輸出的數(shù)據(jù)種類,可分成以下3種類型。
其一是由W04模塊輸出的數(shù)據(jù)是與人相關(guān)的數(shù)據(jù)(例如,輸出到顯示裝置的顯示畫面)的情況。把包含這樣的W04模塊的基本結(jié)構(gòu)統(tǒng)稱為在線處理T0。把在線處理T0中的W04模塊、W02模塊和W03模塊分別稱作T0W04模塊、T0W02模塊和T0W03模塊。T0W03模塊包含T0W02G子模塊和T0W04P子模塊。
其二是由W04模塊輸出的數(shù)據(jù)是與人不相關(guān)的數(shù)據(jù)(例如,輸出到文件等的記錄媒體的數(shù)據(jù)等)的情況。把包含這樣的W04模塊的基本結(jié)構(gòu)統(tǒng)稱為批處理T1。把批處理T1中的W04模塊、W02模塊和W03模塊分別稱作T1W04模塊、T1W02模塊和T1W03模塊。T1W03模塊包含T1W02G子模塊和T1W04P子模塊。
其三是由W04模塊輸出的數(shù)據(jù)不是最后要得到的數(shù)據(jù)(例如,為了作成由T0W04模塊向顯示畫面輸出的數(shù)據(jù),作為前處理而作成預(yù)先規(guī)定的數(shù)據(jù)的情況)的情況。把包含這樣的W04模塊的基本結(jié)構(gòu)統(tǒng)稱為K(knowledge)。一般,當(dāng)從最開始作成符合Lyee法則的軟件時(shí),該K的基本結(jié)構(gòu)不表現(xiàn)出來(可以不表現(xiàn)地作成軟件)。當(dāng)把現(xiàn)有程序再構(gòu)筑成符合Lyee法則的程序時(shí),為了將現(xiàn)有程序嵌入Lyee程序結(jié)構(gòu)中,K的基本結(jié)構(gòu)是必要的。把K的基本結(jié)構(gòu)看做是處理現(xiàn)有程序的程序員作出的單詞的軟件部分,或進(jìn)行錯(cuò)誤處理的軟件部分。
把K中的W04模塊、W02模塊和W03模塊分別稱作K-W04模塊、K-W02模塊和K-W03模塊。K-W03模塊包含K-W02G子模塊和K-W04P子模塊。
使用由W04模塊、W02模塊和W03模塊構(gòu)成的基本結(jié)構(gòu),可以將進(jìn)行規(guī)定的處理的軟件在視覺上表現(xiàn)出來。把利用基本結(jié)構(gòu)表示軟件處理的流程的圖稱作處理路徑圖。圖2示出包含在線處理T0的一例處理路徑圖。該處理路徑圖包含由T0W04模塊11、T0W02模塊12和T0W03模塊13構(gòu)成的基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))。
在T0W04模塊11和T0W02模塊12之間有表示顯示裝置的先生畫面的方框14。利用T0W04模塊11顯示畫面14上顯示文字和數(shù)字等。
看到顯示畫面上顯示的文字和數(shù)字的人使用輸入裝置輸入文字和數(shù)字等。輸入的文字和數(shù)字等由T0W02模塊12進(jìn)行處理。
使用輸入到T0W02模塊12中的文字和數(shù)字等,在T0W03模塊13中進(jìn)行規(guī)定的處理。即,T0W03模塊13中的T0W02G子模塊(后述的相位要素程序)從T0W02模塊12中接收表示文字和數(shù)字等的數(shù)據(jù)。在T0W04P子模塊中,使用T0W02模塊的數(shù)據(jù)等進(jìn)行規(guī)定的處理(四則運(yùn)算等)。進(jìn)行了規(guī)定的處理的數(shù)據(jù)(處理結(jié)果)送給T0W04模塊11。T0W04模塊11接收T0W04P子模塊的數(shù)據(jù)(處理結(jié)果),在顯示畫面14上顯示。
從T0W02模塊12延伸的路徑分成2路。一路是與T0W03模塊13連接的路徑,另一路是結(jié)束處理連接的路徑。例如,當(dāng)顯示畫面14顯示‘結(jié)束’按鈕時(shí)(作成顯示這樣的的顯示畫面的程序時(shí)),可以畫出這樣的處理路徑圖。當(dāng)按壓計(jì)算機(jī)輸入裝置上的回車鍵時(shí),可以選擇到達(dá)T0W03模塊13的路徑。當(dāng)按壓‘結(jié)束’按鈕時(shí),可以選擇通向結(jié)束處理的路徑。
圖3示出包含批處理T1的一例處理路徑圖。該處理路徑圖包含由T1W04模塊21、T1W02模塊22和T1W03模塊23構(gòu)成的基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))。
T1W02模塊22讀出存儲(chǔ)在文件B25中的數(shù)據(jù)。將讀出的數(shù)據(jù)轉(zhuǎn)移到T1W03模塊23中(從T1W02模塊22向T1W03模塊23的T1W02G子模塊的數(shù)據(jù)移動(dòng))。在T1W03模塊23中進(jìn)行規(guī)定的處理(利用T1W04P子模塊取得T1W02G子模塊的數(shù)據(jù)和進(jìn)行T1W04P子模塊中的規(guī)定的處理)。T1W04模塊21取得該處理結(jié)果(從T1W04P子模塊向T1W04模塊21的數(shù)據(jù)移動(dòng))。在T1W04模塊21中,將處理結(jié)果記錄在文件A24中。
從T1W02模塊22延伸的路徑分成2路。一路是與T1W03模塊23連接的路徑,另一路是結(jié)束處理連接的路徑。例如,當(dāng)在T1W03模塊23中對包含在文件B25中的多個(gè)記錄順次進(jìn)行規(guī)定的處理,并在讀出所有的記錄和規(guī)定的處理結(jié)束時(shí)刻選擇通向結(jié)束處理的路徑時(shí),可以畫出這樣的處理路徑圖。
圖4示出一例包含K的處理路徑圖。如上所述,K的基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))是由W04模塊輸出的數(shù)據(jù)不是最后要得到的數(shù)據(jù)時(shí)的基本結(jié)構(gòu)。因有必要與最后要得到的數(shù)據(jù)的輸出(由T0W04模塊或T1W04模塊處理的輸出)聯(lián)結(jié),故包含K的處理路徑必須畫出在線處理T0的處理路徑或批處理T1的處理路徑中任何一個(gè)路徑。在圖4所示的路徑圖中,與K的處理路徑圖一起,還畫出在線處理T0的處理路徑圖(與圖2相同)。分別用虛線將K的處理路徑圖的部分和在線處理T0的處理路徑圖的部分圈起來表示。
K的處理路徑圖包含由K-W04模塊31、K-W02模塊32和K-W03模塊33。K-W03模塊構(gòu)成的基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))。
從T0W03模塊13(T0W03模塊13的T0W04P子模塊)延伸的路徑在分支點(diǎn)A分支成返回T0W04模塊11的路徑和與K-W04模塊31連接的路徑。利用在T0W03模塊13的T0W04P子模塊中的判斷(路徑判斷),決定是返回T0W04模塊11還是進(jìn)入K-W04模塊31。
同樣,從K-W03模塊33(K-W03模塊13的K-W04P子模塊)延伸的路徑在分支點(diǎn)B分支成返回K-W04模塊31的路徑和通向T0W04P子模塊(意指T0W03模塊13的T0W04P子模塊)的路徑。利用在K-W03模塊33的K-W04P子模塊中的判斷,決定應(yīng)通向K-W04模塊31還是應(yīng)通向T0W04P子模塊。在Lyee的方法理論中,把在T0和K、T1和K等之間的不同種類的基本結(jié)構(gòu)的連接特別稱作合理性。
若在分支點(diǎn)A選擇進(jìn)入K-W04模塊31的路徑,則從K-W04模塊31進(jìn)入K-W02模塊32和K-W03模塊33,在這里進(jìn)行處理的處理(四則運(yùn)算等)。
圖4示出了在線處理T0的基本結(jié)構(gòu)和K的基本結(jié)構(gòu)的連接(鏈接),但批處理T1的基本結(jié)構(gòu)和K的基本結(jié)構(gòu)的連接同樣可以畫出處理路徑圖。
圖5示出進(jìn)行規(guī)定處理的軟件的一般處理路徑圖的一部分。當(dāng)使計(jì)算機(jī)畫出進(jìn)行規(guī)定處理的軟件的處理路徑圖時(shí),一般,如圖5所示,畫出包含多個(gè)基本結(jié)構(gòu)(在線處理T0的基本結(jié)構(gòu)、批處理T1的基本結(jié)構(gòu)、K的基本結(jié)構(gòu))的處理路徑圖。
利用Lyee軟件模型處理的信息的單位是畫面顯示的項(xiàng)目和文件中出現(xiàn)的數(shù)據(jù)項(xiàng)目。它們在計(jì)算機(jī)處理中作為數(shù)據(jù)·字段。在Lyee法則中,把對數(shù)據(jù)·字段設(shè)置了某些值的狀態(tài)稱作有意狀態(tài)(有意性)。把對數(shù)據(jù)·字段設(shè)置某些值的處理稱作成立處理。把規(guī)定了可以設(shè)置某些數(shù)據(jù)的數(shù)據(jù)·字段(可以判斷是否有有意性的單位,用來管理軟件處理的數(shù)據(jù)的最基本的最小單位)或應(yīng)設(shè)置的數(shù)據(jù)·字段的程序描述稱作單詞。通常,單詞(數(shù)據(jù)·字段)屬于畫面、票據(jù)、文件、數(shù)據(jù)庫、電文等(畫面的單詞、票據(jù)的單詞、文件的單詞等)。把單詞所屬的畫面、票據(jù)、文件、數(shù)據(jù)庫、電文等統(tǒng)稱為“定義體”。定義體包括多個(gè)單詞。此外,定義體大致可分為數(shù)據(jù)輸入用定義體(例如,存儲(chǔ)應(yīng)向計(jì)算機(jī)裝入的數(shù)據(jù)的數(shù)據(jù)庫)和數(shù)據(jù)輸出用的定義體(例如,表示處理結(jié)果的畫面)。把數(shù)據(jù)輸入用的定義體稱作輸入定義體,把數(shù)據(jù)輸出用的定義體稱作輸出定義體。把數(shù)據(jù)輸入輸出都能用的定義體稱作輸入輸出定義體。把屬于輸入定義體的單詞稱作輸入單詞,把屬于輸出定義體的單詞稱作輸出單詞,把屬于輸入輸出定義體的單詞稱作輸入輸出單詞。
在Lyee的軟件模型中,以上述單詞為基礎(chǔ)作成每一個(gè)單詞的程序。更詳細(xì)地說,對于Lyee的軟件模型中應(yīng)處理的單詞,預(yù)先決定是應(yīng)利用上述T0、T1或K中的W04模塊、W02模塊和W03模塊的哪一個(gè)模塊來處理的單詞(單詞向模塊的配置,坐標(biāo)的決定)。
當(dāng)判斷一個(gè)單詞有有意性時(shí),可以判斷利用了放在該單詞中的數(shù)據(jù)的別的單詞也有有意性。即,通過作成每一個(gè)單詞的程序,可以對每一個(gè)單詞進(jìn)行判定,判定是否滿足存放最后要得到的信息的單詞的有意性(數(shù)據(jù)·字段是否存放有數(shù)據(jù)),判定是否滿足為了得到最后要得到的信息所必需的別的單詞的有意性。圖6概略地示出這樣的Lyee法則中的單詞處理(單詞的相互關(guān)系)的一個(gè)例子。
為了得到最后要得到的信息(輸出信息A)(為了在應(yīng)存放表示輸出信息A的數(shù)據(jù)的數(shù)據(jù)·字段a中存放數(shù)據(jù)),必需要信息B和信息C。假定為了得到信息B,必需要信息D、信息E和信息F,為了得到信息C,必需要信息G和信息H。若在多個(gè)單詞(數(shù)據(jù)·字段)中存在這樣的關(guān)系,對各單詞,通過判定其是否有有意性,可以判定能否得到最后必需要的輸出信息A。在Lyee的軟件模型中,可以這樣來準(zhǔn)備每一個(gè)單詞的程序。
例如,假定輸出信息A是信息B和信息C相加的結(jié)果(A=B+C)。即,若得到信息B和信息C,利用所得到的結(jié)果(信息B和信息C)可以得到輸出信息A。當(dāng)定下來A=B+C時(shí),在Lyee法則中,把應(yīng)存放信息A的數(shù)據(jù)·字段a(單詞a)特別稱作“端點(diǎn)單詞”。把存放為了將數(shù)據(jù)(信息A)存放在單詞a中而使用的信息(這里是信息B和信息C)的數(shù)據(jù)·字段b和數(shù)據(jù)·字段c特別稱作“始點(diǎn)單詞”。應(yīng)存放的端點(diǎn)單詞中的數(shù)據(jù)和應(yīng)存放在始點(diǎn)單詞中的數(shù)據(jù)有時(shí)不一樣(例如,上述情況),有時(shí)一樣(數(shù)據(jù)移動(dòng)時(shí))。
如上所述,若按照Lyee的方法理論,由W04模塊、W02模塊和W03模塊構(gòu)成的基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))變成Lyee程序的基本軟件結(jié)構(gòu)??梢詼?zhǔn)備用來實(shí)現(xiàn)該軟件結(jié)構(gòu)的各種程序。說明成為按照Lyee的方法理論作成的程序(以下稱作Lyee程序)的要素的程序的種類。
圖7示出Lyee程序中對每一個(gè)基本結(jié)構(gòu)都必要的程序的種類及其地位?;旧?,這些程序是對在線處理T0的基本結(jié)構(gòu)、批處理T1的基本結(jié)構(gòu)和K的基本結(jié)構(gòu)分別準(zhǔn)備的。在圖7的說明中,省略了T0、T1和K的區(qū)別。
基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))由模塊鏈接函數(shù)控制。即,模塊鏈接函數(shù)程序是使構(gòu)成基本結(jié)構(gòu)的模塊(W04模塊、W02模塊和W03模塊)(后述的鏈接函數(shù)程序)輪流動(dòng)作的程序。例如,若以COBOL程序?yàn)槔?,模塊鏈接函數(shù)程序相當(dāng)主程序的位置,W04模塊(函數(shù)程序)、W02模塊(函數(shù)程序)和W03模塊(函數(shù)程序)相當(dāng)子程序的位置?;旧希瑢γ恳粋€(gè)基本結(jié)構(gòu)準(zhǔn)備模塊鏈接函數(shù)程序。模塊鏈接函數(shù)程序在規(guī)定的條件下,進(jìn)行起動(dòng)其它基本結(jié)構(gòu)的模塊鏈接函數(shù)程序的處理,也進(jìn)行使物理的定義體動(dòng)作的處理。
由模塊鏈接函數(shù)程序控制(調(diào)用)的是W04模塊函數(shù)程序、W02模塊函數(shù)程序和W03模塊函數(shù)程序。W04模塊函數(shù)程序、W02模塊函數(shù)程序和W03模塊函數(shù)程序分別是下面說明的控制多個(gè)程序(要素程序)的程序。若以COBOL程序?yàn)槔?,下面說明的各種要素程序是通過PERFORM語句或CALL語句由W04模塊函數(shù)程序、W02模塊函數(shù)程序和W03模塊函數(shù)程序調(diào)用的程序。
如上所述,在Lyee程序中,對單詞(數(shù)據(jù)·字段)預(yù)先決定(向單詞的模塊的分配,坐標(biāo)的決定)它們分別是應(yīng)由W03模塊函數(shù)程序(以下稱作W03模塊)處理的單詞?還是應(yīng)由W04模塊函數(shù)程序(以下稱作W04模塊)處理的單詞?或者是應(yīng)由W03模塊函數(shù)程序(以下稱作W03模塊)的W02G子模塊或W04P子模塊處理的單詞(屬于)。在以下的說明中,將這些單詞分別稱作W04模塊單詞、W02模塊單詞、W02G子模塊單詞和W04P子模塊單詞。①W04模塊函數(shù)程序(W04模塊)是按相位要素程序、邏輯要素程序、輸出作用要素程序、路徑作用要素程序和構(gòu)造作用要素程序的順序控制這些程序的程序。對每一個(gè)輸出定義體的種類(畫面A、畫面B等)準(zhǔn)備W04模塊函數(shù)程序。圖8示出W04模塊函數(shù)程序(W04模塊)的處理流程。以下,說明由W04模塊控制的各要素程序的處理。
相位要素程序(W04)圖11表示處理流程。相位要素程序(W04)對屬于(分配)前模塊(因是W04模塊的前模塊故是W04P子模塊)的單詞,分別判定是不是空(有意性是否成立(數(shù)據(jù)·字段是否存放有數(shù)據(jù)))。接著,若對W04P子模塊有意性成立(若數(shù)據(jù)·字段存放有數(shù)據(jù)),使存放在該單詞(數(shù)據(jù)·字段)中的數(shù)據(jù)從W04P子模塊相位移動(dòng)(數(shù)據(jù)移動(dòng))到與W04模塊對應(yīng)的單詞(數(shù)據(jù)·字段)中。把單詞沒有存放數(shù)據(jù)的狀態(tài)稱作‘空’。若W04P子模塊單詞是‘空’,則直接結(jié)束該處理。
邏輯要素程序(W04)圖12表示處理流程。邏輯要素程序是對W04模塊單詞分別進(jìn)行輸出編輯的程序。例如,當(dāng)應(yīng)輸出的數(shù)據(jù)利用代碼信息存放在單詞(數(shù)據(jù)·字段)中時(shí),將該代碼信息變換成語言再輸出給顯示畫面,或者,進(jìn)行編輯處理,在將數(shù)值輸出到票據(jù)上時(shí),對每3位加撇號(hào)(,)后再輸出(例如1,000)。在“編輯處理1”、“編輯處理2”中具有用于編輯處理(用于編輯處理的程序描述)的地位??梢允咕庉嬏幚硪騑04模塊單詞是空(數(shù)據(jù)·字段沒有存放數(shù)據(jù))還是不空(數(shù)據(jù)·字段存放有數(shù)據(jù))而不同?!俺闪ⅲ俊钡呐袛嗑褪悄芊駡?zhí)行編輯處理的判斷。若能執(zhí)行編輯處理,則進(jìn)入“成立處理”(例如,直接繼續(xù)進(jìn)行處理),若不能執(zhí)行編輯處理,則進(jìn)入“不成立處理”(例如,置錯(cuò)誤標(biāo)志)。
輸出作用要素程序圖13表示處理流程。輸出作用要素程序是對畫面、票據(jù)和文件等每一個(gè)輸出定義體準(zhǔn)備的程序。進(jìn)行是否向輸出定義體輸出數(shù)據(jù)的判斷(是否應(yīng)該將存放在單詞中的數(shù)據(jù)輸出給顯示畫面),根據(jù)該判斷進(jìn)行處理(若是應(yīng)輸出的數(shù)據(jù),則使其在顯示畫面上顯示,若不是應(yīng)輸出的數(shù)據(jù),則暫緩進(jìn)行畫面顯示等)。
路徑作用要素程序圖14表示處理流程。如上所述,有時(shí)作成Lyee程序(分支),使其從一模塊的處理轉(zhuǎn)移到2個(gè)以上的其它任何模塊的處理。路徑作用要素程序(W04)是規(guī)定應(yīng)利用什么樣的條件進(jìn)入哪一個(gè)W02模塊的處理的程序。例如,當(dāng)在處理路徑圖中從W04模塊進(jìn)入W02模塊的路徑有分支時(shí),準(zhǔn)備與該分支的個(gè)數(shù)對應(yīng)數(shù)量的路徑作用要素程序。從路徑作用要素程序向模塊鏈接函數(shù)程序給出指示,模塊鏈接函數(shù)程序根據(jù)該指示使下一個(gè)應(yīng)動(dòng)作的W02模塊動(dòng)作。
構(gòu)造作用要素程序圖14表示處理流程。對利用上述輸出作用要素程序?qū)λ械腤04模塊單詞進(jìn)行了輸出處理的事實(shí)作出回答,然后,進(jìn)行將W04模塊單詞和W04G子模塊單詞(數(shù)據(jù)·字段)清除的處理和進(jìn)行將進(jìn)行了不成立處理時(shí)打開的標(biāo)志關(guān)掉的處理。
如上所述,Lyee程序基本上是以單詞為單位作成的程序的集合體。對屬于(分配給)W04模塊的單詞(W04模塊單詞)分別作成上述相位要素程序、邏輯要素程序(W02)和輸出作用要素程序。對分配給W04模塊的單詞所屬的定義體(這里是輸出定義體)分別作成構(gòu)造作用要素程序。路徑作用要素程序的個(gè)數(shù)象上述那樣隨從構(gòu)成基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))的W04模塊延伸的路徑的分支個(gè)數(shù)而變化。②W02模塊函數(shù)程序(W02模塊)按輸入作用要素程序、邏輯要素程序和路徑作用要素程序的順序控制這些程序。對每一個(gè)輸入定義體的種類準(zhǔn)備W02模塊函數(shù)程序。圖9示出W02模塊函數(shù)程序(W02模塊)的處理流程。以下,說明由W02模塊控制的各要素程序的處理。
輸入作用要素程序輸入作用要素程序是對畫面、文件等每一個(gè)輸入定義體準(zhǔn)備的程序。進(jìn)行是否從輸入定義體讀取數(shù)據(jù)的判斷(是否應(yīng)該從數(shù)據(jù)庫讀取數(shù)據(jù)等),根據(jù)該判斷結(jié)果進(jìn)行處理(從文件中讀取應(yīng)讀取的數(shù)據(jù),并存放在分配給W02模塊的規(guī)定的單詞中等)。處理流程和圖13所示輸出作用要素程序的處理流程一樣。
邏輯要素程序(W02)圖16表示處理流程。邏輯要素程序是對存放在分配給W02模塊的單詞中的數(shù)據(jù)的屬性(類型)進(jìn)行檢驗(yàn)的程序。即使所決定的例如應(yīng)存放在規(guī)定的單詞(用戶使用輸入裝置輸入的數(shù)據(jù)應(yīng)存放的數(shù)據(jù)·字段等)中的數(shù)據(jù)的類型是數(shù)值,文字?jǐn)?shù)據(jù)由用戶輸入時(shí)的處理(屬性檢查)等也由邏輯要素程序(W02)進(jìn)行。準(zhǔn)備和W02模塊單詞相同個(gè)數(shù)的邏輯要素程序。
路徑作用要素程序(W02)路徑作用要素程序(W02)是當(dāng)在從W02模塊進(jìn)入W03模塊的路徑有分支時(shí),規(guī)定應(yīng)利用什么樣的條件進(jìn)入哪一個(gè)W03模塊的處理的程序。準(zhǔn)備與分支的個(gè)數(shù)對應(yīng)數(shù)量的路徑作用要素程序。圖14示出其處理流程。③W03模塊函數(shù)程序(W03模塊)基本上按相位要素程序、邏輯要素程序、相位型邏輯要素程序、R型相位要素程序、邏輯要素程序和路徑作用要素程序的順序控制這些程序。對一個(gè)系統(tǒng)準(zhǔn)備一個(gè)W03模塊函數(shù)程序。圖10示出W03模塊函數(shù)程序(W03模塊)的處理。以下,說明由W03模塊控制的各要素程序的處理。
相位要素程序(W02G)相位要素程序(W02G)是對分配給W02模塊的單詞,分別判定其有意性是否成立(數(shù)據(jù)·字段是否存放有數(shù)據(jù))的程序。若有意性成立,使存放在該單詞(數(shù)據(jù)·字段)中的數(shù)據(jù)從W02模塊相位移動(dòng)(數(shù)據(jù)移動(dòng))到W02G子模塊的單詞(數(shù)據(jù)·字段)中。準(zhǔn)備和W02模塊單詞數(shù)相同個(gè)數(shù)的相位要素程序。處理和圖11相同。
邏輯要素程序(W02G)圖17表示處理的內(nèi)容。準(zhǔn)備和分配給W02G子模塊的單詞數(shù)相同個(gè)數(shù)的邏輯要素程序。該邏輯要素程序判斷分配給W02G子模塊的單詞是否有有意性(單詞的數(shù)據(jù)·字段是否存放有數(shù)據(jù))。接著,若有有意性(不空),則直接結(jié)束處理,若沒有有意性(空),嘗試進(jìn)行用來使有意性成立的規(guī)定的處理(設(shè)定初始值等)。當(dāng)沒有有意性的單詞具有有意性時(shí)(數(shù)據(jù)·字段存放數(shù)據(jù)),結(jié)束處理。不必需要邏輯要素程序(W02G)。
相位要素型邏輯要素程序是對屬于W02G子模塊的單詞分別判定其有意性是否成立的程序。處理和圖11相同(“自己生成”,數(shù)據(jù)移動(dòng)處理)。
合理型相位要素程序合理型相位要素程序(以下稱R型相位要素程序)是當(dāng)利用由存放在由不同模塊鏈接函數(shù)程序控制的模塊函數(shù)程序處理的單詞(數(shù)據(jù)·字段)中的數(shù)據(jù)時(shí)(例如,在圖4所示的處理路徑圖中,相當(dāng)于‘T0’和‘K’鏈接的情況),對存放在這樣的單詞中的數(shù)據(jù)進(jìn)行相位移動(dòng)(數(shù)據(jù)移動(dòng))處理的程序。存放在由不同模塊鏈接函數(shù)程序控制的分配給W04P子模塊(其它的W04P子模塊)的單詞中的數(shù)據(jù)利用該R型相位要素程序進(jìn)行數(shù)據(jù)移動(dòng)。處理和圖11的一樣。
邏輯要素程序(W04)準(zhǔn)備和屬于W04P子模塊的單詞數(shù)相同個(gè)數(shù)的邏輯要素程序(W04)。該邏輯要素程序判斷分配給W04P子模塊的單詞是否有有意性(單詞的數(shù)據(jù)·字段是否存放有數(shù)據(jù))。接著,若有有意性則直接結(jié)束處理,若沒有有意性(數(shù)據(jù)·字段沒有存放數(shù)據(jù)),嘗試進(jìn)行用來使有意性成立的規(guī)定的處理(四則運(yùn)算或數(shù)據(jù)移動(dòng)處理)。當(dāng)沒有有意性的單詞具有有意性時(shí)(數(shù)據(jù)·字段存放數(shù)據(jù)),結(jié)束處理。處理和圖17的處理相同。
上述R型相位要素程序、相位要素型邏輯要素程序和邏輯要素程序(W04)的處理結(jié)果是后述的W03模塊函數(shù)程序的‘再起否?’的判斷對象(后述)。
路徑作用要素程序(W04P)路徑作用要素程序是規(guī)定應(yīng)利用什么樣的條件進(jìn)入哪一個(gè)W04模塊的處理的程序。準(zhǔn)備和分支數(shù)對應(yīng)個(gè)數(shù)的路徑作用要素程序。處理和圖14的處理相同。
W03模塊函數(shù)程序(圖10)的‘再起否?’的處理反復(fù)進(jìn)行,直到R相位要素程序中的‘相位’成立,進(jìn)而,直到在相位要素型邏輯要素程序中的‘自己生成’的部分和邏輯要素程序(W04P)中的自己生成’的部分中應(yīng)存放新數(shù)據(jù)的單詞存放了數(shù)據(jù)。W03模塊因在Lyee基本結(jié)構(gòu)(參照圖4等)中是向下一個(gè)應(yīng)進(jìn)入的基本結(jié)構(gòu)連接的部分,故一般在單詞(分配給W04P子模塊的單詞)中存放某些數(shù)據(jù)是必要的。當(dāng)單詞中沒有存放數(shù)據(jù)時(shí),在這里重復(fù)進(jìn)行處理,在單詞中存放了數(shù)據(jù)時(shí)刻,進(jìn)入下一個(gè)基本結(jié)構(gòu)中的處理。
圖18示出作為要素程序之一的邏輯要素程序(W02)的具體程序例子。該程序的編程使其滿足上述圖16所示的處理結(jié)構(gòu)、在□(空欄)的部分存放表示W(wǎng)02模塊單詞的識(shí)別符(單詞識(shí)別符)(即,對每一個(gè)W02模塊單詞作成邏輯要素程序(W02))。對多個(gè)W02模塊單詞,進(jìn)行相同的處理(屬性檢驗(yàn))。因單詞不同而變化的程序描述只是一部分(若存放在單詞中的數(shù)據(jù)是‘?dāng)?shù)值’則進(jìn)入下一步處理,若存放在單詞中的數(shù)據(jù)是‘文字’則進(jìn)行進(jìn)入下一步處理等的判斷的部分)。
上述的多個(gè)要素程序和模塊函數(shù)程序分別對多個(gè)單詞(分配給模塊單詞)、定義體和路徑作成。模塊鏈接函數(shù)程序?qū)γ恳粋€(gè)基本結(jié)構(gòu)作成(若是同樣的處理,對多個(gè)基本結(jié)構(gòu)也可以作成一個(gè)模塊鏈接函數(shù)程序)。按Lyee法則作成的軟件全部由上述多個(gè)程序構(gòu)成。即使軟件的處理不同,作成的程序的種類和程序的處理結(jié)構(gòu)(上述流程圖的處理流程)也相同。邏輯要素程序(圖17)中的“自己生成”部分的描述和輸出(輸入)作用要素程序(圖13)中的判斷部分(例如,輸出作用要素程序的“執(zhí)行條件的判斷”的部分等)的描述只根據(jù)軟件的功能而異(把具有如圖8到圖17所示那樣的不因程序的軟件功能而變化的部分(在自動(dòng)生成Lyee程序時(shí)重復(fù)使用的部分)和象“成立?”或“判斷”那樣被代入每一個(gè)軟件特有的處理的部分的程序稱作“模板”)。這樣,利用符合Lyee法則的開發(fā)方法作成的軟件,因其結(jié)構(gòu)被明確規(guī)定故容易分析。而且,即使追加新的功能,只要追加(多個(gè))程序(或程序描述)使實(shí)現(xiàn)該功能的單詞(追加新的畫面輸出項(xiàng)目等情況)(數(shù)據(jù)·字段)滿足基本結(jié)構(gòu)即可。軟件的修正(升級)也可以很快達(dá)到。
2、從現(xiàn)有程序到Lyee程序的再構(gòu)筑圖19是表示把表示利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序(以下稱作現(xiàn)有程序)重新構(gòu)筑在具有符合Lyee開發(fā)方法的新結(jié)構(gòu)的程序中而維持該現(xiàn)有程序達(dá)到的功能的處理的全部流程的流程圖。
程序再生處理(程序)按形式化處理(程序)31、標(biāo)準(zhǔn)化處理(程序)32和Lyee ALL處理(程序)33的順序執(zhí)行。對這些處理的一部分,也可以不用計(jì)算機(jī)處理,而用手工作業(yè)進(jìn)行。程序再生處理程序可以記錄在CD-ROM等記錄媒體上。若將記錄在CD-ROM等記錄媒體上的程序再生處理程序裝入計(jì)算機(jī)(個(gè)人計(jì)算機(jī),工作站等),該計(jì)算機(jī)可以作為程序再生裝置工作。圖20示出程序再生裝置的一例硬件構(gòu)成。
程序再生裝置1包含CPU2。CPU2經(jīng)總線與用來接收數(shù)據(jù)輸入的輸入裝置3(鍵盤、鼠標(biāo)等)、用來使數(shù)據(jù)等可見輸出的顯示裝置4(CRT顯示裝置、打印裝置等)、讀取記錄在軟盤(FD)上的數(shù)據(jù)等而且在FD上記錄數(shù)據(jù)等的FD驅(qū)動(dòng)器5、讀取記錄在CD-ROM上的數(shù)據(jù)等的CD-ROM驅(qū)動(dòng)器6和記錄有操作系統(tǒng)、程序再生處理程序和上述模板等的外部存儲(chǔ)裝置7連接。CPU2的內(nèi)部的(或與CPU2連接)內(nèi)部存儲(chǔ)器8提供程序區(qū)和緩沖區(qū)等。
當(dāng)要使工廠、事業(yè)單位和家庭等使用的計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)規(guī)定的功能時(shí),用于該處理的程序(現(xiàn)有程序)大多由多個(gè)程序構(gòu)成。在大型系統(tǒng)中,該程序的數(shù)量有時(shí)可達(dá)到數(shù)百個(gè)。在程序再處理中,基本上,以一個(gè)一個(gè)程序?yàn)閷ο?,進(jìn)行上述3個(gè)處理(形式化處理標(biāo)準(zhǔn)化處理和Lyee ALL處理)。①形式化處理(步驟51)在形式化處理中,從現(xiàn)有程序的程序描述中抽出再生處理必要的信息再整理成表格,對現(xiàn)有程序進(jìn)行整形(使語法明確),判斷現(xiàn)有程序中包含的單詞的屬性(是始點(diǎn)單詞、端點(diǎn)單詞、數(shù)值、還是程序員已定義了的單詞等),作成處理路徑圖,進(jìn)行這樣的用來使從現(xiàn)有程序向Lyee程序的再構(gòu)筑(再生)變得容易的處理。形式化處理的詳細(xì)情況將在后面敘述。②標(biāo)準(zhǔn)化處理(步驟52)在標(biāo)準(zhǔn)化處理中,判斷現(xiàn)有程序中包含的單詞在Lyee程序結(jié)構(gòu)上的地位(單詞向模塊的分配),為了符合Lyee法則(規(guī)則)進(jìn)行改寫現(xiàn)有程序中的命令語句的處理。此外,作成用來輸入(登錄)到作成Lyee程序的工具(Lyee ALL)中的信息也在該標(biāo)準(zhǔn)化處理中進(jìn)行。標(biāo)準(zhǔn)化處理的詳細(xì)情況將在后面敘述。③Lyee ALL處理(步驟53)在Lyee ALL處理中,將經(jīng)上述形式化處理和標(biāo)準(zhǔn)化處理得到的現(xiàn)有程序的功能保持下來,進(jìn)行把滿足Lyee程序結(jié)構(gòu)所必要的信息代入表示Lyee程序的基本處理結(jié)構(gòu)的程序(模板)的規(guī)定位置的處理。Lyee ALL處理的詳細(xì)情況將在后面敘述。
在以下的說明中,具體說明從利用COBOL(Common BusinessOriented Language)作成的現(xiàn)有程序(利用不符合Lyee開發(fā)方法的方法作成的程序)生成Lyee程序(按Lyee開發(fā)方法作成的程序)的處理流程。
圖21示出利用COBOL作成的一例現(xiàn)有程序。為說明方便起見,在程序語句(命令語句)的左邊,分成后述的過程部(PROCEDUREDIVISION)和除此之外的部,再標(biāo)明行號(hào)。
首先,說明圖21所示的現(xiàn)有程序(COBOL程序)的內(nèi)容。
在COBOL程序中包含下面4個(gè)部(DIVISION)。
(I)標(biāo)識(shí)部(IDENTIFICATION DIVISION);第01行(II)環(huán)境部(ENVIRONMENT DIVISION);第03行(III)數(shù)據(jù)部(DATA DIVISION);第11行(IV)過程部(PROCEDURE DIVISION);第01行在(I)標(biāo)識(shí)部(IDENTFICATION DIVISION)中,記述程序名(程序ID)(第02行;PROGRAM-ID.AAA1)。該COBOL程序是程序名為‘AAA1’的程序。
在(II)環(huán)境部(ENVIRONMENT DIVISION)中,包含結(jié)構(gòu)節(jié)(CONFIGURATION SECTION)(第04行)和輸入輸出節(jié)(INPUT-OUTPUTSECTION)(第07行)。
在結(jié)構(gòu)節(jié)(CONFIGURATION SECTION)中,記述了應(yīng)處理該COBOL程序的計(jì)算機(jī)名(翻譯用計(jì)算機(jī)名和執(zhí)行用計(jì)算機(jī)名)。在圖21所示的現(xiàn)有程序中,記述的翻譯用計(jì)算機(jī)名是‘AS400’(第05行SOURSE-COMPUTER.AS400.)和執(zhí)行用計(jì)算機(jī)名是‘AS400’(第06行OBJECT-COMPUTER.AS400.)。在輸入輸出節(jié)(INPUT-OUTPUTSECTION)的文件管理段落(FILE-CONTROL)(第08行),記述了用來向計(jì)算機(jī)(翻譯用計(jì)算機(jī)和執(zhí)行用計(jì)算機(jī))輸入數(shù)據(jù)或輸出處理結(jié)果的裝置名(輸入輸出裝置名)。記述了把稱之為‘GAMEN-F’的文件放置在稱之為‘畫面-AAA’的輸入輸出裝置中(第09行SELECTGAMEN-F ASSIGN TO畫面-AAA.)?!癘RGANIZATION ISTRANSACTION.”(第10行)意指稱之為‘GAMEN-F’的文件是進(jìn)行事務(wù)處理的文件。
在(III)數(shù)據(jù)部(DATA DIVISION)中,包含文件節(jié)(FILE-SECTION)(第12行)和作業(yè)場所節(jié)(WORKING-STORAGE)(第19行)。
在文件節(jié)(FILE-SECTION)中,記述了文件、構(gòu)成文件的記錄及包含在記錄中的項(xiàng)目的關(guān)系。在文件中,有放置在數(shù)據(jù)庫等(存儲(chǔ)、寫入)中的文件、向畫面等輸出的文件、從畫面輸入的文件和向票據(jù)等輸出(記載)的文件等種種文件。
在圖21所示的現(xiàn)有程序中,稱之為‘GAMEN-F’的文件是放置在輸入輸出裝置‘畫面-AAA’中的文件(第09行)。即,是處理顯示裝置的顯示畫面上顯示的項(xiàng)目的文件。把這樣的文件的記錄稱作定義體‘畫面’。識(shí)別該定義體‘畫面’的識(shí)別符(定義體識(shí)別符)是后述的‘GAMEN-R’。
‘GAMEN-F’具有稱之為‘GAMEN-R’的記錄(集團(tuán)項(xiàng)目)。那里包含有稱之為‘SHIN-CD’、‘SU’、‘TANKA’和‘KINGAKU’的項(xiàng)目(基本項(xiàng)目),而記述在數(shù)據(jù)部(DATA DIVISION)的第13行~第18行。記述在基本項(xiàng)目之后的‘PIC X’意指應(yīng)由該基本項(xiàng)目處理的數(shù)據(jù)是文字?jǐn)?shù)據(jù),‘PIC S9’意指應(yīng)處理的數(shù)據(jù)是帶符號(hào)的數(shù)值數(shù)據(jù)。()內(nèi)的數(shù)值表示位數(shù)(文字?jǐn)?shù))如上所述,在Lyee中把放置某些數(shù)據(jù)的數(shù)據(jù)·字段(用來管理軟件處理的數(shù)據(jù)的最基本的最小的單位)稱作‘單詞’。從上述文件節(jié)(FILE-SECTION)的記述可知,在圖21所示的現(xiàn)有程序中使用稱之為‘SHIN-CD’、‘SU’、‘TANKA’和‘KINGAKU’的單詞。而且知道這些單詞是屬于定義體‘GAMEN-R’的單詞。
在作業(yè)場所節(jié)(WORKING-STORAGE),定義了存放數(shù)據(jù)處理的中間結(jié)果等的字段(作業(yè)區(qū))。在稱之為‘SHIN-TBL’數(shù)據(jù)庫中設(shè)有‘SHIN-CD’和‘TANKA’2個(gè)字段,其余還設(shè)有稱之為‘END-BTN’和‘WK’2個(gè)字段。因這些字段也是存放某些數(shù)據(jù)的數(shù)據(jù)·字段,故在Lyee中具有‘單詞’的地位。
在(IV)過程部(PROCEDURE DIVISION)中,記述了實(shí)體的處理內(nèi)容。圖22示出利用圖21所示的現(xiàn)有程序在顯示裝置的顯示畫面上顯示的一例畫面(接收商品訂貨的畫面)。圖23表示預(yù)先準(zhǔn)備的數(shù)據(jù)庫(商品表)的例子。圖24和圖25分別示出根據(jù)過程部(PROCEDURE DIVISION)的記述表示現(xiàn)有程序的處理流程的流程圖。
在顯示畫面(該畫面的識(shí)別符(定義體識(shí)別符)是‘GAMEN-R’)54中,顯示商品代碼輸入欄55、數(shù)量輸入欄56、單價(jià)顯示欄57、金額顯示欄58和結(jié)束按鈕59。與這些輸入欄和輸出欄對應(yīng)的數(shù)據(jù)·字段分別是SHIN-CD、SU、TANKA和KINGAKU。商品數(shù)據(jù)庫(商品表)60(該數(shù)據(jù)庫的識(shí)別符(定義體識(shí)別符)是‘SHIN-TBL’)包含商品代碼(SHIN-CD)和單價(jià)(TANKA)的項(xiàng)目。
若執(zhí)行圖21的現(xiàn)有程序,在進(jìn)行初始化處理之后(步驟61),讀取GAMEN-F(用于在顯示畫面上進(jìn)行畫面顯示的文件)(步驟62)。在顯示裝置的顯示畫面上顯示圖21所示的畫面54。
顯示畫面54上的結(jié)束按鈕59在結(jié)束現(xiàn)有程序的處理時(shí)被點(diǎn)擊。若結(jié)束按鈕59被點(diǎn)擊,則結(jié)束現(xiàn)有程序的處理(在步驟63是YES,步驟72)。
若按壓輸入裝置(鍵盤等)的回車鍵,則可以判斷顯示畫面54的商品代碼輸入欄55和數(shù)量輸入欄56是否輸入了數(shù)據(jù)(在步驟63是NO,步驟64)。圖21所示的現(xiàn)有程序?qū)⑸唐反a輸入欄55和數(shù)量輸入欄56輸入了數(shù)據(jù)作為一連串處理的前提。因此,當(dāng)商品代碼輸入欄55或數(shù)量輸入欄56至少一方?jīng)]有進(jìn)行數(shù)據(jù)的輸入時(shí),進(jìn)行出錯(cuò)處理(在步驟64是NO,步驟73;顯示畫面54的金額顯示欄58顯示‘99999’)。
當(dāng)顯示畫面54的商品代碼輸入欄55和數(shù)量輸入欄56輸入了數(shù)據(jù)時(shí)(在步驟64是YES),將表示輸入的商品代碼和數(shù)量的數(shù)據(jù)存放在工作存儲(chǔ)器中。此外,在輸入的商品代碼的基礎(chǔ)上參照商品表60(步驟65)。
判斷輸入的數(shù)據(jù)(商品代碼,數(shù)量)是否合適的數(shù)據(jù)(步驟66)。例如,如上所述,預(yù)先規(guī)定商品代碼輸入欄55必須與數(shù)據(jù)·字段‘SHIN-CD’對應(yīng)(輸入到商品代碼輸入欄55的數(shù)據(jù)存放在數(shù)據(jù)·字段‘SHIN-CD’中),存放在‘SHIN-CD’中的數(shù)據(jù)必須是5個(gè)字的文字?jǐn)?shù)據(jù)(數(shù)據(jù)部(DATA DIVISION)的第15行)。若在商品代碼輸入欄55中輸入數(shù)值數(shù)據(jù)或輸入商品表60的商品代碼欄不存在的代碼,在數(shù)量輸入欄56中輸入了文字?jǐn)?shù)據(jù),則進(jìn)行出錯(cuò)處理(在步驟66是NO,步驟74;顯示畫面54的單價(jià)顯示欄57顯示‘99999’)。
當(dāng)輸入數(shù)據(jù)適合時(shí)(步驟66為是),與輸入到商品代碼輸入欄55的商品代碼對應(yīng)的商品的單價(jià)(參照商品表60)和輸入到數(shù)量輸入欄56的數(shù)量的相乘結(jié)果存儲(chǔ)在工作存儲(chǔ)器中(步驟67)。
判斷存儲(chǔ)的相乘結(jié)果是否超過10000日元(步驟68)。若相乘結(jié)果超過10000日元(步驟68為是),則算出的金額是相乘結(jié)果(商品單價(jià)×數(shù)量)與0.8相乘的結(jié)果(步驟69)。在顯示畫面54的的單價(jià)顯示欄57和金額顯示欄58中分別顯示單價(jià)和算出的金額。若相乘結(jié)果在10000日元以下(步驟68為否),則金額顯示欄58中顯示相乘結(jié)果與0.9相乘的結(jié)果(步驟70、步驟71)。
下面,說明把圖21所示的現(xiàn)有程序再構(gòu)筑(再生)成LYEE程序而維持其功能的具體處理流程。如上所述,流程再生處理按形式化處理、標(biāo)準(zhǔn)化處理和Lyee ALL處理的順序進(jìn)行(圖19)。
圖26是詳細(xì)示出形式化處理(步驟51)得到處理內(nèi)容的流程圖。這些處理大多數(shù)可以由計(jì)算機(jī)自動(dòng)進(jìn)行。
根據(jù)現(xiàn)有程序的記述作成指令表(全部)(步驟81)。圖27示出根據(jù)圖21所示的現(xiàn)有程序(COBOL程序)的記述作成指令表(全部)。
指令表(全部)把使系統(tǒng)工作的所有程序作為對象作成。在這里,為說明方便起見,假定圖21所示的現(xiàn)有程序是使系統(tǒng)工作的程序(程序總體)。
指令表(全部)包括定義體種類、命令、命令種類(程序語言)、條件、外部文件、輸入輸出區(qū)分和模塊所在的欄。
在‘定義體種類’欄中,存放表示現(xiàn)有程序規(guī)定的(現(xiàn)有程序的處理所使用的)定義體的種類的數(shù)據(jù)。定義體意指象上述那樣由計(jì)算機(jī)操作的輸入輸出媒體,包含畫面、數(shù)據(jù)庫和文件等。從現(xiàn)有程序的環(huán)境部(ENVIRONMENT DIVISION)的輸入輸出節(jié)(INPUT-OUTPUTSECTION)的記述和數(shù)據(jù)部(DATA DIVISION)的記述可以把握現(xiàn)有程序規(guī)定的定義體的種類。當(dāng)然,例如,當(dāng)一個(gè)系統(tǒng)中使用不同種類畫面的時(shí)(這樣記述的現(xiàn)有程序)時(shí),記述連‘畫面1’、‘畫面2’的畫面種類都能夠區(qū)別的數(shù)據(jù)。對數(shù)據(jù)庫也一樣。
在‘指令’欄中,存放用來從現(xiàn)有程序的記述中發(fā)現(xiàn)現(xiàn)有程序中規(guī)定的輸入輸出裝置(定義體)的指令。
在‘命令種類’欄中,表示用于后述的‘條件’欄和‘輸入輸出’裝置欄記述的輸入輸出裝置的檢索的記述是什么樣程序語言的記述。
在‘條件’欄中,記述用來從現(xiàn)有程序的記述中發(fā)現(xiàn)處理定義體的輸入輸出裝置的條件?!瓵SSIGN TO 畫面’意指在現(xiàn)有程序中的‘ASSIGN TO畫面’記述的后面記述定義體‘畫面’的輸入輸出裝置名。‘FROM’意指在‘FROM’記述的后面記述定義體‘DB’的輸入輸出裝置名(COBOL程序的規(guī)定)。在‘輸入輸出裝置’欄中,記述在COBOL程序的ASSIGN節(jié)中記述文件名、在FROM節(jié)中記述數(shù)據(jù)庫名的情況。
在‘輸入輸出區(qū)分’欄中,存放表示‘定義體種類’欄中存放的定義體是與輸入有關(guān)的定義體還是與輸出有關(guān)的定義體的數(shù)據(jù)(‘入’或‘出’)。
在‘模塊所在’欄中,根據(jù)‘定義體種類’欄中存放的數(shù)據(jù)和‘指令’欄存放的數(shù)據(jù)(或‘輸入輸出區(qū)分’欄存放的數(shù)據(jù))存放模塊的種類。根據(jù)‘定義體種類’欄中存放的定義體的種類決定基本結(jié)構(gòu)是‘T0’、‘T1’或‘K’。根據(jù)‘指令’欄中存放的命令(或‘輸入輸出區(qū)分’欄存放的數(shù)據(jù))決定模塊是‘W04’或‘W02’。例如,定義體‘畫面’是在線處理T0中處理的定義體。此外,定義體‘畫面’用于輸入(商品代碼的輸入、數(shù)量的輸入)和輸出(單價(jià)的輸出、金額的輸出)。若定義體種類是‘畫面’,輸入輸出區(qū)分是‘入’則存放‘T0W02’,若輸入輸出區(qū)分是‘出’則存放‘T0W04’。指令表(全部)也可以根據(jù)技術(shù)人員在現(xiàn)有程序中的記述作成。
其次,進(jìn)行現(xiàn)有程序的整理(步驟82)。因圖21所示的現(xiàn)有程序是經(jīng)過了用于現(xiàn)有程序的整理的處理(步驟82)(整理結(jié)束或不必整理)的程序,關(guān)于用于現(xiàn)有程序的整理的處理(步驟82)將在后面詳述。
作成指令表(按程序)(步驟83),圖28示出指令表(按程序)。
如圖28所示,指令表(按程序)包括程序ID、指令、外部文件、定義體、輸入輸出區(qū)分和模塊所在的欄目。
在‘程序ID’欄中,存放已記述了現(xiàn)有程序的標(biāo)識(shí)部(IDENTIFICATION DIVISION)記述的程序名(程序ID)。使翕工作的程序可以由該程序名(程序ID)特定。對每一個(gè)程序名(程序ID)作成指令表(按程序)。
在‘指令’欄中,存放在由上述程序ID特定的現(xiàn)有程序的過程部(PROCEDURE DIVISION)中表現(xiàn)的、與數(shù)據(jù)的輸入輸出關(guān)連的命令。
在‘輸入輸出裝置’欄中,根據(jù)上述指令表(全部)的‘條件’欄的記述,記述表示從現(xiàn)有程序檢索出的輸入輸出裝置名的數(shù)據(jù)。
在‘定義體’欄中,根據(jù)數(shù)據(jù)部(DATA DIVISION)和過程部(PROCEDURE DIVISION)的記述,存放由‘指令’欄存放的指令處理的定義體(畫面、DB等)的定義體名。
例如,在圖21所示的現(xiàn)有程序中,因過程部(PROCEDUREDIVISION)的第06行的指令‘WRITE’是進(jìn)行對‘GAMEN-R’的處理的命令,故‘GAMEN-R’存放在與指令‘WRITE’對應(yīng)的‘定義體’欄中。
‘輸入輸出區(qū)分’欄和‘模塊所在’欄和上述指令表(全部)相同。
指令表(按程序)可以由計(jì)算機(jī)根據(jù)指令表(全部)作成。當(dāng)然,也可以根據(jù)現(xiàn)有程序的記述由技術(shù)人員作成。
作成處理路徑圖(步驟46)。圖29示出根據(jù)圖21所示的現(xiàn)有程序的記述作成的處理路徑圖。
根據(jù)已作成的指令表(按程序)可以把握在現(xiàn)有程序中包含T0和T1的基本結(jié)構(gòu)的情況。此外,在現(xiàn)有程序中,因一般作成該程序的程序員使用已定義的單詞(數(shù)據(jù)·字段),故考慮也存在K的基本結(jié)構(gòu)。進(jìn)而,也考慮在T0的基本結(jié)構(gòu)和T1的基本結(jié)構(gòu)中分別附加進(jìn)行錯(cuò)誤處理的基本結(jié)構(gòu)(K的一形態(tài))。分別對T0、T1描繪由W04模塊、W03模塊和W02模塊構(gòu)成的基本結(jié)構(gòu)(循環(huán)結(jié)構(gòu))將這些基本結(jié)構(gòu)連結(jié)起來(利用表示T0基本結(jié)構(gòu)的W03模塊(W04P子模塊)和T1基本結(jié)構(gòu)的W04模塊之間的路徑的線條進(jìn)行連結(jié))。描繪K的基本結(jié)構(gòu)并與T0的基本結(jié)構(gòu)連結(jié)。分別對T0的基本結(jié)構(gòu)和T1的基本結(jié)構(gòu),描繪錯(cuò)誤處理的K的基本結(jié)構(gòu),分別與T0的基本結(jié)構(gòu)和T1的基本結(jié)構(gòu)連結(jié)。作成圖29所示那樣的處理路徑。
從作成的處理路徑圖抽出的信息歸納成表(處理路徑圖信息表)。圖30示出處理路徑圖信息表。在處理路徑圖信息表中設(shè)置現(xiàn)程序ID(現(xiàn)PGM ID)、處理路徑圖ID、鏈接函數(shù)ID、模塊ID、路徑要素ID、次模塊ID、輸入輸出指令要素ID、指令和定義體的欄目。
‘現(xiàn)程序ID(現(xiàn)PGM ID)’是對每一個(gè)現(xiàn)有程序附加的ID。當(dāng)把多個(gè)現(xiàn)有程序再生為Lyee程序時(shí),利用該現(xiàn)程序ID來識(shí)別它們。
‘處理路徑圖ID’是對每一個(gè)基本結(jié)構(gòu)附加的ID。如上所述,基本上,對每一個(gè)基本結(jié)構(gòu)設(shè)置模塊鏈接函數(shù)程序。識(shí)別對各基本結(jié)構(gòu)進(jìn)行統(tǒng)一控制的模塊鏈接函數(shù)程序的ID存放在鏈接函數(shù)ID欄中。
‘模塊ID’是用來識(shí)別構(gòu)成基本結(jié)構(gòu)的各模塊的ID。給模塊附加ID以便能夠識(shí)別包含在多個(gè)基本結(jié)構(gòu)中的各個(gè)模塊(W04模塊、W02模塊和W03模塊)。
‘路徑要素ID’是識(shí)別從利用模塊ID識(shí)別的模塊延伸的路徑的ID。例如,在圖29所示的處理路徑圖中,從T0W03模塊(T0W04P子模塊)延伸的路徑與T0W04模塊、T1W04模塊、KW04模塊和K(Err)W04模塊連結(jié)(用圖29中的符號(hào)A(分支點(diǎn)A)表示)。對這些路徑分別附加ID(Rute-1、Rute-2、Rute-3和Rute-4)。
‘次模塊ID’是利用由路徑要素ID識(shí)別的路徑識(shí)別與由存放在‘模塊ID’欄中的模塊特定的模塊連結(jié)的模塊(次模塊)的ID。因分別對處理路徑圖描繪的模塊附加上述模塊ID,故使用該模塊ID來表示與由路徑要素識(shí)別的路徑連結(jié)的模塊(次模塊)。
當(dāng)由模塊ID識(shí)別的模塊是訪問畫面、數(shù)據(jù)庫、文件等(讀取數(shù)據(jù)、寫入數(shù)據(jù)等)的模塊時(shí),‘輸入輸出指令要素ID’是識(shí)別該模塊是進(jìn)行用來讀取數(shù)據(jù)(輸入)的處理的模塊還是進(jìn)行用來寫入數(shù)據(jù)(輸出)的處理的模塊的ID。在進(jìn)行用來讀取數(shù)據(jù)(輸入)的處理的模塊中存放‘WRITE-1’,在進(jìn)行用來寫入數(shù)據(jù)(輸出)的處理的模塊中存放‘READ-1’。在‘指令’欄中存放在現(xiàn)有程序的過程部(PROCEDURE DIVISION)中使用的用于數(shù)據(jù)的輸入輸出的具體命令(指令)。
在‘定義體’欄中,存放利用存放在上述‘指令’欄中的指令進(jìn)行處理的定義體名。
回到圖26,根據(jù)現(xiàn)有程序和指令表(按程序)進(jìn)行模塊鏈接函數(shù)程序應(yīng)處理的命令語句(程序語句)的特定處理(模塊鏈接函數(shù)處理命令語句特定處理;步驟84)和第1次坐標(biāo)決定處理(步驟85)。這些處理結(jié)果反映在下面所示的Lyee Belt中。圖31是表示第1次坐標(biāo)決定處理的詳細(xì)的流程圖,圖32是表示一例Lyee Belt(從圖21所示的現(xiàn)有程序作成Lyee Belt)。
在Lyee Belt中(圖32)中包含行號(hào)記述欄、命令種類記述欄、鏈接函數(shù)記述欄和記述了現(xiàn)有程序的過程部(PROCEDURE DIVISION)的程序記述欄(記述了這些信息的表是Lyee Belt)。模塊鏈接函數(shù)處理命令語句特定處理(步驟84)的處理結(jié)果記述在鏈接函數(shù)記述欄中。第1次坐標(biāo)決定處理(步驟85)的結(jié)果記述在程序記述欄中。
在‘命令種類’記述欄中,對程序記述欄記述的命令語句(程序語句)記述包含在其中的規(guī)定命令的種類。記述程序記述欄記述的命令語句包含的命令是對端點(diǎn)單詞進(jìn)行處理的命令(端點(diǎn)命令),還是IF命令語句(IF),或者是與其它的數(shù)據(jù)輸入輸出有關(guān)的命令(CMD)。例如,現(xiàn)有程序的過程部(PROCEDURE DIVISION)記述的命令語句的第14行的‘MOVE 99999 TO KINGAGU OF GAMEN-R’是對端點(diǎn)單詞‘KINGAGU(OF GAMEN-R)’進(jìn)行處理的程序語句。在與第14行對應(yīng)的命令種類記述欄中記述‘端點(diǎn)命令’(表示是得到命令的數(shù)據(jù))。
在‘鏈接函數(shù)’記述欄中,記述模塊鏈接函數(shù)處理命令語句特定處理(步驟84)的處理結(jié)果。該處理是特定上述模塊鏈接函數(shù)程序應(yīng)處理的命令語句(程序語句)的處理。對定義體(畫面等)進(jìn)行物理處理的命令語句附加規(guī)定的標(biāo)志后再進(jìn)行存放。附加了標(biāo)志的命令語句意指在模塊鏈接函數(shù)中(作為模塊鏈接函數(shù)程序的程序記述的一部分)應(yīng)使用的命令語句。
在程序記述欄的現(xiàn)有程序的過程部(PROCEDURE DIVISION)的記述中,追記第1次坐標(biāo)決定處理(步驟85)的處理結(jié)果。下面,參照圖31說明第1次坐標(biāo)決定處理的詳細(xì)情況。第1次坐標(biāo)決定處理基本上由計(jì)算機(jī)進(jìn)行。當(dāng)然,該處理的一部分也可以由技術(shù)人員進(jìn)行。
現(xiàn)有程序的過程部(PROCEDURE DIVISION)記述的現(xiàn)有程序的命令語句的第1行讀入到程序再生裝置1的CPU2(或內(nèi)部存儲(chǔ)器8,存儲(chǔ)裝置)(步驟101、103)。程序再生裝置1的計(jì)數(shù)器加1。
判斷在讀入CPU2的命令語句中是否包含單詞的記述(是否包含單詞)(步驟104)。命令語句是否包含單詞可以通過包含在讀入的命令語句中的一部分字符串是否包含和表示現(xiàn)有程序的過程部(DATADIVISION)中記述的單詞的字符串相同的字符串來判斷。
當(dāng)命令語句中不包含單詞時(shí),使計(jì)數(shù)器加1,CPU2讀入下一行命令語句(步驟104為否,步驟105、步驟103)。
當(dāng)命令語句中包含單詞時(shí)(步驟104中為是),判別該單詞是屬于定義體(畫面、文件、DB(數(shù)據(jù)庫)等),還是數(shù)值(值),或者是既不屬于定義體也不是數(shù)值的單詞(一般是作成現(xiàn)有程序的程序員作成的單詞,將此稱作為工作)。此外,當(dāng)命令語句中的單詞是定義體單詞時(shí),判別是屬于哪一個(gè)定義體的單詞(步驟106)。
在命令語句中包含的單詞是什么樣的單詞的判斷中可以參照數(shù)據(jù)部(DATA DIVISION)的記述和環(huán)境部(ENVIRONMENT DIVISION)的文件節(jié)的(FIFLE-CONTROL)的記述。例如,若讀入第14行的‘MOVE99999 TO KINGAKU OF GAMEN-R’可知在該命令語句中包含‘99999’和單詞‘KINGAKU(OF GAMEN-R)’。又可知‘99999’是數(shù)值(值)。從‘KINGAKU’后面的對定義體的記述(‘OF GAMEN-R’)、數(shù)據(jù)部(DATA DIVISION)的記述(‘FD GAMEN-R’‘和01 GAMEN-F’)和環(huán)境部(ENVIRONMENT DIVISION)的文件節(jié)的(FIFLE-CONTROL)的記述(‘SELECT GAMEN-F’ASSIGN TO 畫面-AAA)中,還可知單詞‘KINGAKU (OF GAMEN-R)’是屬于‘GAMEN-R’畫面定義體的單詞。在‘99999’中附加表示是數(shù)值(值)的識(shí)別符(第1次坐標(biāo),‘畫面’),在單詞‘KINGAKU (OF GAMEN-R)’中附加表示屬于畫面定義體的單詞的識(shí)別符(第1次坐標(biāo),‘畫面’)。這樣一來,在Lyee Belt的程序記述欄中追記第1次坐標(biāo)(‘MOVE 99999(值) TOKINGAKU OF GAMEN-R(畫面)’)。
在定義體單詞、數(shù)值和工作以外的單詞(第18行的‘狀態(tài)’)中,附加表示該意思的識(shí)別符(第1坐標(biāo),這里是‘控制BOX’)。追記的識(shí)別符與程序記述欄記述的程序(現(xiàn)有程序)一起暫時(shí)存儲(chǔ)在內(nèi)部存儲(chǔ)8(存儲(chǔ)裝置)中。
其次,對于附加了定義體種類、數(shù)值或工作中的任何一個(gè)的識(shí)別符的單詞,判斷該單詞是端點(diǎn)單詞還是始點(diǎn)單詞(步驟107)。當(dāng)既不是端點(diǎn)單詞也不是始點(diǎn)單詞時(shí)(步驟107為否),轉(zhuǎn)移到對下一個(gè)命令語句的處理(步驟105、步驟103)。
端點(diǎn)單詞或始點(diǎn)單詞的判斷通過在單詞的檢測處理(步驟104)中檢測出的單詞是不是使用了用來代入MOVE語句或COMPUTE語句等的值的(參照)的單詞和代入值的單詞的命令語句中的單詞。例如,第22行的‘COMPUTE WK(工作)=TANK OF GAMEN-R(畫面)*SU OFGAMEN-R(畫面)’是COMPUTE語句,所以,可知該命令語句包含端點(diǎn)單詞和始點(diǎn)單詞。當(dāng)是COMPUTE語句時(shí),位于‘=(等于)’之前的單詞是代入數(shù)據(jù)的單詞(端點(diǎn)單詞)。位于‘=(等于)’之后的單詞是用來代入數(shù)據(jù)的單詞(始點(diǎn)單詞)。在單詞‘WK’中附加表示是端點(diǎn)單詞的識(shí)別符,在單詞‘TANKA’和‘SU’中附加表示是始點(diǎn)單詞的識(shí)別符(‘COMPUTE WK(端工作)=TANK OF GAMEN-R(始畫面)*SU OF GAMEN-R(始畫面)’)。當(dāng)是MOVE語句時(shí),位于‘TO’之前的單詞是始點(diǎn)單詞,位于‘TO’之后的單詞是端點(diǎn)單詞。在內(nèi)部存儲(chǔ)器8存儲(chǔ)的程序中追記識(shí)別符(表示識(shí)別符的數(shù)據(jù))(追記了定義體識(shí)別符的程序被更新)。
當(dāng)結(jié)束Lyee Belt的作成和處理路徑圖信息表的作成時(shí),轉(zhuǎn)移到下面的標(biāo)準(zhǔn)化處理(圖19,步驟52)。圖33是表示標(biāo)準(zhǔn)化處理(步驟52)的詳細(xì)內(nèi)容的流程圖。
在標(biāo)準(zhǔn)化處理中,利用第2次坐標(biāo)決定處理(步驟91),對上述Lyee Belt(圖32)追記新的信息。進(jìn)而,進(jìn)行命令展開處理(步驟92)和IF語句的分析處理(步驟92),作成命令列表(后述)。根據(jù)作成的命令列表和上述處理路徑圖信息表等進(jìn)行Lyee ALL登錄信息作成處理(步驟54)。以下,按順序詳細(xì)說明這些處理。
圖34是表示第2次坐標(biāo)決定處理(步驟91)的詳細(xì)流程的流程圖。圖35表示利用第2次坐標(biāo)決定處理得到的Lyee belt(更新的Lyee Belt)。在第2次坐標(biāo)處理(圖34)中,因包含和上述第1次坐標(biāo)處理相同的處理,故對和上述第1次坐標(biāo)處理相同的處理添加相同的符號(hào)并省略重復(fù)說明。
第2次坐標(biāo)處理和第1次坐標(biāo)處理一樣,也利用計(jì)算機(jī)進(jìn)行處理。當(dāng)然,技術(shù)人員要驗(yàn)證處理結(jié)果,必要時(shí)技術(shù)人員也可以對處理結(jié)果進(jìn)行修正等。
對已檢測出的各單詞(單詞附加有表示上述識(shí)別符(第1次坐標(biāo))的數(shù)據(jù))判別模塊鏈接函數(shù)種類(是T0、T1或K)和模塊種類(是W04模塊單詞、W02模塊單詞、W02G子模塊單詞或W04P子模塊單詞),將表示該結(jié)果的識(shí)別符附加在單詞上(步驟111、分配給單詞模塊)。
單詞的模塊鏈接函數(shù)種類的判斷可以根據(jù)包含在CPU2(或內(nèi)部存儲(chǔ)器8;存儲(chǔ)裝置)讀入的命令語句中的單詞所屬的定義體種類進(jìn)行判斷。例如,定義體‘GAMEN-R’是畫面定義體。屬于畫面定義體‘GAMEN-R’的單詞具有作為模塊鏈接函數(shù)T0(模塊鏈接函數(shù)鐘樓是‘T0’)的地位。屬于定義體‘GADEN-R’的單詞(‘SHIN-CD’、‘SU’、‘TANKA’和‘KINGAKU’)(根據(jù)這些單詞后面的‘OF GAMEN-R’的記述可以把握屬于定義體‘GAMEN-R’的單詞)的模塊鏈接函數(shù)的種類判斷為‘T0’。當(dāng)CPU2讀入的命令語句包含這些單詞時(shí),追記識(shí)別符(表示是T0、T1或K的數(shù)據(jù))使其附加在該單詞上。
單詞的模塊種類的判斷通過該單詞是與輸入有關(guān)的單詞還是與輸出有關(guān)的單詞來進(jìn)行判斷,例如,從過程部(PROCEDURE DIVISION)的第13行的記述可知,單詞‘SHN-CD(OF GAMEN-R)’和‘SU(OFGAMEN-R)’是與輸入有關(guān)的單詞、即W02模塊單詞。最后,在單詞‘SHIN-CD’(OF GAMEN-R)’和‘SU(OF GAMEN-R)’中附加了稱之為‘T0W02’的識(shí)別符(追記在程序記述欄中)(圖35;Lyee Belt的更新)。現(xiàn)有程序包含的各單詞分配給多個(gè)模塊中的任何一個(gè)模塊。
當(dāng)?shù)?次坐標(biāo)決定處理(步驟91)結(jié)束時(shí),轉(zhuǎn)移到命令語句的展開處理(步驟52)。圖是表示命令語句的展開(基本結(jié)構(gòu)的充足)處理的流程的流程圖。對和第1次坐標(biāo)處理(圖31)相同的處理添加相同的符號(hào)并避免重復(fù)說明。命令語句的展開處理基本上也由計(jì)算機(jī)進(jìn)行。
對CPU2(或內(nèi)部存儲(chǔ)器8)讀入的命令語句,判斷該命令語句是否用來代入值(參照)的單詞(始點(diǎn)單詞)和值應(yīng)被代入的單詞(端點(diǎn)單詞)所使用的命令語句(MOVE語句或COMPUTE語句等)(是否包含端點(diǎn)單詞和始點(diǎn)單詞的程序語句)(步驟121)。當(dāng)是MOVE語句或COMPUTE語句等之外的程序語句時(shí),使計(jì)數(shù)器加1。讀入下一行的命令語句(步驟121為否,步驟105)。
當(dāng)讀入的命令語句是MOVE語句或COMPUTE語句等時(shí)(步驟121為是),可以參照包含在那里的始點(diǎn)單詞的第2次坐標(biāo)和端點(diǎn)單詞的第2次坐標(biāo)。判定是否滿足Lyee的循環(huán)結(jié)構(gòu)(基本結(jié)構(gòu))(步驟122)。
如上所述,按Lyee的法則作成的程序(Lyee程序)在編程時(shí)使其按W04模塊、W02模塊和W03模塊的順序進(jìn)行處理。在現(xiàn)有程序中,因沒有按這樣的作成方法進(jìn)行程序的作成,故存在不滿足循環(huán)結(jié)構(gòu)的程序(命令語句)。命令語句的展開(循環(huán)結(jié)構(gòu)的充足)處理是用來檢測出不滿足循環(huán)結(jié)構(gòu)的命令語句并使這樣的命令語句滿足循環(huán)結(jié)構(gòu)的處理。
例如,第21行的‘MOVE TANKA OF SAHIN-TBL(始T1W02) TOTANKA OF GAMEN-R(端T0W04)’變成把存儲(chǔ)在T1W02模塊單詞(TANKA(OF SAHIN-TBL))中的數(shù)據(jù)存儲(chǔ)在T0W04模塊單詞(TANKA(OF GAMEN-R))中的命令語句。該命令語句若從Lyee的法則的觀點(diǎn)來看,就是T1W02模塊的下一個(gè)T0W04模塊動(dòng)作的命令語句。在T0、T1、K中,各記述與按Lyee的法則使其按W04模塊、W02模塊和W03模塊的順序動(dòng)作程序結(jié)構(gòu)相反。因此,在命令語句的展開處理中,當(dāng)這樣的命令語句被CPU2讀入時(shí),進(jìn)行追記(或分解、展開命令語句)命令語句(和新的單詞)的處理,使該命令語句滿足循環(huán)結(jié)構(gòu)(步驟123)。對第21行命令語句進(jìn)行命令語句的展開處理的結(jié)果(命令列表)示于圖37。
參照圖29所示的處理路徑圖和圖37所示的命令列表,說明對第21行命令語句‘MOVE TANKA OF SAHIN-TBL(始T1W02) TO TANKAOF GAMEN-R(端T0W04)’的命令語句展開處理。
第21行命令語句的始點(diǎn)單詞‘TANKA(OF SAHIN-TBL)’所屬的模塊是T1W02模塊。作為Lyee法則中的單詞向模塊的分配規(guī)則之一,有與W02模塊單詞相同的單詞也可以分配給W02G子模塊的規(guī)則。向T1W02G子模塊分配新的單詞‘TANKA(OF SAHIN-TBL)’。追記使T1W02模塊和T1W02G子模塊連接的命令語句‘MOVE TANKA OFSAHIN-TBL(T1W02) TO TANKA OF SAHIN-TBL(T1W02G)’。
作為Lyee法則中的單詞向模塊分配規(guī)則之一,有與W02G子模塊單詞對應(yīng)的單詞也可以分配給W04P子模塊的規(guī)則。向T1W04P子模塊分配單詞‘TANKA(OF SAHIN-TBL)’。追記使T1W02G子模塊和T1W04P子模塊連接的命令語句‘MOVE TANKA OF SAHIN-TBL(T1W02G) TOTANKA OF SAHIN-TBL(T1W04P邊界)’。這時(shí)將被分配的單詞特別地稱作邊界單詞。
因第21行命令語句的端點(diǎn)單詞(TANKA OF GAMEN-F(T0W04))是在線處理T0的基本結(jié)構(gòu)的單詞,故有必要使數(shù)據(jù)從批處理T1的基本結(jié)構(gòu)移動(dòng)(相位)到在線處理T0的基本結(jié)構(gòu)。這時(shí),在在線處理T0的基本結(jié)構(gòu)的W04P子模塊中設(shè)置相位前的新單詞(TANKA OFGAMEN-R(T0W04P境境))。時(shí)將被分配的單詞特別地稱作境境單詞。追記使批處理T1的T1W04P子模塊和在線處理T0W04P子模塊連接的命令語句(MOVE TANKA OF SAHIN-TBL(T1W04P) TO TANKA OF GAMEN-R(T0W04P境境))。
有必要使存放在境境單詞中的數(shù)據(jù)存放到W04P子模塊中。在在線處理T0的W04P子模塊中設(shè)置新的單詞(TANKA OF GAMEN-R(T0W04P))設(shè)置使境境單詞和新生成的W04P子模塊單詞連結(jié)的命令語句(MOVE TANKA OF GAMEN-R(T0W04P境境)TO TANKA OF GAMEN-R(T0W04P))。
最后,追加使新分配給T0W04P子模塊的單詞(TANKA OF GAMEN-R(T0W04P)與T0W04模塊單詞(TANKA OF GAMEN-R(T0W04)連結(jié)的命令語句(MOVE TANKA OF GAMEN-R(T0W04P) TO TANKA OF GAMEN-R(T0W04))。
在命令列表(圖37)中,記述進(jìn)行命令語句的展開處理的行號(hào)、展開的命令語句在Lyee程序中的地位(種類)、處理命令語句的模塊(模塊函數(shù)程序)(所在)和展開后的命令語句。不用說,命令列表的內(nèi)容存儲(chǔ)在程序再生裝置1的存儲(chǔ)器(存儲(chǔ)裝置)中。當(dāng)然,也可以將命令列表(命令語句的展開處理的處理結(jié)果)記述在Lyee Belt的程序記述欄中(這時(shí),Lyee Belt的程序記述欄再一次被更新)。
其次,進(jìn)行IF語句的分析處理(步驟93)。圖38~圖40是表示IF語句的分析處理的詳細(xì)情況的流程圖。IF語句的分析處理利用處理路徑圖信息表(或處理路徑圖)。利用處理路徑圖信息表存放的信息,可以由計(jì)算機(jī)進(jìn)行分析處理。也可以由技術(shù)人員根據(jù)處理路徑圖信息表(處理路徑圖)進(jìn)行向計(jì)算機(jī)的信息輸入作業(yè)。
IF語句的分析處理是判定現(xiàn)有程序中使用的IF語句的命令語句和在Lyee程序上的地位的處理。現(xiàn)有程序中出現(xiàn)的IF語句大致可分為①規(guī)定從一個(gè)基本結(jié)構(gòu)向另一個(gè)基本結(jié)構(gòu)(或結(jié)束處理)的路徑的IF語句;②規(guī)定輸入條件或輸出條件的IF語句;③控制等效單詞(在2個(gè)以上的命令語句中使用相同端點(diǎn)單詞時(shí),將該端點(diǎn)單詞特別稱作等效單詞)的IF語句。根據(jù)IF語句的分析處理(圖38~圖40),可以把握現(xiàn)有程序中的IF語句是否應(yīng)該在Lyee程序的任何一個(gè)要素程序中使用。
從處理路徑圖信息表(圖30)的‘路徑要素ID’欄(或處理路徑圖(圖29))選擇一個(gè)應(yīng)利用路徑作用要素程序分支的分支點(diǎn)(步驟131)。
當(dāng)選擇的分支點(diǎn)是面向錯(cuò)誤處理的基本結(jié)構(gòu)的分支點(diǎn)時(shí)(步驟132為是),從Lyee Belt的程序記述欄中抽出與作為選擇的分支的下一個(gè)(后面的)處理的錯(cuò)誤處理的基本結(jié)構(gòu)的處理關(guān)連的IF語句。即,這里抽出的IF語句是選擇根據(jù)規(guī)定的條件進(jìn)行錯(cuò)誤處理的處理的命令語句。
抽出的IF語句具有作為成為上述選擇的分支點(diǎn)的源的模塊(例如,成為圖29的處理路徑圖的分支點(diǎn)A的源的模塊是T0W904P子模塊)的路徑作用要素程序(參照圖7、圖14)中使用的執(zhí)行條件的地位。抽出的IF語句和應(yīng)使用該IF語句的模塊的關(guān)系暫時(shí)存儲(chǔ)在內(nèi)部存儲(chǔ)器8中(步驟133)。
在圖29所示處理路徑圖中,分支點(diǎn)A(在分支點(diǎn)A中路徑分成4條)包含面向錯(cuò)誤處理的分支點(diǎn)。作為控制錯(cuò)誤處理的基本結(jié)構(gòu)的IF語句,抽出第13行和第18行(參照圖35)(因‘99999’可以作為表示錯(cuò)誤的字符來把握,故控制與‘99999’關(guān)連的命令語句的IF語句作為控制錯(cuò)誤處理的基本結(jié)構(gòu)的IF語句抽出)??梢愿鶕?jù)其后的‘ELSE’下面的記述把握第13行IF語句是與畫面關(guān)連的處理中的向錯(cuò)誤處理的分支(可以根據(jù)其后的‘ELSE’下面的記述把握第18行IF語句是與DB(數(shù)據(jù)庫)關(guān)連的處理中的向錯(cuò)誤處理的分支)。第13行的IF語句具有作為分支點(diǎn)A的源的T0W04P子模塊的路徑作用要素程序中使用的IF語句的地位。第18行的IF語句具有作為分支點(diǎn)C的源的T1W04P子模塊的路徑作用要素程序中使用的IF語句的地位。
當(dāng)選擇的分支點(diǎn)不是面向錯(cuò)誤處理的基本結(jié)構(gòu)的分支點(diǎn)時(shí)(面向進(jìn)行通常處理的T0、T1或K的基本結(jié)構(gòu)的分支點(diǎn)),與進(jìn)行選擇的分支點(diǎn)的下一個(gè)處理的基本結(jié)構(gòu)的處理關(guān)連的IF語句從現(xiàn)有程序的記述中抽出,抽出的該IF語句具有作為選擇的分支點(diǎn)的源的模塊的路徑作用要素程序中使用的IF語句的地位(步驟134)。例如,圖29所示的處理路徑圖中的分支點(diǎn)B的一方是面向結(jié)束處理的基本結(jié)構(gòu)的分支點(diǎn)。抽出程序記述欄的第09行,作為T0W02模塊的路徑作用要素程序(圖14)中的‘執(zhí)行條件的判斷’的部分使用的IF語句。
其次,利用輸入作用要素程序或輸出作用要素程序,從處理路徑圖信息表(處理路徑圖)中選擇有可能規(guī)定輸入條件或輸出條件的模塊中的一個(gè)模塊(步驟141)。當(dāng)只有在規(guī)定的條件下才從數(shù)據(jù)庫或畫面讀取數(shù)據(jù)時(shí),規(guī)定輸入條件。當(dāng)在規(guī)定的條件下向數(shù)據(jù)庫或畫面輸出數(shù)據(jù)時(shí),規(guī)定輸出條件。
對選擇的模塊判斷有沒有輸入條件或輸出條件(步驟142)。當(dāng)沒有這樣的的條件時(shí),進(jìn)入下一個(gè)模塊的選擇(步驟142為否,步驟140,步驟141)。
若有輸入條件或輸出條件,則從程序記述欄的記述中抽出這樣的輸入條件或輸出條件。若步驟141中選擇的模塊是W02模塊,則抽出表示輸入條件的IF語句作為選擇的W02模塊的輸入作用要素程序的‘執(zhí)行條件’。若選擇的模塊的W04模塊,則抽出表示輸出條件的IF語句作為選擇的W04模塊的輸出作用要素程序的‘執(zhí)行條件’(步驟143)。在圖21所示的現(xiàn)有程序(圖35所示的程序記述欄的程序)中沒有這樣的IF語句。
最后,從程序記述藍(lán)中檢索端點(diǎn)單詞是等效單詞那樣的MOVE語句或COMPUTE語句等(步驟151)。當(dāng)找到了這樣的MOVE語句或COMPUTE語句等時(shí),抽出控制裝置該命令語句的IF語句。在用來把數(shù)據(jù)存放在MOVE語句使用的等效單詞(端點(diǎn)單詞)中的始點(diǎn)單詞所屬的W04P子模塊的邏輯要素程序中的‘成立?’中,使用抽出的IF語句(步驟152)。對包含所以的等效單詞的程序語句進(jìn)行該處理(步驟153)。
例如,參照圖35的程序記述欄,第24行和第26行都可以把‘KINGAKU OF GAMEN-R(端T0W04)’作為端點(diǎn)單詞使用。可知端點(diǎn)單詞‘KINGAKU OF GAMEN-R(端T0W04)’是等效單詞??刂圃摰刃卧~的命令語句(MOVE)的IF語句是第23行的IF語句。第23行的IF語句具有作為相對該等效單詞的始點(diǎn)單詞‘WK’所屬的K-W04P子模塊的邏輯要素程序的‘成立?’部分的地位。
上述IF語句的分析處理不必按上述順序進(jìn)行。可以首先進(jìn)行等效單詞的IF語句的分析處理(圖40),也可以首先進(jìn)行輸入/輸出條件的IF語句的分析處理(圖39)。
當(dāng)完成由命令語句的展開處理(步驟93)作成的命令列表,并結(jié)束IF語句的分析處理(步驟94)時(shí),進(jìn)入向Lyee ALL登錄信息的變換處理(步驟94)。該變換處理把利用直到上述IF語句的分析處理的一連串處理得到的信息(存儲(chǔ)在處理路徑圖信息表中的信息,利用命令語句的展開處理設(shè)置新的單詞的第2次坐標(biāo),現(xiàn)有程序中的IF語句在Lyee程序中的地位等)變換成后述的Lyee ALL處理程序的處理的輸入數(shù)據(jù)形式。因是變更數(shù)據(jù)形式(數(shù)據(jù)的排列等)的處理,故省略詳細(xì)說明。
數(shù)據(jù)形式的變更(Lyee ALL登錄的作成)一結(jié)束,則進(jìn)入Lyee ALL處理(圖19;步驟53)。圖41是表示Lyee ALL處理的內(nèi)容的流程圖。
如上所述,在Lyee程序中,準(zhǔn)備具有預(yù)定的處理結(jié)構(gòu)的模塊鏈接函數(shù)程序、模塊函數(shù)程序和要素程序的一般形式(模板)。在模板的規(guī)定位置(‘成立?’、‘自己生成’、‘判斷’等)代入處理路徑圖信息表的信息、IF語句(成立條件信息)和現(xiàn)有程序中出現(xiàn)的命令語句。例如,現(xiàn)有程序中的MOVE語句和COMPUTE語句作為自己生成信息代入該命令語句中的端點(diǎn)單詞所屬的基本結(jié)構(gòu)中的W04P子模塊的邏輯要素程序的‘自己生成’中。完成具有現(xiàn)有程序所達(dá)到的處理功能并具有符合Lyee法則的程序結(jié)構(gòu)的多個(gè)程序(圖7所示的程序)(Lyee程序)(步驟96)。
最后,以COBOL程序?yàn)槔f明現(xiàn)有程序的整理處理(圖26,步驟82)。
在由COBOL作成的程序中,有時(shí)包含復(fù)制語句。預(yù)先把原始程序(原語句)的一部分登錄在程序庫中,對其它程序直接進(jìn)行復(fù)制再利用。當(dāng)使用復(fù)制語句時(shí),進(jìn)行展開由該復(fù)制語句指定的原語句的處理(復(fù)制語句展開處理)。
圖42示出數(shù)據(jù)部(DATA DIVISION)中復(fù)制語句展開處理的樣子。圖43、圖44分別示出過程部(PROCEDURE DIVISION)復(fù)制語句展開處理的樣子。
如圖42所示,在展開前的程序記述中,包含‘COPY A.’和‘COPYB.’的記述,當(dāng)復(fù)制語句A(A PROC后面的部分(由方框包圍))和復(fù)制語句B(A PROC后面的部分)另外準(zhǔn)備時(shí),在‘COPY A.’的部分和‘COPY B.’的部分分別展開A PROC的內(nèi)容和B PROC的內(nèi)容。展開前的程序記述(左側(cè))改寫成展開后的程序記述(右側(cè))。
圖43的展開例子也一樣。在‘COPY X.’的部分分別展開X PROC的內(nèi)容。圖44的展開例子也一樣。在‘COPY Y.’的部分分別展開Y PROC的內(nèi)容。
在形成現(xiàn)有程序中(主程序中)有時(shí)包含調(diào)用子程序的記述。由主程序調(diào)出子程序,當(dāng)調(diào)出的子程序執(zhí)行結(jié)束時(shí),再返回主程序的處理。這時(shí),主程序包含調(diào)用子程序的命令(子程序的CALL)。代替主程序中的子程序的CALL,進(jìn)行將該子程序的命令語句在主程序中展開(插入)的處理(子程序展開處理)。圖45表示子程序展開處理的樣子。
如圖45所示,在展開前的主程序中包含讀出子程序的CALL命令(CALL’SUB001’USING WK-A WK-B WK-C),當(dāng)準(zhǔn)備子程序(程序ID(PROGRAM-ID.)是‘SUB001.’的子程序),代替主程序中的CALL命令,將由該CALL命令調(diào)用的子程序的內(nèi)容在主程序中展開(插入)(在圖45所示的子程序中,因COMPUTE語句后面的部分(‘WK-Z=2*WK-X*WK-Y*WK-Y’)是子程序的實(shí)質(zhì)的部分,故只有該部分在主程序中展開)。安裝包含在CALL命令‘USING WK-A WK-BWK-C’的記述,子程序中的WK-X、WK-Y、WK-Z在主程序中分別置換成WK-A、WK-B、WK-C。
當(dāng)記述了現(xiàn)有程序中不要的程序記述(不能執(zhí)行的程序記述)時(shí),進(jìn)行刪除這樣的記述的處理(清除處理)。刪除現(xiàn)有程序中不能執(zhí)行的部分。
例如,如圖46所示,跳轉(zhuǎn)命令(GO TO)的跳轉(zhuǎn)目的地的記述(LABEL-X)存在現(xiàn)有程序中,但當(dāng)現(xiàn)有程序不存在跳轉(zhuǎn)到該跳轉(zhuǎn)目的地的命令(GO TO LABEL-X)的記述時(shí),利用清除處理刪除LABEL-X的記述。
在現(xiàn)有程序所使用的命令中,有可以置換成其它命令的。例如,在COBOL中,使用ADD、SUBTRACT、MULTIPLY和DIVIDE的命令語句可以全部置換成使用了COMPUTE命令語句。使用了SET的命令語句可以使用MOVE進(jìn)行置換。對于預(yù)先決定由最終作成的Lyee程序使用的命令情況,修正程序使其使用該已決定的命令(將其稱作變則修正處理)。
例如,在預(yù)先決定由最終作成的Lyee程序不使用‘SET’和使用‘MOVE’的情況下,如圖47所示,程序中的所謂‘SET IDX TO 1’的記述可以置換成‘MOVE 1托IDX’。
進(jìn)行整形處理。在整形處理中,對現(xiàn)有程序進(jìn)行下面的處理。
(a)刪除現(xiàn)有程序中的循環(huán),并設(shè)置空格。此外,為了明確命令語句的分界,在命令語句的最后附加END語句(命令)。
(b)分解多個(gè)單詞包含的命令語句。例如,如圖48所示,將命令語句‘MOVE A TO B,C’分解成2和命令語句‘MOVE A TO B’和‘MOVE A TO C’。此外,如圖49所示,在IF條件的部分中,追加意味IF語句的結(jié)束的‘END-IF’。
(c)刪除指令行。
(d)單層化。對COBOL的情況,通過使用PERFORM語句等,有時(shí)程序變成多層結(jié)構(gòu)。將其變成單層結(jié)構(gòu)。例如,如圖50所示,當(dāng)在現(xiàn)有程序中使用PERFORM語句時(shí),刪除PERFORM命令和與其對應(yīng)的EXIT命令,并使由PERFORM語句調(diào)出的程序部分移動(dòng)到PERFORM命令的部分。
在上述程序再生處理中,說明了將由COBOL語言作成的現(xiàn)有程序再構(gòu)筑成符合Lyee開發(fā)方法的程序(Lyee程序),但對于由其它程序語言作成的現(xiàn)有程序,基本上可以使用同樣的思路。即,和由COBOL語言作成的程序相同,由其它程序語言作成的程序(現(xiàn)有程序)也存在規(guī)定的規(guī)則(程序記述的約束),若能把握該規(guī)定的規(guī)則,就能夠把握使用什么樣的單詞(數(shù)據(jù)·字段),該單詞是與什么樣的輸入輸出裝置(定義體)關(guān)連的單詞等。對模塊分配現(xiàn)有程序出現(xiàn)的單詞和滿足Lyee的基本結(jié)構(gòu)的新的單詞(決定第1次和第2次坐標(biāo)),通過作成組裝有該單詞和命令語句的模板(使用了模板的各種程序(圖7)),即使對于使用其它程序語言作成的現(xiàn)有程序,也可以再構(gòu)筑成符合Lyee的法則的Lyee程序。
權(quán)利要求
1.一種程序再生方法,將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的結(jié)構(gòu)的程序而維持上述現(xiàn)有程序達(dá)到的功能,其特征在于以識(shí)別出與單詞關(guān)連的定義體的形式從上述現(xiàn)有的程序中抽出那里使用的單詞,與和該單詞關(guān)連的定義體的種類對應(yīng),將抽出的單詞分配給一個(gè)或多個(gè)模塊,將現(xiàn)有程序的各命令語句或命令變換成符合多個(gè)程序構(gòu)成要素中的某一個(gè)的形式,這些程序構(gòu)成要素是在已分配了該命令語句或命令所包含的單詞的一個(gè)或多個(gè)模塊中,而且具有符合Lyee開發(fā)方法的結(jié)構(gòu)。
2.權(quán)利要求1記載的程序再生方法,其特征在于把在現(xiàn)有程序的命令語句或命令中用來生成應(yīng)存放在由單詞表現(xiàn)的字段中的數(shù)據(jù)的命令語句或命令變換成符合上述多個(gè)程序構(gòu)成要素中的用于數(shù)據(jù)生成的程序構(gòu)成要素的形式。
3.權(quán)利要求1記載的程序再生方法,其特征在于在現(xiàn)有程序的命令語句或命令中,對包含2個(gè)以上的單詞的命令語句或命令,判定該命令語句或命令使用的2個(gè)以上的單詞各自分配的2個(gè)以上的模塊之間的關(guān)系是否滿足規(guī)定的順序,當(dāng)2個(gè)以上的模塊之間的關(guān)系不滿足規(guī)定的順序時(shí),將該命令語句或命令分解成多個(gè)命令語句或命令,使分解后的命令語句或命令分別包含新的單詞,將新的單詞分配給一個(gè)或多個(gè)模塊,使分別包含在分解后的命令語句或命令中的2個(gè)以上的單詞所分配的2個(gè)以上的模塊之間的關(guān)系滿足規(guī)定的順序。
4.權(quán)利要求1記載的程序再生方法,其特征在于識(shí)別抽出的單詞是端點(diǎn)單詞還是始點(diǎn)單詞。
5.權(quán)利要求1記載的程序再生方法,其特征在于在現(xiàn)有程序的命令語句或命令中,把對定義體的進(jìn)行物理的輸入輸出處理的命令語句或命令作為上述多個(gè)程序構(gòu)成要素中用來統(tǒng)一控制模塊的程序構(gòu)成要素的一部分。
6.權(quán)利要求1記載的程序再生方法,其特征在于上述模塊是與輸出處理有關(guān)的W04模塊、與輸入處理有關(guān)的W02模塊和與數(shù)據(jù)生成處理有關(guān)的W03模塊中的任何一種模塊。當(dāng)抽出的單詞與輸入處理使用的定義體關(guān)連時(shí),將該單詞至少分配給W02模塊,當(dāng)抽出的單詞與輸出處理使用的定義體關(guān)連時(shí),將該單詞至少分配給W04模塊。
7.權(quán)利要求6記載的程序再生方法,其特征在于與和現(xiàn)有程序使用的單詞關(guān)連的定義體的種類對應(yīng),設(shè)置W04模塊、W02模塊和W03模塊的組。
8.權(quán)利要求6記載的程序再生方法,其特征在于當(dāng)上述現(xiàn)有程序使用的單詞是與定義體不關(guān)連的單詞時(shí),另外設(shè)置用來接受該單詞分配的W04模塊、W02模塊和W03模塊的組。
9.權(quán)利要求6記載的程序再生方法,其特征在于當(dāng)上述現(xiàn)有程序中包含錯(cuò)誤處理的記述時(shí),另外設(shè)置用來處理該錯(cuò)誤處理的W04模塊、W02模塊和W03模塊的組。
10.一種程序再生方法,將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的結(jié)構(gòu)的新程序而維持上述現(xiàn)有程序達(dá)到的功能,其特征在于從上述現(xiàn)有的程序中抽出由現(xiàn)有程序控制的定義體,對抽出的定義體,準(zhǔn)備用來使由W04模塊、W02模塊和W03模塊的組構(gòu)成的基本結(jié)構(gòu)動(dòng)作的多個(gè)程序構(gòu)成要素,以識(shí)別該單詞所屬的定義體和該單詞的輸入輸出區(qū)分的形式從上述現(xiàn)有程序中抽出現(xiàn)有程序使用的單詞,與抽出的單詞所屬的定義體和輸入輸出區(qū)分對應(yīng),將該單詞分配給對該單詞所屬的定義體的W04模塊、W02模塊和W03模塊中的一個(gè)或多個(gè)模塊,將包含現(xiàn)有程序的單詞的命令語句或命令變換成變換成符合多個(gè)程序構(gòu)成要素中的某一個(gè)的形式,這些程序構(gòu)成要素是在通過單詞與該命令語句或命令關(guān)連的模塊中,而且具有符合Lyee開發(fā)方法的結(jié)構(gòu)。
11.權(quán)利要求10記載的程序再生方法,其特征在于當(dāng)抽出的單詞屬于輸入處理使用的定義體時(shí),將該單詞至少分配給W02模塊,當(dāng)抽出的單詞屬于輸出處理使用的定義體時(shí),將該單詞至少分配給W04模塊。
12.權(quán)利要求10記載的程序再生方法,其特征在于當(dāng)抽出的單詞是不屬于任何一個(gè)抽出的定義體的單詞時(shí),另外準(zhǔn)備使該單詞所分配的基本結(jié)構(gòu)動(dòng)作的多個(gè)程序構(gòu)成要素。
13.權(quán)利要求10記載的程序再生方法,其特征在于當(dāng)上述現(xiàn)有程序不包含錯(cuò)誤處理的記述時(shí),另外準(zhǔn)備使用來處理該錯(cuò)誤處理的基本結(jié)構(gòu)動(dòng)作的多個(gè)程序構(gòu)成要素。
14.權(quán)利要求10記載的程序再生方法,其特征在于把在現(xiàn)有程序的命令語句或命令中用來生成應(yīng)存放在由單詞表現(xiàn)的字段中的數(shù)據(jù)的命令語句或命令變換成符合上述多個(gè)程序構(gòu)成要素中的用于數(shù)據(jù)生成的程序構(gòu)成要素的形式。
15.權(quán)利要求10記載的程序再生方法,其特征在于在現(xiàn)有程序的命令語句或命令中,對包含2個(gè)以上的單詞的命令語句或命令,判定該命令語句或命令使用的2個(gè)以上的單詞各自分配的2個(gè)以上的模塊之間的關(guān)系是否滿足規(guī)定的順序,當(dāng)2個(gè)以上的模塊之間的關(guān)系不滿足規(guī)定的順序時(shí),將該命令語句或命令分解成多個(gè)命令語句或命令,使分解后的命令語句或命令分別包含新的單詞,將新的單詞分配給W04模塊、W02模塊和W03模塊中的一個(gè)或多個(gè)模塊,使分別包含在分解后的命令語句或命令中的2個(gè)以上的單詞所分配的2個(gè)以上的模塊之間的關(guān)系滿足規(guī)定的順序。
16.權(quán)利要求10記載的程序再生方法,其特征在于在現(xiàn)有程序的命令語句或命令中,把對定義體的進(jìn)行物理的輸入輸出處理的命令語句或命令作為上述多個(gè)程序構(gòu)成要素中用來統(tǒng)一控制模塊的程序構(gòu)成要素的一部分。
17.權(quán)利要求10記載的程序再生方法,其特征在于利用一個(gè)基本結(jié)構(gòu)或多個(gè)基本結(jié)構(gòu)的組合,從現(xiàn)有程序作成表示上述現(xiàn)有程序的處理流程的處理路徑圖。
18.權(quán)利要求17記載的程序再生方法,其特征在于當(dāng)在上述處理路徑圖中表現(xiàn)了連接2個(gè)以上不同的基本結(jié)構(gòu)的路徑或與結(jié)束處理連接的路徑時(shí),從上述現(xiàn)有程序中抽出表示該路徑的分支點(diǎn)的分支條件的條件命令語句或條件命令,把抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素的形式,該程序構(gòu)成要素是在上述分支點(diǎn)的分支源中的模塊的多個(gè)程序構(gòu)成要素中用于路徑判斷的程序構(gòu)成要素。
19.權(quán)利要求10記載的程序再生方法,其特征在于根據(jù)現(xiàn)有程序的記述,檢索表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令,當(dāng)抽出了表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令時(shí),把抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素的形式,該程序構(gòu)成要素是在該數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件作用的模塊中的多個(gè)程序構(gòu)成要素中用于輸入作用或輸出作用的程序構(gòu)成要素。
20.權(quán)利要求10記載的程序再生方法,其特征在于根據(jù)現(xiàn)有程序的記述,檢索表示等效單詞的判斷條件的條件命令語句或條件命令,當(dāng)抽出了表示等效單詞的判斷條件的條件命令語句或條件命令時(shí),把抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素的形式,該程序構(gòu)成要素是在該等效單詞分配的模塊中的多個(gè)程序構(gòu)成要素中用于數(shù)據(jù)生成的程序構(gòu)成要素。
21.一種程序再生裝置,其特征在于,包括存儲(chǔ)構(gòu)成Lyee程序的多個(gè)程序構(gòu)成要素的第1存儲(chǔ)裝置;存儲(chǔ)從根據(jù)現(xiàn)有程序作成的處理路徑圖得到的模塊鏈接函數(shù)信息、基本結(jié)構(gòu)信息、模塊信息、定義體信息、路徑信息和指令信息的第2存儲(chǔ)裝置;存儲(chǔ)給定的現(xiàn)有程序的第3存儲(chǔ)裝置;根據(jù)上述第2存儲(chǔ)裝置存儲(chǔ)的模塊鏈接函數(shù)信息、基本結(jié)構(gòu)信息、模塊信息和定義體信息將第3存儲(chǔ)裝置存儲(chǔ)的現(xiàn)有程序使用的單詞分配給包含在與該單詞關(guān)連的基本結(jié)構(gòu)中的W04模塊、W02模塊和W03模塊中的一個(gè)或多個(gè)模塊的第1分配裝置;和變換裝置,根據(jù)上述第2存儲(chǔ)裝置存儲(chǔ)的路徑信息和指令信息,把第3存儲(chǔ)裝置存儲(chǔ)的現(xiàn)有程序的各命令語句或命令變換成符合某一個(gè)程序構(gòu)成要素的形式,該程序構(gòu)成要素是該命令語句或命令包含的單詞分配的一個(gè)或多個(gè)模塊中的、上述第1存儲(chǔ)裝置存儲(chǔ)的多個(gè)程序構(gòu)成要素中任何一個(gè)程序構(gòu)成要素。
22.權(quán)利要求21記載的程序再生裝置,其特征在于具有讀取現(xiàn)有程序中的命令語句或命令的命令語句或命令讀取裝置。
23.權(quán)利要求22記載的程序再生裝置,其特征在于上述第1分配裝置在利用上述讀取裝置讀取的命令語句或命令使用的單詞與輸入處理使用的定義體關(guān)連時(shí),將該單詞至少分配給W02模塊,在讀取的命令語句或命令使用的單詞與輸出處理使用的定義體關(guān)連時(shí),將該單詞至少分配給W04模塊。
24.權(quán)利要求22記載的程序再生裝置,其特征在于,具有判定裝置,在利用上述讀取裝置讀取的命令語句或命令中,對包含2個(gè)以上的單詞的命令語句或命令,判定該命令語句或命令使用的2個(gè)以上的單詞各自分配的2個(gè)以上的模塊之間的關(guān)系是否滿足規(guī)定的順序;當(dāng)利用上述判定裝置判定2個(gè)以上的模塊之間的關(guān)系不滿足規(guī)定的順序時(shí),將讀取的命令語句或命令分解成多個(gè)命令語句或命令,使分解后的命令語句或命令分別包含新的單詞的裝置;和第2分配裝置,將新的單詞分配給一個(gè)或多個(gè)模塊,使分別包含在分解后的命令語句或命令中的2個(gè)以上的單詞所分配的2個(gè)以上的模塊之間的關(guān)系滿足規(guī)定的順序。
25.權(quán)利要求22記載的程序再生裝置,其特征在于具有識(shí)別利用上述讀取裝置讀取的命令語句或命令所使用的單詞是端點(diǎn)單詞還是始點(diǎn)單詞的端點(diǎn)單詞/始點(diǎn)單詞識(shí)別裝置。
26.權(quán)利要求21記載的程序再生裝置,其特征在于上述第1存儲(chǔ)裝置存儲(chǔ)用于數(shù)據(jù)生成的程序構(gòu)成要素,上述變換裝置把在現(xiàn)有程序的命令語句或命令中用來生成應(yīng)存放在由單詞表現(xiàn)的字段中的數(shù)據(jù)的命令語句或命令變換成符合上述多個(gè)程序構(gòu)成要素中的用于數(shù)據(jù)生成的程序構(gòu)成要素的形式。
27.權(quán)利要求21記載的程序再生裝置,其特征在于上述第1存儲(chǔ)裝置存儲(chǔ)統(tǒng)一控制W04模塊、W02模塊和W03模塊的組的程序構(gòu)成要素,上述變換裝置在現(xiàn)有程序的命令語句或命令中,把對畫面進(jìn)行輸入輸出處理的命令語句或命令作為上述多個(gè)程序構(gòu)成要素中用來統(tǒng)一控制W04模塊、W02模塊和W03模塊的程序構(gòu)成要素的一部分。
28.權(quán)利要求21記載的程序再生裝置,其特征在于上述第1存儲(chǔ)裝置存儲(chǔ)用于路徑判斷的程序構(gòu)成要素,具有根據(jù)上述第2存儲(chǔ)裝置存儲(chǔ)的路徑信息從上述現(xiàn)有程序中抽出表示該路徑的分支條件的條件命令語句或條件命令的路徑分支條件命令抽出裝置,上述變換裝置把抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素的形式,該程序構(gòu)成要素是在上述路徑分支源中的模塊的多個(gè)程序構(gòu)成要素中用于上述路徑判斷的程序構(gòu)成要素。
29.權(quán)利要求21記載的程序再生裝置,其特征在于上述第1存儲(chǔ)裝置存儲(chǔ)用于輸入作用和輸出作用的程序構(gòu)成要素,具有根據(jù)現(xiàn)有程序的記述檢索表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令的數(shù)據(jù)輸入輸出條件檢索裝置,上述變換裝置在抽出了表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令時(shí),把抽出的條件命令語句或條件命令變換成符合程序構(gòu)成要素的形式,該程序構(gòu)成要素是在該數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件作用的模塊的多個(gè)程序構(gòu)成要素中用于上述輸入作用或輸出作用的程序構(gòu)成要素。
30.權(quán)利要求21記載的程序再生裝置,其特征在于上述第1存儲(chǔ)裝置存儲(chǔ)用于數(shù)據(jù)生成的程序構(gòu)成要素,具有根據(jù)現(xiàn)有程序的記述檢索表示等效單詞的判斷條件的條件命令語句或條件命令等的等效單詞判斷條件命令檢索裝置,上述變換裝置在抽出了表示等效單詞判斷條件的條件命令語句或條件命令時(shí),把該條件命令語句或條件命令變換成符合程序構(gòu)成要素的形式,該程序構(gòu)成要素是在該等效單詞所分配的模塊的多個(gè)程序構(gòu)成要素中用于上述數(shù)據(jù)生成的程序構(gòu)成要素。
31.一種記錄媒體,記錄用來控制上述程序再生裝置的分配程序,該程序再生裝置將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的模塊結(jié)構(gòu)的新程序而維持上述現(xiàn)有程序達(dá)到的功能,其特征在于上述分配程序根據(jù)從現(xiàn)有程序得到的模塊鏈接函數(shù)信息、基本結(jié)構(gòu)信息、模塊信息和定義體信息判別上述現(xiàn)有程序的命令語句或命令所使用的單詞所屬的定義體的種類,對已判別了所屬定義體的種類的上述單詞,根據(jù)讀入的命令語句或命令判別該單詞應(yīng)分配的模塊的種類,與已判別的定義體的種類和模塊的種類對應(yīng)控制上述程序再生裝置,將上述單詞分配給一個(gè)或多個(gè)模塊。
32.權(quán)利要求31記載的記錄媒體,其特征在于記錄分配程序,根據(jù)使用上述單詞的命令語句或命令的種類,判別上述命令語句或命令使用的單詞是端點(diǎn)單詞還是始點(diǎn)單詞,當(dāng)判定上述命令語句或命令使用的單詞是端點(diǎn)單詞或始點(diǎn)單詞時(shí),控制上述程序再生裝置,將表示是端點(diǎn)單詞或始點(diǎn)單詞的識(shí)別符附加在上述命令語句或命令使用的單詞上。
33.一種記錄媒體,記錄控制程序再生裝置的變換程序,該程序再生裝置具有存儲(chǔ)構(gòu)成Lyee程序的多個(gè)程序構(gòu)成要素的存儲(chǔ)裝置,將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的模塊結(jié)構(gòu)的新程序而維持上述現(xiàn)有程序達(dá)到的功能,其特征在于上述現(xiàn)有程序是把有關(guān)單詞應(yīng)分配的一個(gè)或多個(gè)模塊的信息附加在上述現(xiàn)有程序的命令語句或命令所使用的單詞上,上述變換程序把上述現(xiàn)有程序的命令語句或命令變換成符合某個(gè)程序構(gòu)成要素的形式,該程序構(gòu)成要素是在由附加在該命令語句或命令所包含的單詞上的與分配模塊有關(guān)的信息特定的模塊中的多個(gè)程序構(gòu)成要素中的任何一個(gè)。
34.權(quán)利要求33記載的記錄媒體,其特征在于上述多個(gè)程序構(gòu)成要素包含用于數(shù)據(jù)生成的程序構(gòu)成要素,上述變換程序把應(yīng)存放在由單詞表示字段中的用來生成數(shù)據(jù)的命令語句或命令變換成符合上述多個(gè)程序構(gòu)成要素中的用于數(shù)據(jù)生成的程序構(gòu)成要素的形式。
35.權(quán)利要求33記載的記錄媒體,其特征在于上述多個(gè)程序構(gòu)成要素包含統(tǒng)一控制多個(gè)模塊的組的程序構(gòu)成要素,上述變換程序把對畫面進(jìn)行輸入輸出處理的命令語句或命令作為符合上述多個(gè)程序構(gòu)成要素中的統(tǒng)一控制多個(gè)模塊的組的程序構(gòu)成要素的一部分。
36.權(quán)利要求33記載的記錄媒體,其特征在于上述多個(gè)程序構(gòu)成要素包含用于路徑判斷的程序構(gòu)成要素,上述變換程序根據(jù)從現(xiàn)有程序得到的路徑信息,從上述現(xiàn)有程序中抽出表示該路徑的分支條件的條件命令語句或條件命令,把已抽出的條件命令語句或條件命令變換成符合上述分支源模塊的多個(gè)程序構(gòu)成要素中的用于路徑判斷的程序構(gòu)成要素的形式。
37.權(quán)利要求33記載的記錄媒體,其特征在于上述多個(gè)程序構(gòu)成要素包含用于輸入作用和輸出作用的程序構(gòu)成要素,上述變換程序從上述現(xiàn)有程序中檢索表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令,在已抽出表示數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件的條件命令語句或條件命令時(shí),把該條件命令語句或條件命令變換成符合該數(shù)據(jù)輸入條件或數(shù)據(jù)輸出條件作用的模塊的多個(gè)程序構(gòu)成要素中的用于輸入作用或輸出作用的程序構(gòu)成要素的形式。
38.權(quán)利要求33記載的記錄媒體,其特征在于上述多個(gè)程序構(gòu)成要素包含用于數(shù)據(jù)生成的程序構(gòu)成要素,上述變換程序從上述現(xiàn)有程序中檢索表示等效單詞的判斷條件的條件命令語句或條件命令,在已抽出表示等效單詞的判斷條件的條件命令語句或條件命令時(shí),把該條件命令語句或條件命令變換成符合該等效單詞分配的模塊的多個(gè)程序構(gòu)成要素中的用于數(shù)據(jù)生成的程序構(gòu)成要素的形式。
39.一種程序再生裝置,將利用Lyee開發(fā)方法以外的方法作成的現(xiàn)有的程序再生成具有符合Lyee開發(fā)方法的結(jié)構(gòu)的新程序而維持上述現(xiàn)有程序達(dá)到的功能,其特征在于,包括存儲(chǔ)構(gòu)成Lyee程序的多個(gè)程序構(gòu)成要素的存儲(chǔ)裝置;從輸入的現(xiàn)有程序中抽出定義體的定義體抽出裝置;從輸入的現(xiàn)有程序中抽出單詞的單詞抽出裝置;從輸入的現(xiàn)有程序中抽出單詞和定義體的關(guān)連性的單詞/定義體關(guān)連性抽出裝置;從輸入的現(xiàn)有程序中抽出利用上述單詞抽出裝置抽出的單詞的輸入輸出區(qū)分的輸入輸出區(qū)分抽出裝置;根據(jù)利用上述單詞/定義體關(guān)連性抽出裝置抽出的單詞和定義體的關(guān)連性和利用上述輸入輸出區(qū)分抽出裝置抽出的單詞的輸入輸出區(qū)分,把利用上述單詞抽出裝置抽出的單詞分配給與該單詞關(guān)連的一個(gè)或多個(gè)模塊的分配裝置;和變換裝置,把現(xiàn)有程序的各命令語句或命令變換成符合某一個(gè)程序構(gòu)成要素的形式,該程序構(gòu)成要素是該命令語句或命令包含的單詞分配的一個(gè)或多個(gè)模塊中的、上述存儲(chǔ)裝置存儲(chǔ)的多個(gè)程序構(gòu)成要素中的任何一個(gè)程序構(gòu)成要素。
全文摘要
以識(shí)別出與單詞關(guān)連的定義體的形式從上述現(xiàn)有的程序中抽出那里使用的單詞,與和該單詞關(guān)連的定義體的種類對應(yīng),將抽出的單詞分配給一個(gè)或多個(gè)模塊(WO4、WO2、WO3),將現(xiàn)有程序的各命令語句或命令變換成符合某一個(gè)程序構(gòu)成要素的形式,該程序構(gòu)成要素是該命令語句或命令包含的單詞所分配的一個(gè)或多個(gè)模塊的多個(gè)程序構(gòu)成要素中的任何一個(gè)程序構(gòu)成要素。
文檔編號(hào)G06F9/44GK1337022SQ00802699
公開日2002年2月20日 申請日期2000年11月10日 優(yōu)先權(quán)日1999年11月11日
發(fā)明者根來文生 申請人:信息系統(tǒng)發(fā)展協(xié)會(huì), 計(jì)算機(jī)軟件方法及技術(shù)研究協(xié)會(huì)