結(jié)構(gòu)解析裝置以及程序的制作方法
【專利摘要】結(jié)構(gòu)解析裝置具備:存儲(chǔ)有模塊的存儲(chǔ)單元;和進(jìn)行存儲(chǔ)單元所存儲(chǔ)的模塊之中的給定的對(duì)象模塊的結(jié)構(gòu)解析的解析單元。解析單元在對(duì)象模塊的第1對(duì)象范圍的層級(jí)結(jié)構(gòu)和第2對(duì)象范圍的層級(jí)結(jié)構(gòu)相同的情況下,將類似通知信息與第1對(duì)象范圍以及/或者第2對(duì)象范圍建立關(guān)聯(lián)地創(chuàng)建。第1對(duì)象范圍以及第2對(duì)象范圍是從存儲(chǔ)單元獲取到的對(duì)象模塊的對(duì)象范圍之中相互不同的對(duì)象范圍。類似通知信息表示在對(duì)象模塊內(nèi)存在相互類似的對(duì)象范圍。
【專利說(shuō)明】結(jié)構(gòu)解析裝置以及程序
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及支援由通過(guò)程序語(yǔ)言描述的I個(gè)以上的語(yǔ)句構(gòu)成的模塊(源程序)的結(jié)構(gòu)解析的裝置。
【背景技術(shù)】
[0002]在創(chuàng)建程序的情況下,強(qiáng)烈推薦結(jié)構(gòu)化編程。具體而言,例如要求通過(guò)組合由比較少數(shù)的語(yǔ)句構(gòu)成的處理單位來(lái)創(chuàng)建模塊。此外,在模塊內(nèi),并非使用無(wú)條件分支語(yǔ)句(GOTO語(yǔ)句),而被要求具備基于條件語(yǔ)句或循環(huán)語(yǔ)句的嵌套結(jié)構(gòu)(即、層級(jí)結(jié)構(gòu))。進(jìn)而,針對(duì)關(guān)于多個(gè)模塊的公共處理,要求模塊化。因此,例如程序的合計(jì)行數(shù)超過(guò)100萬(wàn)行這樣的大型系統(tǒng),各自具備由幾十的處理單位構(gòu)成的幾千的模塊的情形也較為多見(jiàn)。
[0003]上述這樣的大規(guī)模系統(tǒng)在開(kāi)發(fā)后不久,參與開(kāi)發(fā)的負(fù)責(zé)人、即熟知模塊間的關(guān)聯(lián)以及各個(gè)模塊的結(jié)構(gòu)的人要進(jìn)行系統(tǒng)的維護(hù)的情形較為多見(jiàn)。然而,這樣的系統(tǒng)歷經(jīng)幾十年一邊反復(fù)維護(hù)一邊被使用的情形較為多見(jiàn)。隨著時(shí)間流逝,參與開(kāi)發(fā)的負(fù)責(zé)人將不在崗位,從而不知曉模塊的結(jié)構(gòu)的人進(jìn)行系統(tǒng)維護(hù)。在這種情況下,起因于已完成結(jié)構(gòu)化編程,必需掌握分散在龐大模塊中被描述的功能,從而維護(hù)極其困難。即,模塊的結(jié)構(gòu)解析變得困難。
[0004]為了理解模塊整體的功能或者各處理單位的功能,必需掌握基于條件語(yǔ)句的層級(jí)結(jié)構(gòu)(以下簡(jiǎn)單稱作“層級(jí)結(jié)構(gòu)”。)。然而,大規(guī)模的系統(tǒng)中的模塊,在大多情況下具有較深的層級(jí)結(jié)構(gòu)(例如10層級(jí)以上的層級(jí)結(jié)構(gòu))。在這種情況下,掌握層級(jí)結(jié)構(gòu)并非易事。因而,例如有時(shí)會(huì)看漏與進(jìn)行過(guò)維護(hù)的地方類似的地方(例如,具有類似的功能的地方),從而沒(méi)被進(jìn)行必要的維護(hù)。
[0005]如根據(jù)以上的說(shuō)明可理解的那樣,如果能夠容易地掌握層級(jí)結(jié)構(gòu),則能夠更容易且更適當(dāng)?shù)剡M(jìn)行系統(tǒng)的維護(hù)。進(jìn)而,通過(guò)發(fā)現(xiàn)層級(jí)結(jié)構(gòu)相同的地方,從而能夠防止遺漏對(duì)類似的地方的維護(hù)。例如,在專利文獻(xiàn)I以及專利文獻(xiàn)2中公開(kāi)了用于支援層級(jí)結(jié)構(gòu)的掌握的技術(shù)。
[0006]專利文獻(xiàn)I所公開(kāi)的程序開(kāi)發(fā)支援裝置,在顯示程序(模塊)之際,根據(jù)基于IF語(yǔ)句的嵌套結(jié)構(gòu)(層級(jí)結(jié)構(gòu))的深度來(lái)變更語(yǔ)句的顯示色。由此,程序開(kāi)發(fā)者能夠在視覺(jué)上掌握層級(jí)結(jié)構(gòu)。根據(jù)專利文獻(xiàn)2所公開(kāi)的結(jié)構(gòu)化程序編輯裝置,在顯示程序(模塊)之際,能夠顯示包含表示層級(jí)的關(guān)鍵字(例如if或case)的語(yǔ)句,而不顯示或者簡(jiǎn)易顯示其他語(yǔ)句。由此,程序開(kāi)發(fā)者能夠比較容易地掌握層級(jí)結(jié)構(gòu)。
[0007]在先技術(shù)文獻(xiàn)
[0008]專利文獻(xiàn)
[0009]專利文獻(xiàn)1:日本特開(kāi)平7-219756號(hào)公報(bào)
[0010]專利文獻(xiàn)2:日本特開(kāi)2001-154835號(hào)公報(bào)
【發(fā)明內(nèi)容】
[0011]發(fā)明要解決的課題
[0012]然而,無(wú)論使用專利文獻(xiàn)I以及專利文獻(xiàn)2所公開(kāi)的哪種技術(shù),最終程序開(kāi)發(fā)者均必須掌握模塊的層級(jí)結(jié)構(gòu)。更具體而言,必須執(zhí)行掌握需要進(jìn)行維護(hù)的地方的層級(jí)結(jié)構(gòu),且從龐大模塊之中找到類似的地方這樣的困難且費(fèi)工夫的作業(yè)。
[0013]因而,本發(fā)明的目的在于提供一種在模塊中檢測(cè)具備同一層級(jí)結(jié)構(gòu)的地方,由此來(lái)支援層級(jí)結(jié)構(gòu)的掌握的結(jié)構(gòu)解析裝置。
[0014]用于解決課題的手段
[0015]本發(fā)明的一個(gè)側(cè)面提供一種結(jié)構(gòu)解析裝置,進(jìn)行由通過(guò)程序語(yǔ)言描述的I個(gè)以上的語(yǔ)句構(gòu)成的模塊的結(jié)構(gòu)解析。在所述模塊中能夠描述作為所述語(yǔ)句之一的條件語(yǔ)句。所述條件語(yǔ)句包含成立時(shí)執(zhí)行語(yǔ)句以及/或者不成立時(shí)執(zhí)行語(yǔ)句。所述成立時(shí)執(zhí)行語(yǔ)句是在所述條件語(yǔ)句的條件式成立的情況下被執(zhí)行的所述語(yǔ)句。所述不成立時(shí)執(zhí)行語(yǔ)句是在所述條件式不成立的情況下被執(zhí)行的所述語(yǔ)句。所述條件語(yǔ)句之中的至少一個(gè)還能夠包含所述條件語(yǔ)句作為所述成立時(shí)執(zhí)行語(yǔ)句以及/或者所述不成立時(shí)執(zhí)行語(yǔ)句,由此能夠進(jìn)行基于所述條件語(yǔ)句的所述語(yǔ)句的層級(jí)化。關(guān)于所述模塊中的由連續(xù)的所述語(yǔ)句構(gòu)成的多個(gè)對(duì)象范圍,能夠分別確定基于所述層級(jí)化的層級(jí)結(jié)構(gòu)。所述結(jié)構(gòu)解析裝置具備存儲(chǔ)單元和解析單元。在所述存儲(chǔ)單元中存儲(chǔ)有I個(gè)以上的所述模塊。所述解析單元構(gòu)成為進(jìn)行所述存儲(chǔ)單元所存儲(chǔ)的所述模塊之中的給定的對(duì)象模塊的結(jié)構(gòu)解析。所述解析單元具有獲取功能和解析功能。所述獲取功能是從所述存儲(chǔ)單元獲取所述對(duì)象模塊的功能。所述解析功能是在第I對(duì)象范圍的所述層級(jí)結(jié)構(gòu)和第2對(duì)象范圍的所述層級(jí)結(jié)構(gòu)相同的情況下與所述第I對(duì)象范圍以及/或者所述第2對(duì)象范圍建立關(guān)聯(lián)來(lái)創(chuàng)建類似通知信息的功能。所述第I對(duì)象范圍以及所述第2對(duì)象范圍是獲取到的所述對(duì)象模塊的所述對(duì)象范圍之中相互不同的所述對(duì)象范圍。所述類似通知信息表示在所述對(duì)象模塊內(nèi)存在相互類似的所述對(duì)象范圍。
[0016]此外,根據(jù)本發(fā)明的其他側(cè)面,可獲得用于使計(jì)算機(jī)作為所述結(jié)構(gòu)解析裝置而發(fā)揮功能的程序。
[0017]發(fā)明效果
[0018]根據(jù)本發(fā)明,在模塊包含相互類似的地方(對(duì)象范圍)的情況下,被創(chuàng)建與對(duì)象范圍已建立關(guān)聯(lián)的類似通知信息。因此,根據(jù)類似通知信息,能夠更容易發(fā)現(xiàn)相互類似的對(duì)象范圍。
[0019]進(jìn)而,在連結(jié)系統(tǒng)中的多個(gè)模塊來(lái)解析的情況下,能夠更容易掌握龐大模塊中的類似的對(duì)象范圍。
[0020]參照所添加的附圖來(lái)研究下述最優(yōu)實(shí)施方式的說(shuō)明,從而可準(zhǔn)確地理解本發(fā)明的目的,且可更完全理解其構(gòu)成。
【專利附圖】
【附圖說(shuō)明】
[0021]圖1是表示基于本發(fā)明的第I實(shí)施方式的結(jié)構(gòu)解析裝置的塊構(gòu)成圖。
[0022]圖2是示意性表示圖1的結(jié)構(gòu)解析裝置的存儲(chǔ)裝置中所存儲(chǔ)的模塊的文件構(gòu)成的圖。
[0023]圖3是示意性表示圖1的存儲(chǔ)裝置中所存儲(chǔ)的層級(jí)結(jié)構(gòu)數(shù)據(jù)的文件構(gòu)成的圖。
[0024]圖4是表示圖1的結(jié)構(gòu)解析裝置的解析單元的功能的流程圖。
[0025]圖5是使用一例來(lái)表示圖4的解析單元所進(jìn)行的解析過(guò)程的前半部分的圖。
[0026]圖6是使用一例來(lái)表示圖4的解析單元所進(jìn)行的解析過(guò)程的后半部分的圖。
[0027]圖7是使用一例來(lái)表示基于圖4的解析單元的顯示結(jié)果的圖。
[0028]圖8是使用其他一例來(lái)表示圖4的解析單元所進(jìn)行的解析過(guò)程的前半部分的圖。
[0029]圖9是表示基于本發(fā)明的第2實(shí)施方式的結(jié)構(gòu)解析裝置的塊構(gòu)成圖。
[0030]圖10是表示圖9的存儲(chǔ)裝置中所存儲(chǔ)的模塊的一例的圖。
[0031]圖11是示意性表示圖9的存儲(chǔ)裝置中所存儲(chǔ)的二次模塊的文件構(gòu)成的圖。
[0032]圖12是部分地表示圖9的二次模塊的一例的圖。
[0033]圖13是部分地表示圖9的存儲(chǔ)裝置中所存儲(chǔ)的流程圖的一例的圖。
[0034]圖14是表示圖9的結(jié)構(gòu)解析裝置的變換單元的功能的流程圖。
[0035]圖15是更詳細(xì)地表示圖14的變換單元的功能的一部分的流程圖。
[0036]圖16是表示圖9的結(jié)構(gòu)解析裝置的加工單元的功能的流程圖。
[0037]圖17是部分地表示圖9的二次模塊的其他一例的圖。
[0038]圖18是表示圖9的結(jié)構(gòu)解析裝置的流程圖創(chuàng)建單元的功能的流程圖。
[0039]圖19是部分地表示根據(jù)圖17的二次模塊所創(chuàng)建的流程圖的圖。
[0040]圖20是表示基于本發(fā)明的第3實(shí)施方式的結(jié)構(gòu)解析裝置的系統(tǒng)構(gòu)成圖。
【具體實(shí)施方式】
[0041]關(guān)于本發(fā)明,可由多種多樣的變形、各式各樣的形態(tài)來(lái)實(shí)現(xiàn),作為其一例,以下詳細(xì)地說(shuō)明附圖所示那樣的特定的實(shí)施方式。附圖以及實(shí)施方式并非將本發(fā)明限定于在此公開(kāi)的特定形態(tài),而假定將所附的權(quán)利要求所明示的范圍內(nèi)完成的所有變形例、均等物、代替例包含在其對(duì)象中。
[0042](第I實(shí)施方式)
[0043]如圖1所示,基于本發(fā)明的第I實(shí)施方式的結(jié)構(gòu)解析裝置10具備:裝置主體20、存儲(chǔ)裝置(存儲(chǔ)單元)30、輸入裝置40、以及顯示裝置50。結(jié)構(gòu)解析裝置10進(jìn)行由通過(guò)程序語(yǔ)言描述的I個(gè)以上的語(yǔ)句構(gòu)成的模塊(源程序)的結(jié)構(gòu)解析。
[0044]基于本實(shí)施方式的程序語(yǔ)言為COBOL。然而,本發(fā)明也可適用于COBOL以外的程序
;五古
P口口 ο
[0045]基于本實(shí)施方式的模塊可以通過(guò)組合了字符、數(shù)字、記號(hào)等的模塊名來(lái)確定。
[0046]在模塊中能夠描述由I個(gè)以上的語(yǔ)句構(gòu)成的處理單位?;诒緦?shí)施方式的處理單位是COBOL中的節(jié)(sect1n)。各個(gè)節(jié)能夠通過(guò)節(jié)名(處理單位名)來(lái)確定。但是,處理單位也可以不是節(jié)。例如在程序語(yǔ)言為JAVA(在日本的注冊(cè)商標(biāo))的情況下,處理單位可以是能通過(guò)函數(shù)名(處理單位名)來(lái)確定的函數(shù)。
[0047]模塊能夠調(diào)用其他模塊或者該模塊自身。此外,模塊的節(jié)能夠執(zhí)行其他節(jié)或者該節(jié)自身。更具體而言,在模塊中,作為語(yǔ)句能夠描述用于通過(guò)節(jié)名來(lái)確定并執(zhí)行節(jié)的處理單位執(zhí)行語(yǔ)句、和用于通過(guò)模塊名來(lái)確定并執(zhí)行模塊之一的模塊調(diào)用語(yǔ)句。根據(jù)本實(shí)施方式,處理單位執(zhí)行語(yǔ)句為PERFORM語(yǔ)句,模塊調(diào)用語(yǔ)句為CALL語(yǔ)句。其他程序語(yǔ)言中的處理單位執(zhí)行語(yǔ)句以及模塊調(diào)用語(yǔ)句分別為例如指定了函數(shù)名的語(yǔ)句。在模塊調(diào)用語(yǔ)句為指定了函數(shù)名的語(yǔ)句的情況下,通過(guò)模塊調(diào)用語(yǔ)句來(lái)執(zhí)行模塊之中的被指定的函數(shù)部分(即、模塊的一部分)。在此情況下,在模塊調(diào)用語(yǔ)句中有可能未顯式地描述模塊名。即,有可能通過(guò)函數(shù)名來(lái)間接性地確定模塊名。
[0048]進(jìn)而,在模塊中能夠描述作為語(yǔ)句之一的條件語(yǔ)句。條件語(yǔ)句具備條件式,可以在條件語(yǔ)句之中描述成立時(shí)執(zhí)行語(yǔ)句以及/或者不成立時(shí)執(zhí)行語(yǔ)句。換言之,條件語(yǔ)句能夠包含成立時(shí)執(zhí)行語(yǔ)句以及/或者不成立時(shí)執(zhí)行語(yǔ)句。成立時(shí)執(zhí)行語(yǔ)句是在條件語(yǔ)句的條件式成立的情況下被執(zhí)行的語(yǔ)句。不成立時(shí)執(zhí)行語(yǔ)句是在條件式不成立的情況下被執(zhí)行的語(yǔ)句?;诒緦?shí)施方式的條件語(yǔ)句為IF語(yǔ)句以及EVALUATE語(yǔ)句。在IF語(yǔ)句中,成立時(shí)執(zhí)行語(yǔ)句為在THEN句中被描述的語(yǔ)句,不成立時(shí)執(zhí)行語(yǔ)句為在ELSE句中被描述的語(yǔ)句。同樣地,在EVALUATE語(yǔ)句中,成立時(shí)執(zhí)行語(yǔ)句為在WHEN句中被描述的語(yǔ)句。
[0049]基于本實(shí)施方式的條件語(yǔ)句之中的至少一個(gè)還能夠包含條件語(yǔ)句作為成立時(shí)執(zhí)行語(yǔ)句以及/或者不成立時(shí)執(zhí)行語(yǔ)句,由此能夠進(jìn)行基于條件語(yǔ)句的語(yǔ)句的層級(jí)化。例如,作為IF語(yǔ)句的成立時(shí)執(zhí)行語(yǔ)句,還能夠描述IF語(yǔ)句。換言之,模塊由能通過(guò)條件語(yǔ)句來(lái)層級(jí)化的I個(gè)以上的語(yǔ)句構(gòu)成,由此具有給定的層級(jí)結(jié)構(gòu)(即、基于條件語(yǔ)句的層級(jí)結(jié)構(gòu))。為了易于理解,關(guān)于模塊中的由連續(xù)的語(yǔ)句構(gòu)成的多個(gè)地方(對(duì)象范圍),能夠分別確定基于層級(jí)化的層級(jí)結(jié)構(gòu)。
[0050]如圖1所示,存儲(chǔ)裝置30例如為磁盤(pán)裝置。存儲(chǔ)裝置30能夠存儲(chǔ)例如通過(guò)文件夾(未圖示)被層級(jí)化的各式各樣的文件。存儲(chǔ)裝置30被連接成可與裝置主體20進(jìn)行通信,能夠按照來(lái)自裝置主體20的指示來(lái)進(jìn)行文件的讀入(獲取)、寫(xiě)入(存儲(chǔ))。在基于本實(shí)施方式的存儲(chǔ)裝置30中存儲(chǔ)有I個(gè)以上的模塊31。此外,在存儲(chǔ)裝置30中能夠存儲(chǔ)層級(jí)結(jié)構(gòu)數(shù)據(jù)36。
[0051]模塊31例如使用編程工具(未圖示)來(lái)創(chuàng)建。各個(gè)模塊31可以為一個(gè)文件。多個(gè)模塊31可以作為一個(gè)文件被存儲(chǔ)。層級(jí)結(jié)構(gòu)數(shù)據(jù)36分別存儲(chǔ)模塊31所含的I個(gè)以上的對(duì)象范圍的層級(jí)結(jié)構(gòu)。根據(jù)本實(shí)施方式,關(guān)于各個(gè)模塊31來(lái)創(chuàng)建層級(jí)結(jié)構(gòu)數(shù)據(jù)36。
[0052]輸入裝置40例如為鍵盤(pán)、鼠標(biāo)。輸入裝置40被連接成可與裝置主體20進(jìn)行通信,能夠?qū)逆I盤(pán)輸入的字符、或通過(guò)鼠標(biāo)指示的位置通知給裝置主體20。
[0053]顯示裝置50例如為顯示器、打印機(jī)。顯示裝置50被連接成可與裝置主體20進(jìn)行通信,能夠?qū)难b置主體20轉(zhuǎn)發(fā)的數(shù)據(jù)(例如,字符、圖形)進(jìn)行顯示或者印刷。
[0054]裝置主體20例如為PC (Personal Computer ;個(gè)人電腦)的主體。裝置主體20具備CPU(Central Processing Unit ;中央處理單元)、主存儲(chǔ)裝置等(未圖示)。在存儲(chǔ)裝置30中存儲(chǔ)有各式各樣的程序的執(zhí)行格式文件(未圖示)。CPU將執(zhí)行格式文件加載至主存儲(chǔ)裝置中,通過(guò)使執(zhí)行格式文件內(nèi)的命令字執(zhí)行,由此來(lái)實(shí)現(xiàn)各式各樣的功能。在CPU執(zhí)行命令字的過(guò)程中,存儲(chǔ)裝置30所存儲(chǔ)的給定的文件經(jīng)由主存儲(chǔ)裝置內(nèi)的緩沖區(qū)而被讀入至程序的變量區(qū)。被讀入至程序的變量區(qū)中的文件的內(nèi)容,根據(jù)需要而經(jīng)由主存儲(chǔ)裝置內(nèi)的緩沖區(qū)寫(xiě)入至存儲(chǔ)裝置30。如根據(jù)上述的說(shuō)明可理解的那樣,存儲(chǔ)裝置30以及主存儲(chǔ)裝置分別作為本實(shí)施方式中的可讀入以及寫(xiě)入的存儲(chǔ)單元而發(fā)揮功能。換言之,基于本實(shí)施方式的存儲(chǔ)單元既可以是存儲(chǔ)裝置30以及主存儲(chǔ)裝置的一者,也可以是兩者。在以后的說(shuō)明中,作為存儲(chǔ)單元而使用存儲(chǔ)裝置30。
[0055]在基于本實(shí)施方式的存儲(chǔ)裝置30中存儲(chǔ)有解析程序等的各式各樣的程序(未圖示)。上述的程序被加載至主存儲(chǔ)裝置中,通過(guò)CPU來(lái)執(zhí)行,由此計(jì)算機(jī)作為各式各樣的單元(即、作為裝置)而發(fā)揮功能。例如,解析程序使計(jì)算機(jī)作為進(jìn)行存儲(chǔ)裝置30所存儲(chǔ)的模塊31之中的給定的對(duì)象模塊31的結(jié)構(gòu)解析的解析單元27 (結(jié)構(gòu)解析裝置10)而發(fā)揮功能。換言之,基于本實(shí)施方式的結(jié)構(gòu)解析裝置10的裝置主體20具備解析單元27。
[0056]如圖2所示,基于本實(shí)施方式的模塊31由η個(gè)(η彡I)的行310構(gòu)成。基于本實(shí)施方式的模塊31為文本文件。但是,模塊31例如可以為MICROSOFT EXCEL(注冊(cè)商標(biāo))的工作表。在模塊31為工作表的情況下,解析單元27例如能夠通過(guò)EXCEL宏來(lái)實(shí)現(xiàn)。行310至少由連續(xù)編號(hào)(行識(shí)別)311和語(yǔ)句312構(gòu)成。連續(xù)編號(hào)311用于確定行310并且判斷行310的排列順序。連續(xù)編號(hào)311不僅是數(shù)字還可以包含字符、記號(hào)。在語(yǔ)句312中描述了語(yǔ)句(例如,數(shù)據(jù)定義語(yǔ)句、執(zhí)行語(yǔ)句、注釋語(yǔ)句)。在語(yǔ)句312中也可以描述一個(gè)已完結(jié)的語(yǔ)句整體。在語(yǔ)句312中也可以描述一個(gè)語(yǔ)句的一部分。例如,MOVE語(yǔ)句被分成兩個(gè)的行310的語(yǔ)句312來(lái)描述。
[0057]如圖3所示,基于本實(shí)施方式的層級(jí)結(jié)構(gòu)數(shù)據(jù)36由m個(gè)(m彡I)的行360構(gòu)成?;诒緦?shí)施方式的層級(jí)結(jié)構(gòu)數(shù)據(jù)36為MICROSOFT EXCEL(注冊(cè)商標(biāo))的工作表。但是,層級(jí)結(jié)構(gòu)數(shù)據(jù)36例如也可以是文本文件。層級(jí)結(jié)構(gòu)數(shù)據(jù)36通過(guò)解析單元27解析模塊31的層級(jí)結(jié)構(gòu)而被創(chuàng)建的,與模塊31建立關(guān)聯(lián)地進(jìn)行存儲(chǔ)。具體而言,例如層級(jí)結(jié)構(gòu)數(shù)據(jù)36的文件名與所對(duì)應(yīng)的模塊31的文件名相同。或者,相互對(duì)應(yīng)的模塊31以及層級(jí)結(jié)構(gòu)數(shù)據(jù)36也可以是同一工作簿的不同工作表。
[0058]層級(jí)結(jié)構(gòu)數(shù)據(jù)36的行360由連續(xù)編號(hào)(行識(shí)別)361、層級(jí)模式362、結(jié)束行(連續(xù)編號(hào))363、和類似通知信息364構(gòu)成?;诒緦?shí)施方式的類似通知信息364具備類似行(連續(xù)編號(hào))364η。在連續(xù)編號(hào)361中設(shè)定有所對(duì)應(yīng)的模塊31的連續(xù)編號(hào)311。在結(jié)束行363中設(shè)定有模塊31中的自連續(xù)編號(hào)361起開(kāi)始的對(duì)象范圍(即、成為進(jìn)行層級(jí)結(jié)構(gòu)的解析的對(duì)象的范圍)結(jié)束的行310的連續(xù)編號(hào)311。在層級(jí)模式362中設(shè)定有能確定關(guān)于連續(xù)編號(hào)361至結(jié)束行363的對(duì)象范圍的層級(jí)結(jié)構(gòu)的數(shù)據(jù)。在類似通知信息364中設(shè)定有表示在模塊31內(nèi)存在相互類似的對(duì)象范圍的數(shù)據(jù)。更具體而言,在基于本實(shí)施方式的類似行364η中設(shè)定有具有與該行360的層級(jí)模式362相同的層級(jí)模式362的行360的連續(xù)編號(hào)361。
[0059]以下,關(guān)于基于本實(shí)施方式的結(jié)構(gòu)解析裝置10的功能以及動(dòng)作,參照?qǐng)D5至圖8所示的例子,使用圖4來(lái)詳細(xì)地說(shuō)明。首先,以只有IF語(yǔ)句為模塊31所含的條件語(yǔ)句的情況(參照?qǐng)D5以及圖6)為例來(lái)進(jìn)行說(shuō)明。其次,關(guān)于在模塊31中包含IF語(yǔ)句以外的條件語(yǔ)句的示例(參照?qǐng)D8)來(lái)進(jìn)行說(shuō)明。
[0060]如由圖4可理解的那樣,基于本實(shí)施方式的解析單元27具有獲取功能(S400、S402)、解析功能(S404?S416)、寫(xiě)入功能(S418)以及顯示功能(S420)。獲取功能是從存儲(chǔ)裝置30 (或者主存儲(chǔ)裝置)獲取模塊31之中設(shè)為處理對(duì)象的對(duì)象模塊31的功能。解析功能是解析對(duì)象模塊31的層級(jí)結(jié)構(gòu)的功能。寫(xiě)入功能是將對(duì)象模塊31和層級(jí)結(jié)構(gòu)數(shù)據(jù)36 (因此為類似通知信息364)建立關(guān)聯(lián)而存儲(chǔ)至存儲(chǔ)裝置30的功能。顯示功能是將對(duì)象模塊31和類似通知信息364建立關(guān)聯(lián)而顯示至顯示裝置50的功能。
[0061]詳細(xì)而言,解析單元27通過(guò)例如從輸入裝置40輸入的啟動(dòng)指示而被啟動(dòng),獲取用于確定對(duì)象模塊31的對(duì)象模塊名(S400)。對(duì)象模塊名只要作為例如啟動(dòng)指示的一部分來(lái)輸入即可。解析單元27從存儲(chǔ)裝置30讀入通過(guò)獲取到的對(duì)象模塊名所確定的對(duì)象模塊31 (S402)。此時(shí),也可以只有例如給定的文件夾所存儲(chǔ)的模塊31為讀入對(duì)象。當(dāng)對(duì)象模塊31未存儲(chǔ)在存儲(chǔ)裝置30中的情況下,解析單元27結(jié)束處理(未圖示)。
[0062]其次,解析單元27確定對(duì)象模塊31的各語(yǔ)句的層級(jí)等級(jí)(S404)。具體而言,解析單元27從第I行到最終行依次獲取對(duì)象模塊31的行310,對(duì)行310分別賦予層級(jí)等級(jí)。此時(shí),解析單元27將第I行的層級(jí)等級(jí)設(shè)為1,每當(dāng)檢測(cè)到IF語(yǔ)句的THEN句時(shí)相加層級(jí)等級(jí)。另一方面,解析單元27每當(dāng)檢測(cè)到IF語(yǔ)句的END-1F(即、IF語(yǔ)句的結(jié)束)時(shí)減去層級(jí)等級(jí)。另外,在可以省略THEN句、END-1F的描述的情況下,只要解析IF語(yǔ)句中的語(yǔ)句的排列等來(lái)進(jìn)行層級(jí)等級(jí)的加減法即可。
[0063]例如,參照?qǐng)D5所例示的對(duì)象模塊31,排頭的語(yǔ)句312 (連續(xù)編號(hào)311為0001的語(yǔ)句312)的層級(jí)等級(jí)為1,其次的THEN句的層級(jí)等級(jí)為2。在上述的示例中,層級(jí)等級(jí)為數(shù)值,解析單元27每當(dāng)檢測(cè)到THEN句時(shí)使層級(jí)等級(jí)增1,每當(dāng)檢測(cè)到END-1F時(shí)使層級(jí)等級(jí)減I。然而,只要能夠比較層級(jí)等級(jí)的深度,層級(jí)等級(jí)可以不是數(shù)值。進(jìn)而,設(shè)計(jì)成通過(guò)THEN句的檢測(cè)而被更新后的層級(jí)等級(jí)通過(guò)對(duì)應(yīng)的END-1F的檢測(cè)而返回到更新前的值即可。層級(jí)等級(jí)關(guān)于執(zhí)行語(yǔ)句進(jìn)行賦予即可。進(jìn)而,層級(jí)等級(jí)賦予給IF語(yǔ)句的排頭行以及結(jié)束行、和描述了 THEN句或者ELSE句的行即可。因此,解析單元27關(guān)于對(duì)象模塊31的排頭的執(zhí)行語(yǔ)句至最后的執(zhí)行語(yǔ)句的范圍賦予層級(jí)等級(jí)即可。
[0064]其次,解析單元27提取對(duì)象范圍(即、設(shè)為進(jìn)行層級(jí)結(jié)構(gòu)的解析的對(duì)象的范圍)(S406)。詳細(xì)而言,解析單元27關(guān)于對(duì)象模塊31所含的條件語(yǔ)句的每一個(gè)來(lái)檢測(cè)開(kāi)始行以及結(jié)束行。解析單元27將檢測(cè)到的開(kāi)始行與結(jié)束行之間的范圍作為對(duì)象范圍來(lái)使用。另一方面,解析單元27在對(duì)象模塊31中未包含條件語(yǔ)句的情況下、或者在對(duì)象模塊31中所含的條件語(yǔ)句只有一個(gè)的情況下,結(jié)束處理(未圖示)。如根據(jù)以上的說(shuō)明可理解的那樣,根據(jù)本實(shí)施方式,在對(duì)象范圍中包含至少一個(gè)條件語(yǔ)句。進(jìn)而,在對(duì)象范圍中包含對(duì)象范圍所含的條件語(yǔ)句的各自的開(kāi)始至結(jié)束的整體。但是,對(duì)象范圍也可以從條件語(yǔ)句之前開(kāi)始或者從條件語(yǔ)句的中途開(kāi)始。
[0065]參照?qǐng)D5所例示的對(duì)象模塊31,IF語(yǔ)句(條件語(yǔ)句)從連續(xù)編號(hào)311為0001、
0003、0005、0011以及0014的行310分別開(kāi)始。此外,IF語(yǔ)句在連續(xù)編號(hào)311為0020、0010、0008,0018以及0017的行310分別結(jié)束。如圖6的上部所示的那樣,如以上檢測(cè)到的開(kāi)始行以及結(jié)束行作為對(duì)象范圍的開(kāi)始行以及結(jié)束行分別被使用。
[0066]解析單元27針對(duì)提取出的對(duì)象范圍分別創(chuàng)建層級(jí)模式(S406)。具體而言,解析單元27關(guān)于條件語(yǔ)句分別連結(jié)開(kāi)始行至結(jié)束行的層級(jí)等級(jí),來(lái)創(chuàng)建層級(jí)模式(壓縮前)。進(jìn)而,解析單元27壓縮在層級(jí)模式(壓縮前)中連續(xù)的同一層級(jí)等級(jí)來(lái)創(chuàng)建層級(jí)模式(壓縮后)。
[0067]參照?qǐng)D5的對(duì)象模塊31,如圖6的上部所示那樣,針對(duì)例如開(kāi)始行為0001、結(jié)束行為0020的IF語(yǔ)句,依次連結(jié)層級(jí)等級(jí):1、2、2、3…3、2、2、I (參照?qǐng)D5的層級(jí)等級(jí)),來(lái)創(chuàng)建層級(jí)模式(壓縮前)。進(jìn)而,在層級(jí)模式(壓縮前)中連續(xù)的同一層級(jí)等級(jí)被壓縮成一個(gè)層級(jí)等級(jí),由此來(lái)創(chuàng)建層級(jí)模式(壓縮后)。
[0068]如根據(jù)以上的說(shuō)明可理解的那樣,本實(shí)施方式中的層級(jí)等級(jí)表示以對(duì)象范圍的排頭的語(yǔ)句作為基準(zhǔn)而確定的層級(jí)的深度。此外,對(duì)象范圍中的層級(jí)結(jié)構(gòu)能夠通過(guò)連結(jié)了對(duì)象范圍所含的層級(jí)等級(jí)的層級(jí)模式來(lái)識(shí)別。
[0069]如圖6的下部所示,解析單元27將如上述那樣檢測(cè)到的對(duì)象范圍的開(kāi)始行、層級(jí)模式(壓縮后)以及結(jié)束行分別設(shè)定為層級(jí)結(jié)構(gòu)數(shù)據(jù)36的連續(xù)編號(hào)361、層級(jí)模式362以及結(jié)束行363(S406的處理的一部分)。換言之,通過(guò)連續(xù)編號(hào)361、層級(jí)模式362以及結(jié)束行363而分別確定的I個(gè)以上的對(duì)象范圍被設(shè)定為層級(jí)結(jié)構(gòu)數(shù)據(jù)36。此時(shí),層級(jí)模式362被變換成表示以對(duì)象范圍的排頭的語(yǔ)句(即、IF語(yǔ)句)作為基準(zhǔn)而確定的層級(jí)的深度。具體而言,例如”2 3 4 3 2”被變換成”1 2 3 2 I”。如根據(jù)圖6的右下部的示意圖可理解的那樣,如上述那樣創(chuàng)建出的層級(jí)模式362能夠比作山岳地形。在該情況下,被連結(jié)成層級(jí)模式362的層級(jí)等級(jí)分別表示將山岳的山腳設(shè)為基準(zhǔn)的相對(duì)高度。
[0070]其次,解析單元27將創(chuàng)建出的層級(jí)結(jié)構(gòu)數(shù)據(jù)36的行360按照層級(jí)模式362的長(zhǎng)度(即、被連結(jié)成層級(jí)模式362的層級(jí)等級(jí)的數(shù)目)的降序進(jìn)行排序(S408)。在層級(jí)模式362的長(zhǎng)度相同的情況下,解析單元27例如按照連續(xù)編號(hào)361的升序進(jìn)行排序。在圖6的下部例示出排序后的層級(jí)結(jié)構(gòu)數(shù)據(jù)36。參照?qǐng)D6的下部的示例,例如”1 2 3 4 3 2 3 4 32 I”的層級(jí)模式362的長(zhǎng)度為11。由于該層級(jí)模式362具有5個(gè)層級(jí)模式362之中的最大的長(zhǎng)度,因此通過(guò)排序而配置在層級(jí)結(jié)構(gòu)數(shù)據(jù)36的第I行。
[0071]其次,解析單元27選擇創(chuàng)建出的層級(jí)結(jié)構(gòu)數(shù)據(jù)36的對(duì)象范圍(即、對(duì)象模塊31的對(duì)象范圍)之中相互不同的兩個(gè)對(duì)象范圍(即、第I對(duì)象范圍和第2對(duì)象范圍)。解析單元27在第I對(duì)象范圍的層級(jí)結(jié)構(gòu)和第2對(duì)象范圍的層級(jí)結(jié)構(gòu)相同的情況下,將類似通知信息364與第2對(duì)象范圍建立關(guān)聯(lián)地創(chuàng)建(S410?S416)。更具體而言,解析單元27針對(duì)創(chuàng)建出的層級(jí)結(jié)構(gòu)數(shù)據(jù)36的行360,分別判定有無(wú)同一層級(jí)模式362(S410?S416)。
[0072]詳細(xì)而言,解析單元27首先獲取排序后的排頭的(第I行的行360的)層級(jí)模式362作為第I對(duì)象范圍的層級(jí)模式(S410)。參照?qǐng)D6的下部的示例,獲取” I 2 3 4 3 2 34 3 2 1”。
[0073]其次,解析單元27判定在層級(jí)結(jié)構(gòu)數(shù)據(jù)36中是否存在與獲取到的層級(jí)模式362相同的層級(jí)模式362(S412)。換言之,解析單元27搜索不同于第I對(duì)象范圍、且具有與第I對(duì)象范圍相同的層級(jí)模式的第2對(duì)象范圍。當(dāng)存在第2對(duì)象范圍的情況下,解析單元27在第2對(duì)象范圍的類似通知信息364的類似行364η中設(shè)定第I對(duì)象范圍的連續(xù)編號(hào)361(S412)。參照?qǐng)D6的下部的示例,由于不存在與”1 234323432 I”相同的層級(jí)模式362,因此任何行360的類似行364η均未被設(shè)定(即、保持初始值不變)。
[0074]其次,解析單元27判定是否處理了所有的層級(jí)模式362(S414),在處理結(jié)束的情況下(S414中“是”的情況下),進(jìn)行S418的處理。另一方面,當(dāng)存在未處理的層級(jí)模式362的情況下(S414中“否”的情況下),解析單元27獲取層級(jí)結(jié)構(gòu)數(shù)據(jù)36中的下一行360的層級(jí)模式362。參照?qǐng)D6的下部的示例,如根據(jù)以上的說(shuō)明可理解的那樣,獲取” I 2 3 2I”。在該情況下,由于連續(xù)編號(hào)361為0011的行360的層級(jí)模式362也為” 12 3 2 I”、即一致,因此在連續(xù)編號(hào)361為0011的行360的類似行364η中設(shè)定”0003” (S412)。
[0075]如以上所說(shuō)明過(guò)的那樣,基于本實(shí)施方式的解析單元27在解析功能中將層級(jí)模式362按照長(zhǎng)度的降序進(jìn)行排序,由此將多個(gè)對(duì)象范圍按照被連結(jié)成層級(jí)模式362的層級(jí)等級(jí)的數(shù)目的降序作為第I對(duì)象范圍來(lái)使用。然而,也可以不排序而比較層級(jí)結(jié)構(gòu)。進(jìn)而,不創(chuàng)建層級(jí)模式362,也能夠使對(duì)象模塊31的行310各錯(cuò)開(kāi)I行地比較層級(jí)等級(jí)。但是,在考慮性能的情況下,優(yōu)選如本實(shí)施方式那樣進(jìn)行設(shè)計(jì)。
[0076]如根據(jù)以上的說(shuō)明可理解的那樣,基于本實(shí)施方式的解析單元27的解析功能,在第I對(duì)象范圍的層級(jí)模式362和第2對(duì)象范圍的層級(jí)模式362相同的情況下,判定為第I對(duì)象范圍的層級(jí)結(jié)構(gòu)和第2對(duì)象范圍的層級(jí)結(jié)構(gòu)相同(即、第I對(duì)象范圍和第2對(duì)象范圍相類似)。但是,層級(jí)結(jié)構(gòu)能夠通過(guò)與上述的方法不同的方法來(lái)進(jìn)行比較。例如,也可以通過(guò)圖6所示的層級(jí)模式(壓縮前)來(lái)比較層級(jí)結(jié)構(gòu)。這樣一來(lái),能夠更嚴(yán)格地比較層級(jí)結(jié)構(gòu)。此外,在創(chuàng)建層級(jí)模式(壓縮前)之際,也可以還對(duì)IF語(yǔ)句、THEN句、ELSE句、END-1F以外的語(yǔ)句(例如,MOVE語(yǔ)句)賦予層級(jí)等級(jí),連結(jié)成層級(jí)模式(壓縮前)。這樣一來(lái),能夠進(jìn)一步嚴(yán)格地比較兩個(gè)對(duì)象范圍的類似性。
[0077]兩個(gè)對(duì)象范圍的類似性還能夠通過(guò)層級(jí)模式以外的方式進(jìn)行比較。例如,還能夠根據(jù)在兩個(gè)對(duì)象范圍中所使用的執(zhí)行語(yǔ)句的種類或數(shù)目、所使用的函數(shù)的種類或數(shù)目、所使用的項(xiàng)目名稱的種類或數(shù)目來(lái)計(jì)算評(píng)價(jià)點(diǎn)。在該情況下,當(dāng)層級(jí)模式相同、且所計(jì)算出的評(píng)價(jià)點(diǎn)為給定點(diǎn)數(shù)以上時(shí),判定為兩個(gè)對(duì)象范圍相類似即可。
[0078]當(dāng)結(jié)束解析處理(S404?S416)時(shí),解析單元27將類似通知信息364寫(xiě)入至存儲(chǔ)裝置30 (S418)。更具體而言,解析單元27將創(chuàng)建出的層級(jí)結(jié)構(gòu)數(shù)據(jù)36寫(xiě)入至存儲(chǔ)裝置30。如前所述,層級(jí)結(jié)構(gòu)數(shù)據(jù)36與對(duì)象模塊31建立關(guān)聯(lián)地被存儲(chǔ)。因此,通過(guò)參照層級(jí)結(jié)構(gòu)數(shù)據(jù)36的類似行364n(即、與對(duì)象范圍已建立關(guān)聯(lián)的類似通知信息364),從而能夠容易地發(fā)現(xiàn)對(duì)象模塊31中的相互類似的對(duì)象范圍。
[0079]其次,解析單元27將對(duì)象模塊31顯示于顯示裝置50以使得能夠識(shí)別類似的地方(S420),然后結(jié)束處理。更具體而言,解析單元27例如像圖7所示那樣顯示對(duì)象模塊31。如圖7所示,對(duì)象模塊31之中相互類似的對(duì)象范圍分別被框包圍來(lái)顯示。進(jìn)而,在框的內(nèi)側(cè)顯示表示與哪個(gè)對(duì)象范圍相類似的類似識(shí)別代碼(在圖7中用圓包圍的數(shù)字)。但是,也可以不顯示類似識(shí)別代碼,通過(guò)改變框的屬性(顏色或粗細(xì)等)來(lái)表示對(duì)象范圍與哪個(gè)對(duì)象范圍相類似。此外,在對(duì)象模塊31內(nèi),當(dāng)相互類似的對(duì)象范圍遠(yuǎn)離的情況下,例如只要顯示與對(duì)象模塊31的排頭最近的對(duì)象范圍即可。通過(guò)按照在視覺(jué)上可容易地掌握的方式顯示相互類似的地方,從而能夠容易地檢測(cè)需要維護(hù)的地方。進(jìn)而,也能夠檢測(cè)要設(shè)為共同的處理單位的地方。
[0080]在顯示處理(S420)中,解析單元27也可以不顯示對(duì)象模塊31,而顯示創(chuàng)建出的層級(jí)結(jié)構(gòu)數(shù)據(jù)36。換言之,解析單元27將對(duì)象模塊31和類似通知信息364建立關(guān)聯(lián)地顯示于顯示裝置50即可。
[0081]基于本實(shí)施方式的解析單元27具有寫(xiě)入功能(S418)和顯示功能(S420),但解析單元27只要具有寫(xiě)入功能(S418)以及顯示功能(S420)的一者即可。進(jìn)而,也可以不具有上述的兩個(gè)功能的任何功能,取而代之具有將對(duì)象模塊31和類似通知信息364建立關(guān)聯(lián)地發(fā)送至其他裝置或單元的功能。
[0082]如圖8所示,也可以在對(duì)象模塊31中包含IF語(yǔ)句以外的條件語(yǔ)句。例如,關(guān)于EVALUATE語(yǔ)句,解析單元27只要每當(dāng)檢測(cè)到WHEN句時(shí)更新層級(jí)等級(jí),每當(dāng)檢測(cè)到對(duì)應(yīng)的END-EVALUATE時(shí)將層級(jí)等級(jí)返回到更新前即可。關(guān)于IF語(yǔ)句、EVALUATE語(yǔ)句以外的條件語(yǔ)句,也能夠同樣地進(jìn)行處理。為了容易理解,賦予了層級(jí)等級(jí)后的解析單元27的功能?動(dòng)作與在對(duì)象模塊31中僅包含IF語(yǔ)句作為條件語(yǔ)句的情況相同。
[0083]基于本實(shí)施方式的解析單元27,如以下所說(shuō)明的那樣可以各式各樣地變形。
[0084]例如,解析單元27也可以并非在第2對(duì)象范圍(即、被比較的一側(cè)的對(duì)象范圍)的類似行364η中設(shè)定第I對(duì)象范圍(即、進(jìn)行比較的一側(cè)的對(duì)象范圍)的連續(xù)編號(hào)361,而在第I對(duì)象范圍的類似行364η中設(shè)定第2對(duì)象范圍的連續(xù)編號(hào)361。此外,也可以在第I對(duì)象范圍以及第2對(duì)象范圍的類似行364η中分別設(shè)定第2對(duì)象范圍以及第I對(duì)象范圍的連續(xù)編號(hào)361。換言之,解析單元27只要將類似通知信息364與第I對(duì)象范圍以及/或者第2對(duì)象范圍建立關(guān)聯(lián)地進(jìn)行創(chuàng)建即可。
[0085]此外,解析單元27也可以在第I對(duì)象范圍(或者第2對(duì)象范圍)與多個(gè)第2對(duì)象范圍(或者第I對(duì)象范圍)類似的情況下,在類似行364η中設(shè)定最初檢測(cè)到相類似的第2對(duì)象范圍(或者第I對(duì)象范圍)的連續(xù)編號(hào)361。另一方面,解析單元27也可以在類似行364η中設(shè)定檢測(cè)到相類似的所有的第2對(duì)象范圍(或者第I對(duì)象范圍)的連續(xù)編號(hào)361。
[0086]但是,如根據(jù)圖7可理解的那樣,如果類似的對(duì)象范圍的檢測(cè)數(shù)變大(即、如果類似的對(duì)象范圍的檢測(cè)精度高),則與對(duì)象模塊31建立關(guān)聯(lián)地進(jìn)行顯示變得困難。此外,在大多數(shù)的情況下,在相互類似的對(duì)象范圍中還包含相互類似的對(duì)象范圍。在這種情況下,如果將類似的所有對(duì)象范圍存儲(chǔ)至層級(jí)結(jié)構(gòu)數(shù)據(jù)36,則設(shè)定有類似行364η的行360的數(shù)目不必要地變大,有可能導(dǎo)致關(guān)于是否需要維護(hù)的調(diào)查?研究工時(shí)增加。另一方面,如果縮減進(jìn)行類似判斷的對(duì)象范圍,則有可能導(dǎo)致遺漏關(guān)于是否需要維護(hù)的調(diào)查?研究。因此,類似的對(duì)象范圍的檢測(cè)精度最好與維護(hù)的內(nèi)容等相匹配地進(jìn)行調(diào)整。
[0087]例如,在檢測(cè)到類似的地方后的維護(hù)效率較為重要的情況下,解析單元27只要在解析功能(圖4的S404?S416)中不將滿足給定的條件的對(duì)象范圍(行360)作為第I對(duì)象范圍來(lái)使用即可。作為給定的條件,例如只要采用將行360的被連結(jié)成層級(jí)模式362的層級(jí)等級(jí)的數(shù)目設(shè)為基準(zhǔn)的條件即可。更具體而言,在被連結(jié)成層級(jí)模式362的層級(jí)等級(jí)的數(shù)目小于給定的數(shù)目(例如10)的情況下,只要不將該對(duì)象范圍作為第I對(duì)象范圍來(lái)使用即可?;蛘?,在對(duì)象范圍中的層級(jí)等級(jí)的最大值小于給定的數(shù)目(例如4)的情況下,也可以不將該對(duì)象范圍作為第I對(duì)象范圍來(lái)使用。
[0088]作為對(duì)象模塊31,也可以使用連結(jié)了多個(gè)模塊31的對(duì)象模塊。例如,也可以將多個(gè)模塊31從各自的開(kāi)始行至結(jié)束行單純地依序連結(jié)來(lái)作為對(duì)象模塊31。這樣一來(lái),能夠一并檢測(cè)系統(tǒng)整體中的類似的對(duì)象范圍。此外,也可將多個(gè)模塊31如以下所說(shuō)明的第2實(shí)施方式那樣進(jìn)行連結(jié)。
[0089](第2實(shí)施方式)
[0090]如圖9所示,基于本發(fā)明的第2實(shí)施方式的結(jié)構(gòu)解析裝置10'具備:裝置主體20'、存儲(chǔ)裝置(存儲(chǔ)單元)30'、輸入裝置40、以及顯示裝置50。結(jié)構(gòu)解析裝置10'與基于第I實(shí)施方式的結(jié)構(gòu)解析裝置10同樣地,進(jìn)行由通過(guò)程序語(yǔ)言描述的I個(gè)以上的語(yǔ)句構(gòu)成的模塊(源程序)的結(jié)構(gòu)解析?;诘?實(shí)施方式的程序語(yǔ)言、模塊、輸入裝置40以及顯示裝置50與第I實(shí)施方式同樣地分別構(gòu)成。
[0091]如圖9所示,存儲(chǔ)裝置30'是與存儲(chǔ)裝置30同樣的磁盤(pán)裝置。在存儲(chǔ)裝置30'中,與第I實(shí)施方式同樣地存儲(chǔ)有I個(gè)以上的模塊31。此外,在存儲(chǔ)裝置30'中存儲(chǔ)有二次模塊(模塊)32和流程圖33?;诒緦?shí)施方式的二次模塊32連結(jié)模塊31進(jìn)行變換而被創(chuàng)建。此外,流程圖33是根據(jù)二次模塊32創(chuàng)建的。
[0092]裝置主體2(V與裝置主體20相同,例如是PC的主體。裝置主體2(V具備CPU、主存儲(chǔ)裝置等(未圖示)。與第I實(shí)施方式同樣地,存儲(chǔ)裝置30'和主存儲(chǔ)裝置作為本實(shí)施方式中的可讀入以及寫(xiě)入的存儲(chǔ)單元而分別發(fā)揮功能。作為以后說(shuō)明中的存儲(chǔ)單元而例示存儲(chǔ)裝置30'。
[0093]在基于本實(shí)施方式的存儲(chǔ)裝置30'中存儲(chǔ)有變換程序、加工程序、流程圖創(chuàng)建程序、和解析程序(未圖示)。上述的程序被加載至主存儲(chǔ)裝置中,通過(guò)CPU來(lái)執(zhí)行,由此計(jì)算機(jī)作為變換單元21、加工單元22、流程圖創(chuàng)建單元25、以及解析單元2V而分別發(fā)揮功能。即、上述的程序用于使計(jì)算機(jī)作為支援模塊的結(jié)構(gòu)解析的結(jié)構(gòu)解析裝置10'而發(fā)揮功能。換言之,基于本實(shí)施方式的結(jié)構(gòu)解析裝置10'的裝置主體20'具備:變換單元21、力口工單元22、流程圖創(chuàng)建單元25、以及解析單元27'。
[0094]基于本實(shí)施方式的變換單元21將存儲(chǔ)裝置3(V所存儲(chǔ)的模塊31之中的給定的對(duì)象模塊31變換成二次模塊32而存儲(chǔ)至存儲(chǔ)裝置30/。加工單元22對(duì)存儲(chǔ)裝置30/所存儲(chǔ)的二次模塊32進(jìn)行加工。流程圖創(chuàng)建單元25根據(jù)存儲(chǔ)裝置30'所存儲(chǔ)的二次模塊32來(lái)創(chuàng)建表格式的流程圖33。解析單元27'與第I實(shí)施方式的解析單元27同樣地進(jìn)行存儲(chǔ)裝置30'所存儲(chǔ)的模塊31的結(jié)構(gòu)解析。但是,基于本實(shí)施方式的解析單元27'并非直接解析模塊31,而進(jìn)行二次模塊32之中的給定的對(duì)象模塊32的結(jié)構(gòu)解析。
[0095]如圖10所示,在存儲(chǔ)裝置30'中存儲(chǔ)有例如模塊名為XXX的模塊31 (XXX模塊)、模塊名為AAA的模塊31 (AAA模塊)、模塊名為BBB的模塊31 (BBB模塊)、和模塊名為CCC的模塊31 (CCC模塊)。模塊31分別通過(guò)由連續(xù)編號(hào)311和語(yǔ)句312組成的多個(gè)行310而構(gòu)成。以下,參照該示例來(lái)更具體地說(shuō)明模塊31的結(jié)構(gòu)。
[0096]XXX模塊是主要模塊(即、成為處理的起點(diǎn)的模塊)。XXX模塊具有分別描述了用于通過(guò)模塊名來(lái)確定并調(diào)用AAA模塊和BBB模塊的CALL語(yǔ)句的行310。AAA模塊具有描述了調(diào)用CCC模塊的CALL語(yǔ)句的行310。
[0097]圖10所例示的模塊31分別由I個(gè)以上的節(jié)構(gòu)成。例如,XXX模塊具有主要節(jié)(即、成為模塊中的處理的起點(diǎn)的主要的處理單位)、和從屬的節(jié)(從屬的處理單位)。主要節(jié)由從描述了” PROCEDURE DIVIS1N.” 的行 310 的下一行 310 至描述了” STOP RUN.” 的行 310為止的行310構(gòu)成。從屬的節(jié)(子節(jié))由從描述了”AAA-SUB SECT1N.”的行310至描述了”EXIT.”的行310為止的行310構(gòu)成。上述的子節(jié)的節(jié)名(處理單位名)為AAA-SUB。主要節(jié)具備通過(guò)節(jié)名來(lái)確定并執(zhí)行AAA-SUB節(jié)的行310。更具體而言,主要節(jié)具備描述了” PERFORM AAA-SUB.” 的行 310。
[0098]圖10所例示的節(jié)的一部分具備描述了條件語(yǔ)句的行310。例如,XXX模塊的主要節(jié)具備:描述了具有5個(gè)WHEN句的EVALUATE語(yǔ)句的行310、和描述了具有THEN以及ELSE的IF語(yǔ)句的行310。CCC模塊的主要節(jié)在IF語(yǔ)句的ELSE中還具備描述了 IF語(yǔ)句的行310,由此來(lái)進(jìn)行基于條件語(yǔ)句的語(yǔ)句312的層級(jí)化。
[0099]如圖11所示,基于本實(shí)施方式的二次模塊32由P個(gè)(m彡I)的二次行(行)320構(gòu)成。基于本實(shí)施方式的二次模塊32為MICROSOFT EXCEL (在日本的注冊(cè)商標(biāo))的工作表。但是,二次模塊32例如可以是文本文件?;诒緦?shí)施方式的行320至少由模塊識(shí)別321、行編號(hào)322、層級(jí)識(shí)別323、命令識(shí)別324、連續(xù)編號(hào)(行識(shí)別)326、二次語(yǔ)句327、以及層級(jí)結(jié)構(gòu)329構(gòu)成。層級(jí)結(jié)構(gòu)329具備層級(jí)模式329p、以及類似通知信息329r。基于本實(shí)施方式的類似通知信息329r具備類似有無(wú)329f。
[0100]二次模塊32從I個(gè)以上的模塊31之中收集描述了執(zhí)行語(yǔ)句等的行310來(lái)進(jìn)行加工,由此生成。基于本實(shí)施方式的二次模塊32由變換單元21來(lái)生成,由加工單元22以及解析單元27^來(lái)加工。尤其是,二次模塊32的層級(jí)結(jié)構(gòu)329與第I實(shí)施方式中的層級(jí)結(jié)構(gòu)數(shù)據(jù)36同樣地,由解析單元27'來(lái)設(shè)定。
[0101]如圖12所示,基于本實(shí)施方式的二次模塊32例如收集XXX模塊、AAA模塊、BBB模塊以及CCC模塊的PROCEDURE DIVIS1N的行310來(lái)進(jìn)行加工后的模塊。
[0102]如根據(jù)圖10以及圖12可理解的那樣,在行320的二次語(yǔ)句327中行310的語(yǔ)句312所描述的CALL語(yǔ)句被注釋化(即、被變更成注釋語(yǔ)句)。通過(guò)CALL語(yǔ)句而調(diào)用的AAA模塊的PROCEDURE DIVIS1N的語(yǔ)句312作為行320的二次語(yǔ)句327被展開(kāi)(即、被展開(kāi)而生成行320的二次語(yǔ)句327)。進(jìn)而,通過(guò)CALL語(yǔ)句被AAA模塊調(diào)用的CCC模塊的PROCEDUREDIVIS1N的語(yǔ)句312,作為行320的二次語(yǔ)句327被展開(kāi)。同樣地,行310的語(yǔ)句312所描述的PERFORM語(yǔ)句,在行320的二次語(yǔ)句327中被注釋化。此外,通過(guò)PERFORM語(yǔ)句執(zhí)行的AAA-SUB節(jié)的語(yǔ)句312,作為行320的二次語(yǔ)句327被展開(kāi)。
[0103]此外,語(yǔ)句312所描述的條件語(yǔ)句之中IF語(yǔ)句以外的條件語(yǔ)句(在本實(shí)施方式中是指EVALUATE語(yǔ)句),在二次語(yǔ)句327中被變換成IF語(yǔ)句。例如,分別描述了 ” EVALUATEWK-A-0”、” WHEN CS-1 ”、” MOVE CS-1T0 WK-B-1 ” 的 3 個(gè)語(yǔ)句 312 被變換成分別描述7 ” *#E EVALUATE WK-A-O” (注釋語(yǔ)句)、” *#E WHEN CS-1 ” (注釋語(yǔ)句)、” IF (WK-A-0 =CS-1)”、”THEN”、”MOVE CS-1T0 WK-B-1”的5個(gè)二次語(yǔ)句327。根據(jù)本實(shí)施方式,除了上述的變換之外,還生成用于補(bǔ)足IF語(yǔ)句中的THEN、ELSE以及END IF的遺漏的二次語(yǔ)句327。此外,否定的條件式被變換成肯定的條件式。進(jìn)而,具有由AND、0R結(jié)合的條件式的IF語(yǔ)句被分解成多個(gè)IF語(yǔ)句,從而被變換成具有僅通過(guò)一個(gè)邏輯運(yùn)算符來(lái)評(píng)價(jià)兩個(gè)評(píng)價(jià)對(duì)象操作數(shù)之間的關(guān)系的單純的二次條件式的IF語(yǔ)句。但是,也可以不進(jìn)行上述的變換的一部分(例如,由AND、OR結(jié)合的條件式的分解)。
[0104]除了上述之外,被多個(gè)語(yǔ)句312分寫(xiě)的MOVE語(yǔ)句等匯集成一個(gè)二次語(yǔ)句327。SP、二次模塊32的行320分別基于模塊31的行310來(lái)生成。更具體而言,二次語(yǔ)句327是原封不動(dòng)地拷貝語(yǔ)句312的語(yǔ)句,或者是通過(guò)加工.展開(kāi)語(yǔ)句312而生成的語(yǔ)句。
[0105]基于本實(shí)施方式的模塊識(shí)別321表示各個(gè)行320是基于哪個(gè)模塊31的。更具體而言,在模塊識(shí)別321中設(shè)定模塊名(例如XXX)。但是,也可以取代模塊名,來(lái)設(shè)定可唯一地識(shí)別模塊31的編號(hào)等。
[0106]對(duì)于連續(xù)編號(hào)326,在二次語(yǔ)句327為語(yǔ)句312的拷貝的行320中,設(shè)定了拷貝源的行310的連續(xù)編號(hào)311。關(guān)于與行310 —一對(duì)應(yīng)的行320 (例如,使語(yǔ)句312注釋化的二次語(yǔ)句327的行320),在連續(xù)編號(hào)326中設(shè)定了所對(duì)應(yīng)的行310的連續(xù)編號(hào)311。另一方面,在所生成的(所追加的)行320的連續(xù)編號(hào)326中設(shè)定了可識(shí)別是所生成的行320的標(biāo)識(shí)符(例如,記號(hào)的組合)。如此一來(lái),當(dāng)進(jìn)行系統(tǒng)的維護(hù)之際,能夠容易地將行320和行310建立對(duì)應(yīng)。
[0107]在基于本實(shí)施方式的行編號(hào)322中,從I開(kāi)始的序列號(hào)沿著行320的排列順序進(jìn)行設(shè)定。但是,行編號(hào)322只要可以比較行編號(hào)322的大小關(guān)系,則也可以不是序列號(hào)。例如,行編號(hào)322可以是字符、記號(hào)的組合。
[0108]基于本實(shí)施方式的層級(jí)識(shí)別323由分支層級(jí)和分支的深度構(gòu)成。分支層級(jí)為了識(shí)別基于條件語(yǔ)句的層級(jí)而被使用?;诒緦?shí)施方式的分支層級(jí)通過(guò)使用I作為第I行的行320中的起點(diǎn)值,由此來(lái)設(shè)定。換言之,第I行的行320的分支層級(jí)為I。分支層級(jí),在IF語(yǔ)句的描述了 THEN的行320中被變更為1.1,在描述了 ELSE的行320中被變更為1.2。分支層級(jí),從IF語(yǔ)句的描述了 END IF的行320的下一行起返回至I。一般而言,在描述了 THEN的行320中,在緊前面的行320的分支層級(jí)的術(shù)尾添加1”,在描述了 ELSE的行320中,緊前面的行320的分支層級(jí)的末尾I”被變更為2”,在描述了 END IF的行320的下一行中,描述了 END IF的行320的分支層級(jí)的末尾“.2”被刪除。除了上述的情況,在分支層級(jí)中設(shè)定與前面緊挨的行320相同的值。
[0109]基于本實(shí)施方式的分支的深度與分支層級(jí)同樣地,通過(guò)使用I作為第I行的行320中的起點(diǎn)值,由此來(lái)設(shè)定。換言之,第I行的行320的分支的深度為I。分支的深度,在IF語(yǔ)句的描述了 THEN的行320中被變更為1.1,從描述了 END IF的行320的下一行起返回至
I。進(jìn)而,在其后的IF語(yǔ)句的描述了 THEN的行320中被變更為1.2,從描述了 END IF的行320的下一行起返回至I。一般而言,分支的深度將I作為起點(diǎn)值,在描述了 THEN的行320中,在末尾添加q”(q為I以上的整數(shù))這一位,在描述了 END IF的行320的下一行中末尾的“.q”這一位被刪除?!?q”中的q的值,關(guān)于各個(gè)位而將I作為起點(diǎn)值。詳細(xì)而言,第I位的“.q”(例如1.2的“.2”)中的q的值將I作為起點(diǎn)值,每當(dāng)被附加時(shí)進(jìn)行增量。另一方面,第2位以后的q”(例如1.2.1的I”)中的q的值在除了該位之外的分支的深度為相同值的行320連續(xù)的范圍中將I作為起點(diǎn)值,在該連續(xù)的范圍中每當(dāng)被附加時(shí)進(jìn)行增量。
[0110]命令識(shí)別324表示在二次語(yǔ)句327中描述的語(yǔ)句的類別?;诒緦?shí)施方式的命令識(shí)別324由命令名、表示是否為條件命令的分類(條件命令恰當(dāng)與否:在圖12中簡(jiǎn)單記載為“條件命令”)、和表示是否為處理命令的分類(處理命令恰當(dāng)與否:在圖12中簡(jiǎn)單記載為“處理命令”)構(gòu)成。當(dāng)在二次語(yǔ)句327中描述了 IF語(yǔ)句的要素的一部分的情況下(即、描述了 IF、THEN、ELSE或者END-1F的情況下),對(duì)于條件命令恰當(dāng)與否而設(shè)定了 O。當(dāng)在二次語(yǔ)句327中描述了 IF語(yǔ)句以外的執(zhí)行語(yǔ)句的情況下(例如,描述了 MOVE語(yǔ)句、COMPUTE語(yǔ)句的情況下),對(duì)于處理命令恰當(dāng)與否而設(shè)定了 O。當(dāng)對(duì)于條件命令恰當(dāng)與否、或者處理命令恰當(dāng)與否而設(shè)定了 O的情況下,對(duì)于命令名而設(shè)定在二次語(yǔ)句327中描述的命令名(IF、THEN、END-1F、MOVE 等)。
[0111]層級(jí)模式329p與第I實(shí)施方式同樣用于確定對(duì)象范圍的層級(jí)結(jié)構(gòu)。詳細(xì)而言,與第I實(shí)施方式同樣地,在IF語(yǔ)句開(kāi)始的(即、對(duì)象范圍開(kāi)始的)行320的層級(jí)模式329p中設(shè)定連結(jié)了層級(jí)等級(jí)的層級(jí)模式。在圖12中如虛線A所示的部分可理解的那樣,根據(jù)本實(shí)施方式,層級(jí)識(shí)別323的長(zhǎng)度(例如,分支的深度的位數(shù))表示層級(jí)等級(jí)。
[0112]對(duì)于類似通知信息329r,也與第I實(shí)施方式同樣地設(shè)定表示在二次模塊32內(nèi)是否存在相互類似的對(duì)象范圍的數(shù)據(jù)。根據(jù)本實(shí)施方式,對(duì)于類似有無(wú)329f設(shè)定表示是否存在具有與該行320的層級(jí)模式329p相同的層級(jí)模式329p的行320的標(biāo)記。
[0113]行320除了以上說(shuō)明過(guò)的項(xiàng)目之外還能夠具備各式各樣的項(xiàng)目。例如,在行320具備對(duì)應(yīng)的行310的節(jié)名的情況下,能夠更容易地掌握行320與行310之間的對(duì)應(yīng)。
[0114]根據(jù)本實(shí)施方式,能夠基于存儲(chǔ)在存儲(chǔ)裝置30'中的二次模塊32來(lái)創(chuàng)建各式各樣的文件。所創(chuàng)建的文件能夠作為用于支援模塊31的句法解析的資料而顯示.印刷于顯示裝置50。更具體而言,例如,能夠基于二次模塊32來(lái)創(chuàng)建流程圖33。
[0115]如根據(jù)圖13可理解的那樣,基于本實(shí)施方式的流程圖33為MICROSOFT EXCEL (日本中的注冊(cè)商標(biāo))的工作表。但是,流程圖33也可以是其他格式的文件等。根據(jù)本實(shí)施方式,流程圖33由二次模塊32來(lái)生成。
[0116]流程圖33將二次模塊32的二次語(yǔ)句327編輯成流程圖樣子。更具體而言,與IF語(yǔ)句不關(guān)聯(lián)的二次語(yǔ)句327按照二次模塊32中的行320的排列順序而排列在第2列(在報(bào)頭中顯示出”2”的列)。另一方面,與IF語(yǔ)句關(guān)聯(lián)的二次語(yǔ)句327(即、描述了從IF至END-1F的語(yǔ)句的二次語(yǔ)句327)被左右分別劃分排列了在IF語(yǔ)句中的條件式成立的情況下被執(zhí)行的二次語(yǔ)句327、和在IF語(yǔ)句中的條件式不成立的情況下被執(zhí)行的二次語(yǔ)句327。
[0117]在流程圖33的第I列設(shè)定了排列在第2列的二次語(yǔ)句327的行編號(hào)322,由此能夠使流程圖33的行與二次模塊32的行320分別建立對(duì)應(yīng)。并不限于行編號(hào)322,能夠?qū)⑿?20的任意項(xiàng)目設(shè)定為流程圖33。
[0118]如根據(jù)以上的說(shuō)明可理解的那樣,基于本實(shí)施方式的流程圖33的列隨著基于IF語(yǔ)句的層級(jí)的加深而增加。換言之,二次模塊32之中描述了更為復(fù)雜的條件語(yǔ)句的地方,按照在表的列方向上延伸的方式進(jìn)行顯示。因此,使流程圖33顯示于顯示裝置50,并對(duì)比排列顯示在左右的列上的執(zhí)行語(yǔ)句,從而能夠掌握條件式的成立與否所引起的處理的差異。也能夠?qū)α鞒虉D33中的處理塊附加顏色后使之顯示于顯示裝置50。例如,能夠在流程圖33的設(shè)定了 IF以及END-1F的欄中設(shè)定給定的背景色A,在THEN的情況下被執(zhí)行的二次語(yǔ)句327設(shè)定給定的背景色B,在ELSE的情況下被執(zhí)行的二次語(yǔ)句327設(shè)定給定的背景色C。如此一來(lái),在使流程圖33顯示于顯示裝置50之際,能夠?qū)⒒贗F語(yǔ)句的層級(jí)結(jié)構(gòu)作為基于背景色的組合的模式而在視覺(jué)上進(jìn)行掌握。
[0119]以下,關(guān)于基于本實(shí)施方式的結(jié)構(gòu)解析裝置10'的功能以及動(dòng)作來(lái)詳細(xì)地進(jìn)行說(shuō)明。
[0120]如根據(jù)圖14可理解的那樣,基于本實(shí)施方式的變換單元21具有:控制信息獲取功能(S1400)、讀入功能(S1402、S1404)、變換功能(S1406?S1412)、以及寫(xiě)入功能(S1414)??刂菩畔@取功能是獲取展開(kāi)控制信息的功能。讀入功能是從存儲(chǔ)裝置30'讀入模塊31之中作為處理對(duì)象的對(duì)象模塊31的功能。變換功能是將對(duì)象模塊31變換成二次模塊32的功能。寫(xiě)入功能是將二次模塊32存儲(chǔ)至存儲(chǔ)裝置30'的功能。
[0121]更具體而言,如圖14所示,如果變換單元21通過(guò)例如從輸入裝置40輸入的啟動(dòng)指示而被啟動(dòng),則獲取作為例如啟動(dòng)指示的一部分而被輸入的展開(kāi)控制信息(S1400)。能夠使在基于本實(shí)施方式的展開(kāi)控制信息中包含展開(kāi)限制指示。關(guān)于展開(kāi)限制指示,指示的是:僅在初次限制執(zhí)行對(duì)象的節(jié)或者調(diào)用對(duì)象的模塊31的語(yǔ)句312中描述的語(yǔ)句的展開(kāi)。
[0122]其次,變換單元21獲取用于確定對(duì)象模塊31的對(duì)象模塊名(S1402)。對(duì)象模塊名能夠以與展開(kāi)控制信息同樣的方法來(lái)獲取。變換單元21從存儲(chǔ)裝置30'讀入由獲取到的對(duì)象模塊名而確定的對(duì)象模塊31 (S1404)。此時(shí),例如也可以僅存儲(chǔ)在給定的文件夾中的模塊31為讀入對(duì)象。當(dāng)對(duì)象模塊31未存儲(chǔ)在存儲(chǔ)裝置30'中的情況下,變換單元21結(jié)束處理(未圖不)。
[0123]其次,變換單元21獲取對(duì)象模塊31的處理開(kāi)始地方的語(yǔ)句312(S1406)?;诒緦?shí)施方式的處理開(kāi)始地方為主要節(jié)的排頭。變換單元21針對(duì)獲取到的語(yǔ)句312進(jìn)行二次語(yǔ)句輸出處理(S1408)。其次,變換單元21判定是否處理完畢處理結(jié)束地方的語(yǔ)句312 (S1410)。基于本實(shí)施方式的處理結(jié)束地方為主要節(jié)的末尾。當(dāng)處理已結(jié)束的情況下(S1410中“是”的情況下),變換單元21將所創(chuàng)建的二次模塊32寫(xiě)入至存儲(chǔ)裝置30' (S1414),然后結(jié)束處理。另一方面,當(dāng)處理未結(jié)束的情況下(S1410中“否”的情況下),變換單元21獲取其次要處理的語(yǔ)句312 (后續(xù)的行310的語(yǔ)句312) (S1412),針對(duì)獲取到的語(yǔ)句312進(jìn)行二次語(yǔ)句輸出處理(S1408)。
[0124]圖15是更詳細(xì)地表示圖14所示的變換單元21的處理(功能)之中二次語(yǔ)句輸出處理(S1408)的流程圖。如圖15所示,變換單元21在二次語(yǔ)句輸出處理中將語(yǔ)句312作為二次語(yǔ)句327來(lái)輸出(S1500)。更具體而言,根據(jù)本實(shí)施方式,將在語(yǔ)句312中描述的執(zhí)行語(yǔ)句等拷貝至工作表的給定的行?列。此時(shí),如前所述,被進(jìn)行使PERFORM語(yǔ)句變?yōu)樽⑨屨Z(yǔ)句等的加工。進(jìn)而,變換單元21針對(duì)模塊識(shí)別321、行編號(hào)322、以及連續(xù)編號(hào)326而設(shè)定前述那樣的值。
[0125]其次,變換單元21判定在語(yǔ)句312中是否描述了條件語(yǔ)句(S1502)。當(dāng)在語(yǔ)句312中描述的執(zhí)行語(yǔ)句為條件語(yǔ)句的情況下(S1502中“是”的情況下),變換單元21如前所述那樣進(jìn)行將IF語(yǔ)句以外的條件語(yǔ)句變換成IF語(yǔ)句等的處理。更具體而言,變換單元21基于條件語(yǔ)句的條件式來(lái)生成描述了作為二次語(yǔ)句之一的二次條件語(yǔ)句(IF語(yǔ)句)的二次語(yǔ)句327,通過(guò)二次條件語(yǔ)句而使二次語(yǔ)句327層級(jí)化并輸出至二次模塊(S1504),然后結(jié)束二次語(yǔ)句輸出處理。上述的二次條件語(yǔ)句是通過(guò)僅由一個(gè)邏輯運(yùn)算符來(lái)評(píng)價(jià)兩個(gè)評(píng)價(jià)對(duì)象操作數(shù)之間的關(guān)系這樣的二次條件式是成立還是不成立,來(lái)選擇要執(zhí)行的二次語(yǔ)句327的條件語(yǔ)句(二次語(yǔ)句327)。
[0126]當(dāng)在語(yǔ)句312中描述的執(zhí)行語(yǔ)句(即、判定對(duì)象語(yǔ)句)不是條件語(yǔ)句的情況下(S1502中“否”的情況下),變換單元21進(jìn)行判定對(duì)象語(yǔ)句是否為處理單位執(zhí)行語(yǔ)句(PERFORM語(yǔ)句)的判定(S1506)。當(dāng)判定對(duì)象語(yǔ)句為處理單位執(zhí)行語(yǔ)句的情況下(S1506中“是”的情況下),變換單元21獲取執(zhí)行對(duì)象的處理單位(根據(jù)本實(shí)施方式是指節(jié))的處理開(kāi)始地方的語(yǔ)句312。在本實(shí)施方式中,處理單位的處理開(kāi)始地方為節(jié)的排頭。
[0127]當(dāng)判定對(duì)象語(yǔ)句不是處理單位執(zhí)行語(yǔ)句的情況下(S1506中“否”的情況下),變換單元21進(jìn)行判定對(duì)象語(yǔ)句是否為模塊調(diào)用語(yǔ)句(根據(jù)本實(shí)施方式是指CALL語(yǔ)句)的判定(S1510)。當(dāng)判定對(duì)象語(yǔ)句為模塊調(diào)用語(yǔ)句的情況下(S1510中“是”的情況下),變換單元21從存儲(chǔ)裝置30'讀入由CALL語(yǔ)句而確定的調(diào)用對(duì)象的模塊31 (S1512),獲取調(diào)用對(duì)象的模塊31的處理開(kāi)始地方的語(yǔ)句312(S1514)。根據(jù)本實(shí)施方式,調(diào)用對(duì)象的模塊31的處理開(kāi)始地方為該模塊31的主要節(jié)的排頭。當(dāng)判定對(duì)象語(yǔ)句不是模塊調(diào)用語(yǔ)句的情況下(S1510中“否”的情況下),變換單元21結(jié)束二次語(yǔ)句輸出處理。
[0128]變換單元21針對(duì)執(zhí)行對(duì)象的節(jié)的語(yǔ)句312或者調(diào)用對(duì)象的模塊31的語(yǔ)句312,遞歸式地進(jìn)行二次語(yǔ)句輸出處理(S1516)。其次,變換單元21判定是否處理完畢處理結(jié)束地方的語(yǔ)句312(S1518)?;诒緦?shí)施方式的處理結(jié)束地方,關(guān)于執(zhí)行對(duì)象的節(jié)而言是該節(jié)的末尾,關(guān)于調(diào)用對(duì)象的模塊31而言是主要節(jié)的末尾。當(dāng)處理已結(jié)束的情況下(S1518中“是”的情況下),變換單元21結(jié)束二次語(yǔ)句輸出處理。另一方面,當(dāng)處理未結(jié)束的情況下(S1518中“否”的情況下),變換單元21獲取其次要處理的語(yǔ)句312 (后續(xù)的行310的語(yǔ)句312) (S1520),針對(duì)獲取到的語(yǔ)句312遞歸式地進(jìn)行二次語(yǔ)句輸出處理(S1516)。
[0129]變換單元21針對(duì)遞歸式的(執(zhí)行自己本身的)PERFORM語(yǔ)句不進(jìn)行執(zhí)行對(duì)象的節(jié)的語(yǔ)句312的展開(kāi)。同樣地,變換單元21針對(duì)遞歸式的(調(diào)用自己本身的)CALL語(yǔ)句不進(jìn)行調(diào)用對(duì)象的模塊31的語(yǔ)句312的展開(kāi)。進(jìn)而,變換單元21當(dāng)對(duì)于展開(kāi)控制信息而指定了展開(kāi)限制指示的情況下,針對(duì)執(zhí)行節(jié)名與已經(jīng)進(jìn)行了二次語(yǔ)句輸出處理的節(jié)相同的節(jié)的PERFORM語(yǔ)句,不進(jìn)行二次語(yǔ)句輸出處理(S1506)。同樣地,變換單元21當(dāng)對(duì)于展開(kāi)控制信息而指定了展開(kāi)限制指示的情況下,針對(duì)調(diào)用模塊名與已經(jīng)進(jìn)行了二次語(yǔ)句輸出處理的模塊31相同的模塊31的CALL語(yǔ)句,不進(jìn)行二次語(yǔ)句輸出處理(S1510)。
[0130]如根據(jù)以上的說(shuō)明可理解的那樣,變換單元21的變換功能將從對(duì)象模塊31的給定的處理開(kāi)始地方起至給定的處理結(jié)束地方為止所描述的語(yǔ)句312分別作為二次語(yǔ)句327而依次輸出至二次模塊。進(jìn)而,變換單元21的變換功能,在語(yǔ)句312為處理單位執(zhí)行語(yǔ)句或者模塊調(diào)用語(yǔ)句的情況下,通過(guò)將在執(zhí)行對(duì)象的處理單位或者調(diào)用對(duì)象的模塊31中描述的語(yǔ)句312展開(kāi),從而生成二次語(yǔ)句327并輸出至二次模塊32。進(jìn)而,變換單元21的變換功能,針對(duì)被展開(kāi)的語(yǔ)句312中的處理單位執(zhí)行語(yǔ)句或者模塊調(diào)用語(yǔ)句,還進(jìn)一步進(jìn)行展開(kāi)(即、遞歸式展開(kāi))。因此,能夠使在多數(shù)的處理單位或模塊31中分散的功能拉近到對(duì)象模塊31的主要節(jié)來(lái)進(jìn)行收集。如前所述,根據(jù)本實(shí)施方式,關(guān)于模塊31的給定的處理開(kāi)始地方以及給定的處理結(jié)束地方分別為主要節(jié)的排頭以及末尾。但是,關(guān)于模塊31的給定的處理開(kāi)始地方以及給定的處理結(jié)束地方也可以分別設(shè)為PROCRDURE DIVIS0N的排頭以及末尾。例如,也能將給定的處理開(kāi)始地方以及給定的處理結(jié)束地方之中的至少一方設(shè)為主要節(jié)的中途。但是,為了避免不必要的展開(kāi),且獲得充分的展開(kāi)結(jié)果,優(yōu)選設(shè)為本實(shí)施方式的構(gòu)成。
[0131]如根據(jù)以上的說(shuō)明可理解的那樣,基于本實(shí)施方式的變換單元21的變換功能,當(dāng)對(duì)于展開(kāi)控制信息而指定了展開(kāi)限制指示的情況下,針對(duì)同一處理單位,將在執(zhí)行對(duì)象的處理單位中描述的語(yǔ)句312的展開(kāi)只進(jìn)行初次的一次(即,將同一處理單位只展開(kāi)一次),針對(duì)同一模塊31,將在調(diào)用對(duì)象的模塊31中描述的語(yǔ)句312的展開(kāi)只進(jìn)行初次的一次(即,將同一模塊31只展開(kāi)一次)。但是,變換單元21的變換功能也可以與是否指定了展開(kāi)限制指示無(wú)關(guān)地,將同一處理單位或同一模塊31只展開(kāi)一次。進(jìn)而,變換單元21的變換功能也可以與是否指定了展開(kāi)限制指示無(wú)關(guān)地,將同一處理單位或同一模塊31反復(fù)展開(kāi)。
[0132]如以上說(shuō)明過(guò)的那樣,通過(guò)變換單元21,由二次語(yǔ)句327構(gòu)成的二次模塊32被存儲(chǔ)至存儲(chǔ)裝置30'。
[0133]如根據(jù)圖16可理解的那樣,基于本實(shí)施方式的加工單元22具有:讀入功能(S1600、S1602)、層級(jí)識(shí)別附加功能(S1606)、命令識(shí)別附加功能(S1608)、以及寫(xiě)入功能(S1014)o讀入功能是從存儲(chǔ)裝置30'讀入處理對(duì)象的二次模塊32的功能。層級(jí)識(shí)別附加功能是針對(duì)二次模塊32的二次語(yǔ)句327的至少一部分來(lái)附加層級(jí)識(shí)別323的功能?;诒緦?shí)施方式的層級(jí)識(shí)別323表示二次語(yǔ)句327位于哪一層級(jí)。命令識(shí)別附加功能是針對(duì)二次模塊32的二次語(yǔ)句327的至少一部分來(lái)附加命令識(shí)別324的功能。基于本實(shí)施方式的命令識(shí)別324表示在二次語(yǔ)句327中描述的語(yǔ)句的類別。寫(xiě)入功能是將由附加了層級(jí)識(shí)別323以及命令識(shí)別324的二次語(yǔ)句327構(gòu)成的二次模塊32存儲(chǔ)至存儲(chǔ)裝置30'的功能。
[0134]更具體而言,如圖16所示,如果加工單元22例如與變換單元21同樣地被啟動(dòng),則獲取用于確定處理對(duì)象的二次模塊32的二次模塊名(S1600)。加工單元22從存儲(chǔ)裝置30'讀入由獲取到的二次模塊名而確定的二次模塊32 (S1602)。當(dāng)處理對(duì)象的二次模塊32未存儲(chǔ)在存儲(chǔ)裝置30中的情況下,加工單元22結(jié)束處理(未圖示)。
[0135]其次,加工單元22獲取處理對(duì)象的二次模塊32的處理開(kāi)始地方的二次語(yǔ)句327(S1604)?;诒緦?shí)施方式的處理開(kāi)始地方為二次模塊32的排頭。
[0136]加工單元22針對(duì)獲取到的二次語(yǔ)句327來(lái)附加層級(jí)識(shí)別323 (S1606)。更具體而言,基于本實(shí)施方式的加工單元22在記錄了處理對(duì)象的二次模塊32的工作表(即、對(duì)象工作表)中與行320的層級(jí)識(shí)別323對(duì)應(yīng)的行和列,設(shè)定前述那樣的分支層級(jí)和分支的深度。其次,加工單元22針對(duì)獲取到的二次語(yǔ)句327來(lái)附加命令識(shí)別324(S1608)。更具體而言,基于本實(shí)施方式的加工單元22在對(duì)象工作表中與行320的命令識(shí)別324對(duì)應(yīng)的行?列,設(shè)定前述那樣的命令名、條件命令恰當(dāng)與否、和處理命令恰當(dāng)與否。
[0137]其次,加工單元22判定是否處理完畢處理結(jié)束地方的二次語(yǔ)句327 (S1612)?;诒緦?shí)施方式的處理結(jié)束地方為二次模塊32的末尾。當(dāng)處理已結(jié)束的情況下(S1612中“是”的情況下),加工單元22將已加工的二次模塊32寫(xiě)入至存儲(chǔ)裝置30' (S1614),然后結(jié)束處理。另一方面,當(dāng)處理未結(jié)束的情況下(S1612中“否”的情況下),加工單元22獲取其次要處理的二次語(yǔ)句327 (后續(xù)的行320的二次語(yǔ)句327) (S1616),針對(duì)獲取到的二次語(yǔ)句327進(jìn)行層級(jí)識(shí)別323的附加等(S1606、S1608)。
[0138]如以上說(shuō)明過(guò)的那樣,由通過(guò)加工單元22附加了層級(jí)識(shí)別323以及命令識(shí)別324的二次語(yǔ)句327構(gòu)成的二次模塊32(根據(jù)本實(shí)施方式是指追記了層級(jí)識(shí)別323等的工作表)被存儲(chǔ)至存儲(chǔ)裝置30'。
[0139]基于本實(shí)施方式的解析單元TV具備與基于第I實(shí)施方式的解析單元27同樣的功能。以下,以與解析單元27不同的功能作為中心,參照?qǐng)D17所示的例子,使用圖4來(lái)進(jìn)行說(shuō)明。
[0140]如果解析單元27'與解析單元27同樣地被啟動(dòng),則從存儲(chǔ)裝置30'(或者主存儲(chǔ)裝置)讀入對(duì)象模塊32 (S400.S402)。換言之,解析單元27,不將模塊31而將二次模塊32作為解析對(duì)象。
[0141]解析單元2V在確定對(duì)象模塊32的各語(yǔ)句的層級(jí)等級(jí)之際(S404),根據(jù)命令識(shí)別324的命令名來(lái)判定IF語(yǔ)句的開(kāi)始、結(jié)束等。此外,解析單元27'將層級(jí)識(shí)別323的長(zhǎng)度作為層級(jí)等級(jí)來(lái)使用。如果參照?qǐng)D17的例子,則針對(duì)各行320如從右起第2列所示那樣賦予層級(jí)等級(jí)。
[0142]解析單元27'與解析單元27同樣地提取對(duì)象范圍(即、作為進(jìn)行層級(jí)結(jié)構(gòu)的解析的對(duì)象的范圍)(S406)。但是,基于本實(shí)施方式的解析單元27'不將對(duì)象范圍所含的范圍作為對(duì)象范圍來(lái)使用。具體而言,如果參照?qǐng)D17所例示的對(duì)象模塊32,則IF語(yǔ)句(條件語(yǔ)句)之中的兩個(gè),從行編號(hào)322為874以及2397的行320起分別開(kāi)始。此外,上述的IF語(yǔ)句,在行編號(hào)322為921以及2437的行320分別結(jié)束。解析單元TV將從行編號(hào)322為874的行320至行編號(hào)322為921的行320為止、以及從行編號(hào)322為2397的行320至行編號(hào)322為2437的行320為止,作為對(duì)象范圍來(lái)使用。另一方面,解析單元27'例如不將從行編號(hào)322為882的行320至行編號(hào)322為920的行320為止作為對(duì)象范圍來(lái)使用。
[0143]解析單元27'與解析單元27同樣地創(chuàng)建層級(jí)模式(S406)。如果參照?qǐng)D17所例示的對(duì)象模塊32,則針對(duì)行編號(hào)322為874的行320、以及行編號(hào)322為2397的行320,分別創(chuàng)建” 1 2 3 4 3 4 5 4 3 2 I”的層級(jí)模式,設(shè)定為層級(jí)模式329p。
[0144]解析單元27'與解析單元27同樣地,選擇所創(chuàng)建的層級(jí)結(jié)構(gòu)329的對(duì)象范圍(即、對(duì)象模塊31的對(duì)象范圍)之中相互不同的兩個(gè)對(duì)象范圍(即、第I對(duì)象范圍和第2對(duì)象范圍)。解析單元21'在第I對(duì)象范圍的層級(jí)結(jié)構(gòu)和第2對(duì)象范圍的層級(jí)結(jié)構(gòu)相同的情況下,創(chuàng)建類似通知信息329r(S408?S416)。解析單元27'使類似通知信息329r與第I對(duì)象范圍以及第2對(duì)象范圍建立關(guān)聯(lián)地創(chuàng)建。更具體而言,解析單元27'針對(duì)對(duì)象模塊32的行320,分別判定有無(wú)同一層級(jí)模式329p (S410?S416)。解析單元27'在檢測(cè)到具有彼此相同的層級(jí)模式329p的兩個(gè)行320的情況下,對(duì)檢測(cè)到的兩個(gè)行320的各自的類似有無(wú)329f設(shè)定意味著“有類似”的標(biāo)記。
[0145]如果參照?qǐng)D17所例示的對(duì)象模塊32,則從行編號(hào)322為874的行320至行編號(hào)322為921的行320為止的第I對(duì)象范圍(Rl)、和從行編號(hào)322為2397的行320至行編號(hào)322為2437的行320為止的第2對(duì)象范圍(R2)具有同一層級(jí)模式329p。因而,對(duì)于行編號(hào)322為874的行320以及行編號(hào)322為2397的行320的類似有無(wú)329f分別設(shè)定” I” (有類似對(duì)象范圍)。
[0146]其次,解析單元27'判定是否結(jié)束了所有的層級(jí)模式329p的處理(S414),當(dāng)已結(jié)束的情況下(S414中“是”的情況下),進(jìn)行S418的處理。更具體而言,將設(shè)定了層級(jí)結(jié)構(gòu)329的二次模塊32寫(xiě)入(更新)至存儲(chǔ)裝置30'。另一方面,當(dāng)存在未處理的層級(jí)模式329p的情況下(S414中“否”的情況下),獲取其次要處理的層級(jí)模式329p。
[0147]如根據(jù)以上的說(shuō)明可理解的那樣,基于本實(shí)施方式的解析單元27'與基于第I實(shí)施方式的解析單元27同樣地,能夠比較兩個(gè)對(duì)象范圍的類似性。進(jìn)而,根據(jù)本實(shí)施方式,在對(duì)象模塊32中按照處理順序來(lái)連結(jié)關(guān)聯(lián)的多個(gè)模塊31。因此,能夠以更易于調(diào)查的形式一并檢測(cè)系統(tǒng)整體中的類似的對(duì)象范圍。
[0148]如根據(jù)圖18可理解的那樣,基于本實(shí)施方式的流程圖創(chuàng)建單元25具有讀入功能(S1800、S1802)、流程圖創(chuàng)建功能(S1804、S1805)、和寫(xiě)入功能(S1806)。
[0149]更具體而言,如圖18所示,如果流程圖創(chuàng)建單元25例如與變換單元21同樣地被啟動(dòng),則獲取用于確定處理對(duì)象的二次模塊32的二次模塊名(S1800)。流程圖創(chuàng)建單元25從存儲(chǔ)裝置30'讀入由獲取到的二次模塊名而確定的處理對(duì)象的二次模塊32 (S1802)。當(dāng)處理對(duì)象的二次模塊32未存儲(chǔ)在存儲(chǔ)裝置30'中的情況下,流程圖創(chuàng)建單元25結(jié)束處理(未圖示)。
[0150]其次,流程圖創(chuàng)建單元25創(chuàng)建將與二次條件式的成立與否分別對(duì)應(yīng)的二次語(yǔ)句327排列在表的左右的表格式的流程圖33(S1804)。更具體而言,針對(duì)二次模塊32的二次語(yǔ)句327之中由層級(jí)識(shí)別323表示的層級(jí)相同的二次語(yǔ)句327,創(chuàng)建將在二次條件式成立了的情況下被執(zhí)行的二次語(yǔ)句327和在二次條件式不成立的情況下被執(zhí)行的二次語(yǔ)句327分別排列在表的左右的流程圖33。此時(shí),對(duì)于流程圖33按照與二次語(yǔ)句327對(duì)應(yīng)的方式設(shè)定行編號(hào)322?;诒緦?shí)施方式的流程圖創(chuàng)建單元25,當(dāng)層級(jí)識(shí)別323的分支的深度相同、且分支層級(jí)之中除了末尾的I位(”1”或者”2”)之外的部分相同的情況下,判定為由層級(jí)識(shí)別323表示的層級(jí)相同。
[0151]其次,流程圖創(chuàng)建單元25對(duì)流程圖中的相互類似的地方(對(duì)象范圍)進(jìn)行標(biāo)識(shí)(S1805)。更具體而言,如圖19所例示的那樣,對(duì)于二次模塊32的行320之中類似有無(wú)329f設(shè)定了“有類似”的地方(對(duì)象范圍)用框來(lái)包圍,進(jìn)行“模式nn”(nn例如為序列號(hào))等的顯示。序列號(hào)(nn)只要例如從流程圖的排頭起依次被賦予即可。
[0152]其次,流程圖創(chuàng)建單元25將流程圖33寫(xiě)入至存儲(chǔ)單元30' (S1806),結(jié)束處理。
[0153]如根據(jù)圖19可理解的那樣,通過(guò)在視覺(jué)上明示相互類似的地方(對(duì)象范圍),從而例如能夠發(fā)現(xiàn)維護(hù)的遺漏。例如,在相互類似的對(duì)象范圍的一方被變更而另一方未被變更的情況下,能夠注意到需要對(duì)另一方的變更。
[0154]流程圖創(chuàng)建單元25也可以具備解析單元27'的解析功能、寫(xiě)入功能以及顯示功能。換言之,流程圖創(chuàng)建單元25也可以是解析單元。
[0155](第3實(shí)施方式)
[0156]如圖20所示,基于本發(fā)明的第3實(shí)施方式的結(jié)構(gòu)解析裝置10"具備:裝置主體20"、存儲(chǔ)裝置(存儲(chǔ)單元)30"、輸入裝置40、以及顯示裝置50?;诒緦?shí)施方式的存儲(chǔ)裝置30"為裝置主體20"的主存儲(chǔ)裝置。裝置主體20"與基于第2實(shí)施方式的裝置主體20'同樣地具備:變換單元21、加工單元22、解析單元27'、以及流程圖創(chuàng)建單元25。
[0157]結(jié)構(gòu)解析裝置10"經(jīng)由通信線路80而與文件服務(wù)器60可通信地連接。通信線路80例如既可以為L(zhǎng)AN (Local Area Network ;局域網(wǎng)),也可以為互聯(lián)網(wǎng)。文件服務(wù)器60具備存儲(chǔ)裝置(存儲(chǔ)單元)70。存儲(chǔ)裝置70能夠存儲(chǔ)模塊31、二次模塊32、以及流程圖33。因此,結(jié)構(gòu)解析裝置10"能夠從存儲(chǔ)裝置70寫(xiě)入模塊31等,并將模塊31等寫(xiě)入至存儲(chǔ)裝置70。
[0158]為了容易理解,根據(jù)本實(shí)施方式,與第I以及第2實(shí)施方式同樣地,能夠發(fā)現(xiàn)在模塊31中類似的地方。進(jìn)而,能夠由多個(gè)結(jié)構(gòu)解析裝置10"來(lái)共享所發(fā)現(xiàn)的類似地方。
[0159]本發(fā)明基于在2012年4月9日向日本專利局提出的日本專利申請(qǐng)第2012-088098號(hào),其內(nèi)容通過(guò)參照而構(gòu)成了本說(shuō)明書(shū)的一部分。
[0160]雖然關(guān)于本發(fā)明的最優(yōu)的實(shí)施方式進(jìn)行了說(shuō)明,但是如本領(lǐng)域的技術(shù)人員可明確的那樣,在不脫離本發(fā)明的精神的范圍內(nèi)可使實(shí)施方式變形,這樣的實(shí)施方式屬于本發(fā)明的范圍。
[0161]標(biāo)號(hào)說(shuō)明
[0162]10,10/、10"結(jié)構(gòu)解析裝置
[0163]20、20'、20"裝置主體
[0164]21變換單元
[0165]22加工單元
[0166]25流程圖創(chuàng)建單元
[0167]27、27'解析單元
[0168]30,30' ,30"存儲(chǔ)裝置(存儲(chǔ)單元)
[0169]31模塊(源程序)
[0170]310行
[0171]311連續(xù)編號(hào)(行識(shí)別)
[0172]312語(yǔ)句
[0173]32次模塊(模塊)
[0174]320次行(行)
[0175]321模塊識(shí)別
[0176]322行編號(hào)
[0177]323層級(jí)識(shí)別
[0178]324命令識(shí)別
[0179]326連續(xù)編號(hào)(行識(shí)別)
[0180]327次語(yǔ)句
[0181]329層級(jí)結(jié)構(gòu)
[0182]329p層級(jí)模式
[0183]329r類似通知信息
[0184]329f類似有無(wú)
[0185]33流程圖
[0186]36層級(jí)結(jié)構(gòu)數(shù)據(jù)
[0187]360行
[0188]361連續(xù)編號(hào)(行識(shí)別)
[0189]362層級(jí)模式
[0190]363結(jié)束行(連續(xù)編號(hào))
[0191]364類似通知信息
[0192]364η類似行(連續(xù)編號(hào))
[0193]40輸入裝置
[0194]50顯示裝置
[0195]60文件服務(wù)器
[0196]70存儲(chǔ)裝置(存儲(chǔ)單元)
[0197]80通信線路
【權(quán)利要求】
1.一種結(jié)構(gòu)解析裝置,進(jìn)行由通過(guò)程序語(yǔ)言描述的I個(gè)以上的語(yǔ)句構(gòu)成的模塊的結(jié)構(gòu)解析, 在所述模塊中能夠描述作為所述語(yǔ)句之一的條件語(yǔ)句,所述條件語(yǔ)句包含成立時(shí)執(zhí)行語(yǔ)句以及/或者不成立時(shí)執(zhí)行語(yǔ)句,所述成立時(shí)執(zhí)行語(yǔ)句是在所述條件語(yǔ)句的條件式成立的情況下被執(zhí)行的所述語(yǔ)句,所述不成立時(shí)執(zhí)行語(yǔ)句是在所述條件式不成立的情況下被執(zhí)行的所述語(yǔ)句,所述條件語(yǔ)句之中的至少一個(gè)還能夠包含所述條件語(yǔ)句作為所述成立時(shí)執(zhí)行語(yǔ)句以及/或者所述不成立時(shí)執(zhí)行語(yǔ)句,由此能夠進(jìn)行基于所述條件語(yǔ)句的所述語(yǔ)句的層級(jí)化,關(guān)于所述模塊中的由連續(xù)的所述語(yǔ)句構(gòu)成的多個(gè)對(duì)象范圍,能夠分別確定基于所述層級(jí)化的層級(jí)結(jié)構(gòu), 所述結(jié)構(gòu)解析裝置具備存儲(chǔ)單元和解析單元, 在所述存儲(chǔ)單元中存儲(chǔ)有I個(gè)以上的所述模塊, 所述解析單元構(gòu)成為進(jìn)行所述存儲(chǔ)單元所存儲(chǔ)的所述模塊之中的給定的對(duì)象模塊的結(jié)構(gòu)解析,所述解析單元具有獲取功能和解析功能,所述獲取功能是從所述存儲(chǔ)單元獲取所述對(duì)象模塊的功能,所述解析功能是在第I對(duì)象范圍的所述層級(jí)結(jié)構(gòu)和第2對(duì)象范圍的所述層級(jí)結(jié)構(gòu)相同的情況下與所述第I對(duì)象范圍以及/或者所述第2對(duì)象范圍建立關(guān)聯(lián)來(lái)創(chuàng)建類似通知信息的功能,所述第I對(duì)象范圍以及所述第2對(duì)象范圍是獲取到的所述對(duì)象模塊的所述對(duì)象范圍之中相互不同的所述對(duì)象范圍,所述類似通知信息表示在所述對(duì)象模塊內(nèi)存在相互類似的所述對(duì)象范圍。
2.根據(jù)權(quán)利要求1所述的結(jié)構(gòu)解析裝置,其中, 在所述對(duì)象范圍中包含至少一個(gè)所述條件語(yǔ)句,在所述對(duì)象范圍中包含所述對(duì)象范圍所含的所述條件語(yǔ)句的各自的開(kāi)始至結(jié)束的整體。
3.根據(jù)權(quán)利要求1或2所述的結(jié)構(gòu)解析裝置,其中, 所述對(duì)象范圍的所述層級(jí)結(jié)構(gòu)能夠通過(guò)連結(jié)了所述對(duì)象范圍所含的層級(jí)等級(jí)的層級(jí)模式來(lái)識(shí)別,所述層級(jí)等級(jí)表示以所述對(duì)象范圍的排頭的所述語(yǔ)句作為基準(zhǔn)而被確定的層級(jí)的深度。
4.根據(jù)權(quán)利要求3所述的結(jié)構(gòu)解析裝置,其中, 所述解析單元在所述解析功能中,當(dāng)所述第I對(duì)象范圍的所述層級(jí)模式和所述第2對(duì)象范圍的所述層級(jí)模式相同的情況下,判定為所述第I對(duì)象范圍的所述層級(jí)結(jié)構(gòu)和所述第2對(duì)象范圍的所述層級(jí)結(jié)構(gòu)相同。
5.根據(jù)權(quán)利要求3或4所述的結(jié)構(gòu)解析裝置,其中, 所述解析單元在所述解析功能中按照被連結(jié)成所述層級(jí)模式的所述層級(jí)等級(jí)的數(shù)目的降序?qū)⒍鄠€(gè)所述對(duì)象范圍作為所述第I對(duì)象范圍來(lái)使用。
6.根據(jù)權(quán)利要求5所述的結(jié)構(gòu)解析裝置,其中, 所述解析單元在所述解析功能中將滿足給定的條件的所述對(duì)象范圍不作為所述第I對(duì)象范圍來(lái)使用。
7.根據(jù)權(quán)利要求6所述的結(jié)構(gòu)解析裝置,其中, 所述給定的條件是將所述對(duì)象范圍的被連結(jié)成所述層級(jí)模式的所述層級(jí)等級(jí)的數(shù)目設(shè)為基準(zhǔn)的條件。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的結(jié)構(gòu)解析裝置,其中, 所述對(duì)象模塊連結(jié)了多個(gè)所述模塊。
9.根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的結(jié)構(gòu)解析裝置,其中, 所述解析單元還具有寫(xiě)入功能,所述寫(xiě)入功能是將所述對(duì)象模塊和所述類似通知信息建立關(guān)聯(lián)地存儲(chǔ)至所述存儲(chǔ)單元的功能。
10.根據(jù)權(quán)利要求1至9中任一項(xiàng)所述的結(jié)構(gòu)解析裝置,其中, 所述結(jié)構(gòu)解析裝置還具備顯示裝置, 所述解析單元還具有顯示功能,所述顯示功能是將所述對(duì)象模塊和所述類似通知信息建立關(guān)聯(lián)地顯示至所述顯示裝置的功能。
11.一種程序,使計(jì)算機(jī)作為權(quán)利要求1至10中任一項(xiàng)所述的結(jié)構(gòu)解析裝置而發(fā)揮功倉(cāng)泛。
【文檔編號(hào)】G06F9/44GK104169875SQ201380015262
【公開(kāi)日】2014年11月26日 申請(qǐng)日期:2013年4月5日 優(yōu)先權(quán)日:2012年4月9日
【發(fā)明者】石田伸一 申請(qǐng)人:松崎務(wù), I系統(tǒng)株式會(huì)社, 石田伸一