"対象プログラムのソースコードをLyee空間に展開するに当たり、GS/TC表を用いて,電算機でプログラム構文を単元化して単元文とし,其のIDと共に電算機でLYEE空間に展開するステップ1と、電算機で単元文に属す変数を本発明による主語,名詞,定置名詞に仕分し,其の仕分けされた様相,並びに定数を定値として電算機でLYEE空間に展開するステップ2と、電算機でプログラム構文の行番情報TS並びにGS/TC表を基にLYEE空間の単元文にTC座標を付与規則を基に電算機でLYEE空間に展開するステップ3とを具備することを特徴とするコンピュータプログラムの実行障害の解法を得る方法。前記付与規則は4種のTC座標付与規則として、TCX付与規則,TCY付与規則,条件文のTCZ付与規則,制御文のTCZ付与規則を具備することを特徴とする請求項2記載のコンピュータプログラムの実行障害の解法を得る方法。電算機で単元文に順位を付与し其れをLYEE空間又は其の補助空間に電算機で展開するステップ4と、主語,名詞,定置名詞,定値に前記TC座標から派生する超言語座標主語座標,名詞座標をTC座標付与規則を基に電算機で生成しLYEE空間に展開するステップ5とをさらに具備することを特徴とする請求項1又は2記載のコンピュータプログラムの実行障害の解法を得る方法。前記TC座標付与規則は、主語に主語座標を付与する規則,名詞に名詞座標を付与する規則,標識名に主語座標,名詞座標を付与する規則,定値に名詞座標を付与する規則,定置名詞に名詞座標を付与する規則,主語に属す名詞に正当な主語座標を付与する規則,主語に属さない名詞に正当な主語座標を付与する規則を具備することを特徴とする請求項3記載のコンピュータプログラムの実行障害の解法を得る方法。電算機で被呼応文と記す条件文が真のとき,其れに呼応する呼応文とされる単元文のTC座標をLYEE空間に探索し,其れをLYEE空間の被呼応文に付与するステップ6と、電算機で被呼応文と記す条件文が偽のとき,其れに呼応する呼応文とされる単元文のTC座標をLYEE空間に探索し,其れをLYEE空間の被呼応文に付与するステップ7と、電算機で被連動文とされる単元文に連動する単元文のTC座標をLYEE空間に探索し,其れをLYEE空間の被連動文に付与するステップ8と、電算機でLYEE空間を用いて単元文にTC座標並びに超言語座標を付与し、其の単元文SSをLYEE空間に展開するステップ9とをさらに具備することを特徴とする請求項3又は4記載のコンピュータプログラムの実行障害の解法を得る方法。電算機でLYEE空間の前記SSを一般表記GS化してLYEE空間に展開するステップ10をさらに具備することを特徴とする請求項5記載のコンピュータプログラムの実行障害の解法を得る方法。電算機で主語に直接係わる名詞,定置名詞,定値,並びに名詞を有しない単元文を集約し,其れをLYEE空間に文脈式又は文脈として電算機でLYEE空間に展開するステップ11をさらに具備することを特徴とする請求項6記載のコンピュータプログラムの実行障害の解法を得る方法。請求項7記載の方法により、前記主語と集約された情報である文脈,又は文脈式主語の場合には特に文脈主語を獲得し、電算機で全文脈を内包化して主語系譜を生成するステップ12をさらに具備することを特徴とする請求項7記載のコンピュータプログラムの実行障害の解法を得る方法。電算機で前記主語系譜を観測し前記文脈主語を評価するステップ13をさらに具備することを特徴とする請求項7記載のコンピュータプログラムの実行障害の解法を得る方法。対象プログラムのソースコードをLyee空間に展開するに当たり、ソースコードに関係する各データ項目について、当該データ項目に対応する値を生成するに与る生成元データ項目及びその座標、当該データ項目が生成されるにあたっての条件及びその座標並びに当該条件を形作るデータ項目及びその座標、当該データ項目の生成の前に処理される単元文の座標を含む当該データ項目に対応する値の生成の由来情報を取得し、前記ソースコードのそれぞれの行について、当該行の次に処理する座標を取得することを特徴とするコンピュータプログラムの実行障害の解法を得る方法。対象プログラムのソースコードをLyee空間に展開するに当たり、対象のプログラムのソースコードを各データ項目の由来情報と次処理座標を設置する第1のステップと、前記Lyee空間において前記ソースコードの各行に係る各個別項目の属性を生成し或いは/及び設置する第2のステップとを具備することを特徴とするコンピュータプログラムの実行障害の解法を得る方法。対象のプログラムのソースコードを各データ項目の由来情報と次処理座標を設置する第1のステップと、前記Lyee空間において前記ソースコードの各行に係る各個別項目の属性を生成し或いは/及び設置する第2のステップと、前記Lyee空間に展開されている各単元文に係る情報から、単元文に座標が付与されたものであるSSと、該各単元文に係る各データ項目の欄の各項目を対応する一般名称に変換するとともに当該各データ項目の座標を一般形で表示したGSとを規定する第3のステップと、前記Lyee空間に展開されたデータの主語欄から主語を抽出し、該抽出された主語について、それを主語とするSSから名詞、定値、定置名詞を抽出し、条件文の真偽呼応欄から当該主語の座標のTCXがあればこれをもって呼応情報を記載し、該条件文の名詞、定値、定置名詞を座標と共に抽出し、該当すれば被連動文の連動欄から連動情報を記載することで文脈及び文脈式情報を生成する第4のステップと、超言語空間MLSに成立する主語系譜の生成規則を用いて、前記生成された文脈から主語系譜を生成する第5のステップとを具備することを特徴とするコンピュータプログラムの実行障害の解法を得る方法。前記第1のステップは、前記ソースコードの構文座標TSを前記Lyee空間に設置するステップと、前記ソースコードの構文を前記Lyee空間に設置するステップと、構文ID抽出規則を用いて、構文IDを設置するステップと、単元化規則を用いて、前記構文IDに適合する単元文とその属性情報を取得して前記Lyee空間に設置するステップと、前記設置された単元文から、演算子、変数データ項目、単元文を定義する指標である名詞指標、使用する或いは遷移先である単元文を示す指標である主語指標、単元文であるが領域を持たない名詞である定置名詞、単元文に属し領域を持たない値である定値、主語、のうちの該当する情報を抽出して前記Lyee空間に設置するステップと、条件文について、夫々の探索規則を用いてZ1始文及び終文を探索し、Z2始文及び終文を探索し、Z3及びZ4文を探索することで、Z1始文座標、Z1終文座標、Z2始文座標、Z2終文座標、Z3文座標、Z4文座標を取得して前記Lyee空間に設置するステップと、制御文について、制御文Z1探索規則を用いてZ1を取得して前記Lyee空間に設置するステップと、主語の主語座標付与規則を用いて、主語に主語座標を付与するステップと、主語及び名詞の名詞座標付与規則を用いて、主語及び名詞に名詞座標を付与するステップと、主語が属す単元文の名詞の正統な主語座標の探索とその付与規則を用いて、主語を有する単元文に属す名詞を実体化するすべての単元文から当該主語を有する単元文に辿れるか否かを軌跡文追跡規則を用いて確認して正統な主語座標か否かを判断するステップと、主語が属さない単元文の名詞の正統な主語座標の探索とその付与規則を用いて、主語を有しない単元文に属す名詞を実体化するすべての単元文から当該主語を有する単元文に辿れるか否かを確認して正統な主語座標か否かを判断するステップと、標識名の座標付与規則を用いて、主語指標及び名詞指標に座標を付与するステップと、定置名詞の名詞座標付与規則及び定値の名詞座標付与規則を用いて、定置名詞、定値、データ項目名を登録する領域名、各座標を付与するステップと、Z1呼応文探索規則、Z2呼応文探索規則及び軌跡文追跡規則を用いて、条件文に真及び偽の呼応文の座標を付与するステップと、連動文探索規則及び軌跡文追跡規則を用いて、主語及び名詞を共に持たない単元文に連動文の座標を付与するステップとを具備することを特徴とする請求項11もしくは12記載のコンピュータプログラムの実行障害の解法を得る方法。前記構文ID抽出規則は、構文を抽出し、該抽出された構文から変数名と演算子を除いた予約語列として構文IDを付与する、ということを構文座標の最初から最後まで行うアルゴリズムであることを特徴とする請求項13記載のコンピュータプログラムの実行障害の解法を得る方法。前記単元化規則は、前記設置された構文IDを取得し、該取得された構文IDと予め作成されたGS/TC表単元文属性と次処理座標表とを対照し、該構文IDに関連する単元文属性情報構文ID、単元文、単元文から変数名及び演算子を除いた予約語列である単元文ID、単元文の文種情報、主語種別情報、YZ区別情報次に処理する文が直後文であるか否かを示す情報、単元文の型情報、構文座標及び予約語を用いた一般的表示のTCX単元文に分割された後、構文座標との関係で表された当該単元文の座標、TCY次処理の座標、Z1条件文の場合であって真のときに処理する座標または制御文の指示する座標、Z2条件文の場合であって偽のときに処理する座標、Z3条件文の場合であって条件文の終了文の座標、Z4条件文の場合であってZ3の次に処理する座標、を含む情報を前記GS/TC表から取得してそれらを基に、TCX規則、TCY規則、TCZ規則を用いて直値化してLyee空間に設置する、ということを構文座標の最初から最後まで行うアルゴリズムであることを特徴とする請求項13記載のコンピュータプログラムの実行障害の解法を得る方法。前記第1乃至第5のステップで得られた情報を用いて、個々のデータ項目についての由来情報がすべて存在するか否かを確認することでデータ項目の正統性を診断することを特徴とする請求項12記載のコンピュータプログラムの実行障害の解法を得る方法。前記第1乃至第5のステップで得られた情報を用いて、データ項目についてその文脈が生成不能で、かつ、当該データ項目がインプットデータ項目でないことを確認することで浮島主語であるか否かを診断することを特徴とする請求項12記載のコンピュータプログラムの実行障害の解法を得る方法。前記第1乃至第5のステップで得られた情報を用いて、前記軌跡文追跡規則を適用して、個々の全単元文を出発文として、すべて終局文に到達するかを確認して該到達しない出発単元文を発見することで、データ項目の妥当性を診断することを特徴とする請求項11記載のコンピュータプログラムの実行障害の解法を得る方法。前記第1乃至第5のステップで得られた情報を用いて、L4型回帰診断規則及びL3型回帰診断規則を適用して、ある単元文について、当該単元文に含まれる名詞のデータ項目が生成される座標のTCXが当該単元文のTCXより大きいか等しい場合を発見することで、データ項目の回帰を診断することを特徴とする請求項11記載のコンピュータプログラムの実行障害の解法を得る方法。請求項12記載の前記第1乃至第5のステップで得られた情報を用いて、文脈主語において、主語の名称と内容が同一の文脈で文脈主語の座標のみが異なる文脈主語である重複主語、文脈主語において、主語の名称が同一であるが、その条件文の内容と文脈主語の座標とが異なる文脈主語である多重主語、文脈主語において、その条件文に含まれる名詞の数が相対的に多い文脈主語である拡散主語、文脈主語において、その主語が他の文脈の条件文にも使われる場合が多い文脈主語である集約主語、文脈主語において、その条件文に含まれる名詞の数が最大である文脈主語である核主語の少なくとも一つを発見することを特徴とするプログラムの洗練性を診断する方法。請求項12記載の前記第1乃至第5のステップで得られた情報をもとに、前記プログラムに係る要件が変更されたことに伴って変更される文脈主語を特定し、前記特定された文脈主語について変更を行った後に、当該変更の波及範囲として、前記変更された文脈の子孫文脈当該文脈主語を名詞としてそれに内包される文脈と、同様に以降連鎖して内包される文脈について、変更が初めて必要でなくなる文脈に使用される名詞を文脈主語とする文脈を変更の波及する限界の文脈と特定することを特徴とするプログラムの要件変更の波及範囲を診断する方法。任意の目的データ項目に関わるすべてのインプットデータ項目に始まり当該目的データ項目に至る過程のすべてのデータ項目とそれらの生成の順序を特定することで、データ項目間のあるべき内包関係及びその順序の診断を行い、および/もしくは、前記主語系譜において文脈主語を特定し、該特定された文脈主語の名詞を参照し、該参照された名詞を主語とする文脈を前記主語系譜から探索することを、特定の条件文を被呼応文として持つ文脈にたどり着くまで繰り返すことを特徴とする要件とプログラムとの調和性及び要件の妥当性を診断する方法。既存であって変換対象のプログラムのソースコードをLyee空間に展開する第1のステップと、前記Lyee空間において前記ソースコードの各行に係る各個別項目を生成し或いは/及び設置する第2のステップと、前記第1及び第2のステップで得られた前記Lyee空間情報をもとに、予め作成された保守用のGS/TC表並びに言語変換用のGS/TC表を用いて新Lyee空間を展開する第3のステップと、前記第3のステップで得られた新Lyee空間から、新プログラム規則に則って展開することで新たにソースコードを得る第4のステップとを具備することを特徴とするコンピュータプログラムの変換方法。対象プログラムのソースコードをLyee空間に展開するに当たり、ソースコードに関係する各データ項目について、当該データ項目に対応する値を生成するに与る生成元データ項目及びその座標、当該データ項目が生成されるにあたっての条件及びその座標並びに当該条件を形作るデータ項目及びその座標、当該データ項目の生成の前に処理される単元文の座標を含む当該データ項目に対応する値の生成の由来情報を取得する手段と、前記ソースコードのそれぞれの行について、当該行の次に処理する座標を取得する手段とを具備することを特徴とするコンピュータプログラムの実行障害の解法獲得装置。対象プログラムのソースコードをLyee空間に展開するに当たり、対象のプログラムのソースコードを各データ項目の由来情報と次処理座標を設置するための第一の手段と、前記Lyee空間において前記ソースコードの各行に係る各個別項目の属性を生成し或いは/及び設置するための第二の手段とを具備することを特徴とするコンピュータプログラムの実行障害の解法獲得装置。1要件に係るプログラム実行障害の原因,仕組の発見方法本発明の為の研究によれば,要件に係るプログラムの実行障害はプログラムが実行時可能的に成立させる不完全な意味が原因となり発症する。其の不完全な意味は実行時に成立するプログラムに属す変数間の脈絡の要件的不具合により発症する。しかし,プログラムに属す全変数間の脈絡を捉える事は技術的に容易ではなく,これ迄実現されていない。故に其の不具合を人が発見する事は出来ていない。主語系譜は全変数間の脈絡を全文脈主語の脈絡として捉える。主語系譜生成の過程でソ-スプログラムが本発明の解法規則で電算機的に構文は単元化され単元文として定義し直される。変数は主語,名詞,定置名詞,定数は定値として仕分けされる。単元文にはTC座標,仕分けされる変数,定値にはTC座標に基づく超言語座標が付与される。文脈主語とは其の主語の事である。本方法では主語系譜では起点主語,終点主語と記す文脈主語を端点,終点とする文脈主語の成立順序列が起点主語の個数分捉えられている。其の順序列に要件的な不条理,即ち,成立順序を乱す文脈主語の介在,文脈主語の欠落があれば其の文脈主語が其のプログラムに不完全な意味を発症させる起因として位置付けられる。そして,其の成立順序列が其の不完全な意味を発症させる仕組として位置付けられる。其の様子は要件の観点に基づき人的に其の順序列を探索し,もし,起因となる様相があれば,其れを発見する事が出来る。起因と其の仕組が解れば,其のプログラムのソ-ス,或いは要件を修正,改善する事が出来る。其の事により,事前に実行障害は回避する事が出来る。実行障害は起因となる文脈主語である変数が属す構文により現象化される。2プログラム要件の調和性評価の方法全要件が構成するプログラムに対応して調和的に分割されているや否やの問題はプログラムシステムの脆弱性を防止する上で解決されなければならない必然の措置である。プログラムの脆弱性が高ければ,其のプログラムシステムの開発,保守作業の能率は必ず劣化する。故にこの問題は見えないプログラムの敵である。単に要件を其の知見で機能的に分割するだけではプログラムシステムの脆弱性問題は回避する事が出来ない。この問題は,十分に認識されてはいないが,健全なプログラムシステムを構築する為には克服されるべきプログラム課題のひとつである。本方法は電算機で主語系譜に属す文脈主語の存在の仕方を冗長度,複雑度さの測度で測定する。其の情報を用いれば,人がプログラム要件の調和の度合を其の測度で判断する事が出来る。測度が高ければ,其のプログラムの要件は調和性に欠ける。プログラム要件並びに要件分割方法は改善される事が好ましい。3プログラムに属す実行停止命令の有意性を検証する方法LYEE空間のTC座標を用いれば,プログラムソ-スの単元文を電算機で辿る事が出来る。本方法は其れを電算機で実行させる。そして,其の実行により,其のプログラムに属す停止命令に到達出来るや否やを判定させる事が出来る。停止命令に到達すれば,其のプログラムの停止命令は有意である。到達出来なければ有意ではない。停止命令が有意でないプログラムを実際に電算機で実行しても其のプログラムは無意味である。其のプログラムは改善修正されなければならない。4生成値の意味を曖昧にする仕組の検出方法関数文に属す変数を実体化する単元文が其のプログラムで正常に配置されていれば,其の関数文の生成値の意味は曖昧にはならない。もしそうでなければ,其の関数文の生成値には二つの意味が成立し,其の意味を曖昧にさせる。本発明では其れを発症させる仕組はL4型回帰と記される。正常に配置されるとは関数文に属す変数を実体化する単元文は実行順序上其の関数文の過去側に位置する行に置かれている事である。L4型回帰は関数文に属す変数を実体化する単元文が実行順序上其の関数文の未来側に位置する行に置かれる事である。本方法はこの関係をLYEE空間を用いて電算機で検出する。其の情報の妥当性は要件とプログラム双方の観点から人的に判定する事が出来る。もし,妥当性が成立していなければ,其のプログラムは改善修正されなければならない。本方法は実行障害を事前に防止する方法のひとつである。5生成値の意味を破壊する原因の検出方法条件文に属す変数を実体化する単元文が其のプログラムで正常に配置されていれば,其の条件文の基で成立する全ての関数文の生成値の意味は正常である。もしそうでなければ,其の全ての関数文の生成値には想定外の意味が生じる。本発明では其れを発症させる仕組はL3型回帰と記される。正常に配置されるとは、条件文に属す変数を実体化する単元文は実行順序上其の条件文の過去側に位置する行に置かれる事である。L3型回帰は条件文に属す変数を実体化する単元文が実行順序上其の条件文の未来側に位置する行に置かれる場合に発症する。本方法はこの関係をLYEE空間を用いて電算機で検出する。其の情報の妥当性は要件とプログラム双方の観点から人的に判定しなければならない。もし,妥当性が成立していなければ,其のプログラムは改善修正されなければならない。本方法は実行障害を事前に防止する方法のひとつである。6プログラム作成作業を自動化させるTOOL本発明の概念,GS/TC表,LYEE空間,主語系譜でプログラム作成作業を自動化するTOOLを構築する事が出来る。GS/TC表を用いLYEE空間,主語系譜を応用する事によりプログラミング作業を自動化するTOOLの方法論を実現する事が出来る。本発明の特徴プログラムの構文は単元化され,変数は主語,名詞,定置名詞に仕分けされる。そして,単元化された構文,構文に属す定値,そして,仕分けされた変数の全てに本発明による座標が付与される。其の情報は本発明による解法規則によりプログラムソ-スから電算機でLYEE空間として生成される。プログラムに属す全変数の脈絡関係はLYEE空間の仕組を基に成立する本発明の解法規則により電算機で生成される。以上が本発明の特徴である。かかる課題を解決するために、本願発明は、以下のようなステップを具備する。0008:LYEE空間生成のステップ1:本発明のGS/TC表を用いて,電算機でプログラム構文を単元化して単元文とし,其のIDと共に電算機でLYEE空間に展開するステップ。2:電算機で単元文に属す変数を本発明による主語,名詞,定置名詞に仕分し,其の仕分けされた様相,並びに定数を定値として電算機でLYEE空間に展開するステップ。3:電算機でプログラム構文の行番情報TS並びにGS/TC表を基にLYEE空間の単元文に本発明のTC座標を本発明の付与規則を基に電算機でLYEE空間に展開するステップ本ステップに関する4種のTC座標付与規則を以下に示す。TCX付与規則,TCY付与規則,条件文のTCZ付与規則,制御文のTCZ付与規則4:電算機で単元文に順位を付与し其れをLYEE空間又は其の補助空間に電算機で展開するステップ,5:主語,名詞,定置名詞,定値に本発明のTC座標から派生する本発明の超言語座標主語座標,名詞座標を本発明の以下の規則を基に電算機で生成しLYEE空間に展開するステップ本ステップに関する7種のTC座標付与規則を以下に示す。主語に主語座標を付与する規則,名詞に名詞座標を付与する規則,標識名に主語座標,名詞座標を付与する規則,定値に名詞座標を付与する規則,定置名詞に名詞座標を付与する規則,主語に属す名詞に正当な主語座標を付与する規則,主語に属さない名詞に正当な主語座標を付与する規則6:電算機で本発明が被呼応文と記す条件文が真の時,其れに呼応する本発明が呼応文と記す単元文のTC座標をLYEE空間に探索し,其れをLYEE空間の被呼応文に付与するステップ7:電算機で本発明による被呼応文と記す条件文が偽の時,其れに呼応する本発明が呼応文と記す単元文のTC座標をLYEE空間に探索し,其れをLYEE空間の被呼応文に付与するステップ8:電算機で本発明が被連動文と記す単元文に連動する単元文のTC座標をLYEE空間に探索し,其れをLYEE空間の被連動文に付与するステップ9:電算機でLYEE空間を用いて単元文にTC座標並びに超言語座標を付与する。其の単元文をLYEE空間に展開するステップ本発明では其の単元文をSSと記す。10:電算機でLYEE空間のSSを一般表記化してLYEE空間に展開するステップ本発明では其れをGSと記す。11:電算機で主語に直接係わる名詞,定置名詞,定値,並びに名詞を有しない単元文を集約し,其れをLYEE空間に文脈式又は文脈として電算機でLYEE空間に展開するステップ本発明では主語と集約された情報を文脈,又は文脈式と記す。そして,其の場合,主語を特に文脈主語と記す。12:電算機で全文脈を内包化して主語系譜を生成するステップ13:電算機で主語系譜を観測し文脈主語を評価するステップさらに、本願では、上記の課題を解決するために、請求項10記載の本願発明は、対象プログラムのソースコードをLyee空間に展開するに当たり、ソースコードに関係する各データ項目について、当該データ項目に対応する値を生成するに与る生成元データ項目及びその座標、当該データ項目が生成されるにあたっての条件及びその座標並びに当該条件を形作るデータ項目及びその座標、当該データ項目の生成の前に処理される単元文の座標を含む当該データ項目に対応する値の生成の由来情報を取得し、前記ソースコードのそれぞれの行について、当該行の次に処理する座標を取得することを特徴とする。請求項11記載の本願発明は、対象プログラムのソースコードをLyee空間に展開するに当たり、対象のプログラムのソースコードを各データ項目の由来情報と次処理座標を設置する第1のステップと、前記Lyee空間において前記ソースコードの各行に係る各個別項目の属性を生成し或いは/及び設置する第2のステップとを具備する。請求項12記載の本願発明は、対象のプログラムのソースコードを各データ項目の由来情報と次処理座標を設置する第1のステップと、前記Lyee空間において前記ソースコードの各行に係る各個別項目の属性を生成し或いは/及び設置する第2のステップと、前記Lyee空間に展開されている各単元文に係る情報から、単元文に座標が付与されたものであるSSと、該各単元文に係る各データ項目の欄の各項目を対応する一般名称に変換するとともに当該各データ項目の座標を一般形で表示したGSとを規定する第3のステップと、前記Lyee空間に展開されたデータの主語欄から主語を抽出し、該抽出された主語について、それを主語とするSSから名詞、定値、定置名詞を抽出し、条件文の真偽呼応欄から当該主語の座標のTCXがあればこれをもって呼応情報を記載し、該条件文の名詞、定値、定置名詞を座標と共に抽出し、該当すれば被連動文の連動欄から連動情報を記載することで文脈及び文脈式情報を生成する第4のステップと、超言語空間MLSに成立する主語系譜の生成規則を用いて、前記生成された文脈から主語系譜を生成する第5のステップとを具備する。上記において、請求項13のように、前記第1のステップは、前記ソースコードの構文座標TSを前記Lyee空間に設置するステップと、前記ソースコードの構文を前記Lyee空間に設置するステップと、構文ID抽出規則を用いて、構文IDを設置するステップと、単元化規則を用いて、前記構文IDに適合する単元文とその属性情報を取得して前記Lyee空間に設置するステップと、前記設置された単元文から、演算子、変数データ項目、単元文を定義する指標である名詞指標、使用する或いは遷移先である単元文を示す指標である主語指標、単元文であるが領域を持たない名詞である定置名詞、単元文に属し領域を持たない値である定値、主語、のうちの該当する情報を抽出して前記Lyee空間に設置するステップと、条件文について、夫々の探索規則を用いてZ1始文及び終文を探索し、Z2始文及び終文を探索し、Z3及びZ4文を探索することで、Z1始文座標、Z1終文座標、Z2始文座標、Z2終文座標、Z3文座標、Z4文座標を取得して前記Lyee空間に設置するステップと、制御文について、制御文Z1探索規則を用いてZ1を取得して前記Lyee空間に設置するステップと、主語の主語座標付与規則を用いて、主語に主語座標を付与するステップと、主語及び名詞の名詞座標付与規則を用いて、主語及び名詞に名詞座標を付与するステップと、主語が属す単元文の名詞の正統な主語座標の探索とその付与規則を用いて、主語を有する単元文に属す名詞を実体化するすべての単元文から当該主語を有する単元文に辿れるか否かを軌跡文追跡規則を用いて確認して正統な主語座標か否かを判断するステップと、主語が属さない単元文の名詞の正統な主語座標の探索とその付与規則を用いて、主語を有しない単元文に属す名詞を実体化するすべての単元文から当該主語を有する単元文に辿れるか否かを確認して正統な主語座標か否かを判断するステップと、標識名の座標付与規則を用いて、主語指標及び名詞指標に座標を付与するステップと、定置名詞の名詞座標付与規則及び定値の名詞座標付与規則を用いて、定置名詞、定値、データ項目名を登録する領域名、各座標を付与するステップと、Z1呼応文探索規則、Z2呼応文探索規則及び軌跡文追跡規則を用いて、条件文に真及び偽の呼応文の座標を付与するステップと、連動文探索規則及び軌跡文追跡規則を用いて、主語及び名詞を共に持たない単元文に連動文の座標を付与するステップとを具備するように構成することもできる。上記において、前記構文ID抽出規則は、構文を抽出し、該抽出された構文から変数名と演算子を除いた予約語列として構文IDを付与する、ということを構文座標の最初から最後まで行うアルゴリズムであるように構成することもできる。上記において、前記単元化規則は、前記設置された構文IDを取得し、該取得された構文IDと予め作成されたGS/TC表単元文属性と次処理座標表とを対照し、該構文IDに関連する単元文属性情報構文ID、単元文、単元文から変数名及び演算子を除いた予約語列である単元文ID、単元文の文種情報、主語種別情報、YZ区別情報次に処理する文が直後文であるか否かを示す情報、単元文の型情報、構文座標及び予約語を用いた一般的表示のTCX単元文に分割された後、構文座標との関係で表された当該単元文の座標、TCY次処理の座標、Z1条件文の場合であって真のときに処理する座標または制御文の指示する座標、Z2条件文の場合であって偽のときに処理する座標、Z3条件文の場合であって条件文の終了文の座標、Z4条件文の場合であってZ3の次に処理する座標、を含む情報を前記GS/TC表から取得してそれらを基に、TCX規則、TCY規則、TCZ規則を用いて直値化してLyee空間に設置する、ということを構文座標の最初から最後まで行うアルゴリズムであるように構成することもできる。また、本願は、前記第1乃至第5のステップで得られた情報を用いて、個々のデータ項目についての由来情報がすべて存在するか否かを確認することでデータ項目の正統性を診断することを特徴とするコンピュータプログラムの実行障害の解法を得る方法としても実現される。さらに、本願は、前記第1乃至第5のステップで得られた情報を用いて、データ項目についてその文脈が生成不能で、かつ、当該データ項目がインプットデータ項目でないことを確認することで浮島主語であるか否かを診断することを特徴とするコンピュータプログラムの実行障害の解法を得る方法としても実現される。また、本願は、前記第1乃至第5のステップで得られた情報を用いて、前記軌跡文追跡規則を適用して、個々の全単元文を出発文として、すべて終局文に到達するかを確認して該到達しない出発単元文を発見することで、データ項目の妥当性を診断することを特徴とするコンピュータプログラムの実行障害の解法を得る方法としても実現される。さらに、本願は、前記第1乃至第5のステップで得られた情報を用いて、L4型回帰診断規則及びL3型回帰診断規則を適用して、ある単元文について、当該単元文に含まれる名詞のデータ項目が生成される座標のTCXが当該単元文のTCXより大きいか等しい場合を発見することで、データ項目の回帰を診断することを特徴とするコンピュータプログラムの実行障害の解法を得る方法としても実現される。また、本願は、請求項12記載の前記第1乃至第5のステップで得られた情報を用いて、文脈主語において、主語の名称と内容が同一の文脈で文脈主語の座標のみが異なる文脈主語である重複主語、文脈主語において、主語の名称が同一であるが、その条件文の内容と文脈主語の座標とが異なる文脈主語である多重主語、文脈主語において、その条件文に含まれる名詞の数が相対的に多い文脈主語である拡散主語、文脈主語において、その主語が他の文脈の条件文にも使われる場合が多い文脈主語である集約主語、文脈主語において、その条件文に含まれる名詞の数が最大である文脈主語である核主語の少なくとも一つを発見することを特徴とするプログラムの洗練性を診断する方法としても実現される。さらに、本願は、請求項12記載の前記第1乃至第5のステップで得られた情報をもとに、前記プログラムに係る要件が変更されたことに伴って変更される文脈主語を特定し、前記特定された文脈主語について変更を行った後に、当該変更の波及範囲として、前記変更された文脈の子孫文脈当該文脈主語を名詞としてそれに内包される文脈と、同様に以降連鎖して内包される文脈について、変更が初めて必要でなくなる文脈に使用される名詞を文脈主語とする文脈を変更の波及する限界の文脈と特定することを特徴とするプログラムの要件変更の波及範囲を診断する方法としても実現される。また、本願は、任意の目的データ項目に関わるすべてのインプットデータ項目に始まり当該目的データ項目に至る過程のすべてのデータ項目とそれらの生成の順序を特定することで、データ項目間のあるべき内包関係及びその順序の診断を行い、および/もしくは、前記主語系譜において文脈主語を特定し、該特定された文脈主語の名詞を参照し、該参照された名詞を主語とする文脈を前記主語系譜から探索することを、特定の条件文を被呼応文として持つ文脈にたどり着くまで繰り返すことを特徴とする要件とプログラムとの調和性及び要件の妥当性を診断する方法としても実現される。さらに、本願は、既存であって変換対象のプログラムのソースコードをLyee空間に展開する第1のステップと、前記Lyee空間において前記ソースコードの各行に係る各個別項目を生成し或いは/及び設置する第2のステップと、前記第1及び第2のステップで得られた前記Lyee空間情報をもとに、予め作成された保守用のGS/TC表並びに言語変換用のGS/TC表を用いて新Lyee空間を展開する第3のステップと、前記第3のステップで得られた新Lyee空間から、新プログラム規則に則って展開することで新たにソースコードを得る第4のステップとを具備することを特徴とするコンピュータプログラムの変換方法としても実現される。また、本願は、対象プログラムのソースコードをLyee空間に展開するに当たり、ソースコードに関係する各データ項目について、当該データ項目に対応する値を生成するに与る生成元データ項目及びその座標、当該データ項目が生成されるにあたっての条件及びその座標並びに当該条件を形作るデータ項目及びその座標、当該データ項目の生成の前に処理される単元文の座標を含む当該データ項目に対応する値の生成の由来情報を取得する手段と、前記ソースコードのそれぞれの行について、当該行の次に処理する座標を取得する手段とを具備することを特徴とするコンピュータプログラムの実行障害の解法獲得装置としても実現される。さらに、本願は、対象プログラムのソースコードをLyee空間に展開するに当たり、対象のプログラムのソースコードを各データ項目の由来情報と次処理座標を設置するための第一の手段と、前記Lyee空間において前記ソースコードの各行に係る各個別項目の属性を生成し或いは/及び設置するための第二の手段とを具備することを特徴とするコンピュータプログラムの実行障害の解法獲得装置としても実現される。1要件に係るプログラム実行障害の原因,仕組の発見の効果本原因を発見するこれ迄の方法は実デ-タを用いてプログラムを実際に仮稼働させ其の稼働状況で,其の原因を発見しようとする方法である。そして,其の作業をプログラムテストと称している。従来の方法の課題はこの方法を擦り抜ける実行障害の原因を残存させる事である。そして,其の原因が実稼働中に突発的な障害を発症させる事である。社会的システムでこの様な障害が発症すれば其の悪影響は社会に広く及ぶ事になる。故に,この問題は国家業務,銀行,証券,運輸,航空機などに係わるプログラムでは看過出来ない深刻な問題である。この点に関し,重大な懸念は其の事の深刻さを直視すべき関係者の多くがこの問題を直視しない事である。唯,努力姿勢に止まり,根源的改善の施策に踏み込まない事である。其の意味で,この問題はプログラムの根源的課題と言える。本願方法は要件に係る実行障害の原因を人が捉えられる様にする為の情報主語系譜をプログラムソ-スから電算機で生成する為の方法である。其の主語系譜により実行障害の原因を人が起因,其の発症の仕組として完全に捉える事が出来る。発症の起因から其の発症現象を想定する事が出来る。また,起因が発症する仕組が分かる事により,プログラムの改善修正の仕方が分かる。其の事により,改善修正による新たな実行障害を発症させない改善修正が可能になる。2プログラム要件の調和性の評価方法の効果これ迄,プログラム要件の調和性はプログラムの脆弱性と共に経験的にしか評価する事が出来ていない。即ち,正確に把握されるべき課題が克服されていない。其の事が陰に陽にプログラムの生産性,其の品質を劣化させる原因になっている。例えば200万ラインを越えるプログラムシステムでは其の開発維持の経済性の観点からも要件の調和性評価は行われるべきである。本方法により其の作業が可能になる。3プログラムに属す実行停止命令の有意性を検証する方法の効果停止命令の有意性判定はこれ迄のコンパイラでは不可能である。故に,この有意性問題はプログラムテストの段階迄不明である。そして,プログラムテストでも,其の有意性の検証が必要かつ十分に行われているとは限らない。本方法はコンパイルの前に適用する事が出来る。そして,プログラムテスト作業を必要以上に混乱させない効果がある。4生成値の意味を曖昧にする仕組,並びに生成値の意味を破壊する仕組の検出方法の効果プログラムには意図に反して生成値の意味を曖昧にしたり,破壊したりする仕組が成立してしまう事がある。其の原因は要件の欠陥,或いはプログラムの欠陥のいずれかである。これ迄,この現象は発症しながらも,其の発症の仕組を本方法のごとくかくも明確に捉える事が出来なかった。本方法により其の発症の仕組が検出されれば,其の情報に基づき其のプログラムを改善修正する事が出来る。本方法によりこの問題は解決された。5プログラム作成作業を自動化させるTOOLの効果本発明の概念,GS/TC表,LYEE空間,主語系譜でプログラム作成作業を自動化するTOOLを構築する事が出来る。本TOOLによりプログラムの開発,保守,言語変換,整形作業のプログラム作業の能率は改善される。目次1.文脈と主語系譜の概念の導入プログラム診断には全データ項目の由来情報が必要2.データ項目の由来情報の生成の方法2.1座標、単元文、主語と名詞の概念の導入2.2プログラム診断の課題を座標によって解決2.3プログラム診断の課題を文脈、主語系譜によって解決2.4文脈の概念の背景2.5関数式、条件式の診断は容易。見えない由来にこそ問題が潜在2.6要件定義者によるプログラムの診断の方法、要件の妥当性診断の方法3.座標文脈主語系譜の自動生成3.1ソースコードをLyee空間に展開する3.2Lyee空間の各個別項目の生成と設置の方法3.2.1ソースコードの構文の座標TSの設置3.2.2ソースコードの構文の設置3.2.3構文IDの設置3.2.4単元文とその属性をLYEE空間に設置1単元文へ分割しLYEE空間に設置2GS/TC表の準備単元文の属性の定義3各構文に対応するGS表/TC表を抽出しLYEE空間に設置3.2.5演算子、変数、名詞指標、主語指標、定置名詞、定値、主語、名詞の設置3.2.6条件文のZ1始文座標、Z1終文座標、Z2始文座標、Z2終文座標、Z3文座標、Z4文座標のLYEE空間への設置及びZ1終文のTCYの置き換え3.2.7制御文のZ1座標の設置3.2.8出発文から目的文への辿る方法全てのデータ項目にそれを生成する座標を付与するための準備3.2.9主語に主語座標を付与3.2.10主語と名詞に名詞座標を付与3.2.11主語が属す単元文の名詞の正統な主語座標の探索とその付与3.2.12主語が属さない単元文の名詞の正統な主語座標の探索とその付与3.2.13主語指標と名詞指標に座標を付与3.2.14定置名詞、定値、領域名の座標を付与3.2.15文脈、条件文の呼応、連動の定義3.2.16条件文に真及び偽の呼応文の座標を付与3.2.17主語と名詞を共に持たない単元文に連動文の座標を付与3.2.18SSとGSの作成3.3文脈と文脈式の生成3.4.主語系譜の生成1.文脈と主語系譜の概念の導入プログラム診断には全データ項目の由来情報が必要全てのデータ項目について、その個々のデータ項目Aの値の生成について、如何なる位置ソースコードの行番号で、如何なる位置の如何なるデータ項目によって生成し、且つ、如何なる位置の如何なるデータ項目による如何なる位置の如何なる条件下において生成し、更に、如何なる位置の如何なる構文に続いて処理されるのか、等の情報は、個々のデータ値Aの生成の謂わば由来の情報である。本発明ではこれら個々データ項目Aについての情報を文脈と呼ぶ。これらの文脈と文脈の関連部分を互いに連鎖的に連結すれば、全データ項目の個々についてその値の生成の条件、生成式、更に処理の順序を含めて相互の依存関係のネットワークが完成する。例えばIFX>YA=BCの場合、X、Y、B、CはAを内包するという。それを内包関係と呼ぶ。前記のネットワークは個々のデータ項目の由来を連鎖した内包関係であり、これを本発明では主語系譜と呼ぶ。プログラムのソースコードには、或るデータ項目が生成する位置とそれを生成するためのデータ項目と、それが生成する条件と条件に含まれるデータ項目と、どの構文に続いてに処理されるかは記述されている。しかしそこに含まれる全てのデータ項目については如何なる位置で如何なる条件で生成されるかの由来は一切記述されていない。これではデータ項目間の依存関係内包関係は知りようがない。上記の文脈や主語系譜のように由来に関わる情報は一切ない。それが知りたければソースコードを人が一つ一つ辿って調べなければそれらの情報は得られない。ソースコードを人が辿ることは作業量が膨大すぎて事実上不可能である。個々のデータ項目の由来やデータ項目間の内包関係が分らなければ、各データ項目の正当性やプログラム構造の洗練性の判断は出来ないことは自明である。例えば、或るデータ項目はソースコードを辿ると、1由来が断絶していたり、2或るデータ項目を生成させるためにその関数や条件に必要なデータ項目は今後生成するものであり現在は未だ値が無かったり、或いは3既に値があっても論理的に無関係で不適切な価であったり、4或るデータ項目は如何なる場合にも出力できなかったり、5プログラムの冗長性が大きく又は処理効率が悪かったり、する。これらの診断のためには、前述の文脈と主語系譜がなければ診断の方法がないことは自明である。例えれば、自分の出生のいわれを先祖まで辿って調べたい時に、家系図が無ければ調べられないことと同様である。家系図がなければ先祖を全て訪ね歩き聞き取り調査をして家系図を作らなければならない。ソースコードは只今現在の処理方法を示すのみで、データ項目の家系図的な情報はないので、プログラム診断のためには家系図に相当する文脈や主語系譜を準備する必要がある。本発明は、上記の文脈と主語系譜、そしてそれらを作成するための基礎情報となるLYEE空間を準備し、それらを用いて、プログラムの正当性や洗練性の診断、またプログラムの保守、言語変換の質的向上を革命的に進化させようとするものである。2.全データ項目の由来情報の生成の方法以下にその方法について述べる。2.1座標、単元文、主語と名詞の概念の導入まず、個々のデータ項目に領域定義位置と生成位置を付与する。位置とはプログラムコードソースコード或いはそれから展開された単元文化されたコードの行番号であり今後座標と呼ぶ。ソースコードの各行に書かれた構文は、複数の機能を持つものがある。例えばC言語のforは複数の機能をもつ。複合機能を持つ構文は単一機能に分解して扱うが、その具体的方法については後述する。今は構文は全て単一機能を持つとして説明をする。単一機能を持つ構文を単元文と呼ぶ。以下、全てのデータ項目と単元文に座標をつける方法について例を持って説明する。各単元文の座標とは下記表の構文行番号である。各データ項目の座標とは、そのデータ項目の領域を定義した単元文の座標を名詞座標NownCoordinate略称NCとして、またそのデータ項目を定義する単元文の座標を主語座標SubjectCoordinate略称SCとして付与し、それらを該データ項目の座標と呼ぶ。座標を付与した後のプログラムコードは下表の如くなる。注記:上表の座標108のCの座標のM印は、構文座標108のCの主語座標には104又は106のいずれかの複数の可能性があり、データ処理するとその中から1個入る。こういう場合はSCはMにしておき、後述のように別のところで104と106を探索して記録しておく。この場合は当然2つとも生かして主語系譜の中に入れておかなければならない。次に各単元文において、その中のデータ項目の特性について識別しておく。それは後に必要となる。特性とは主語であるか名詞であるかの属性を言う。生成されるデータ項目を主語、生成させるデータ項目、或いは主語以外のデータ項目を名詞と呼ぶ。上記の例でのCABの場合、Cは主語、A、Bは名詞である。一方別の単元文構文座標101および102では、A、Bは主語となる。構文座標の単元文103ではA、Bは名詞である。2.2プログラム診断の課題を座標によって解決さて、プログラム診断において、各データ項目の下記の1~4の観点から見た正当性の診断を行う場合を考察する。1或るデータ項目は、それを生成させる関数もなく又入力データ項目でもない。後述のようにそのデータ項目は浮島主語という。2或るデータ項目は、生成される時点でその生成に関わる関数式又は条件式の中で未来に決まるべきデータ項目が含まれる。この場合は該データ項目は主語であるが、それを生成する名詞の主語座標が主語の主語座標よりも座標数値が大きい場合である。後述のようにそのデータ項目を回帰主語という。その場合、必ずしもエラーとは断定できないが、エラーの可能性が高いので十分注意してその妥当性を検討しなければならない。3或るデータ項目Aは、それを主語として生成させた名詞Bを主語として生成させた単元文複数の場合もある。から、全てのプログラム処理順序を辿っても該データ項目Aを主語とする単元文に辿りつけない。この場合該データ項目Aはプログラム処理上正規の手順を踏んで値を形成したものではないこととなる。後述のようにそのデータ項目Aを正統性のない名詞という。4全単元文がプログラムの処理順序を辿って必ず終局文に到達している必要がある。到達しない単元文があると、データによってはその到達しない経路に入り突如プログラムはストップするか無限ループに入る。後述のようにそのプログラムを妥当性がないプログラムという。上記のデータ項目や単元文に関する1、2、3、4に関する診断は、データ項目の由来の指標である座標を鍵として探索するので、どうしてもデータ項目に座標が付与されないと不可能であるし、また単元文をソースコードに記された処理順序に従って辿って検査しないと不可能である。此処において、全データ項目に自動的に座標を付与する方法と、全単元文について何処の単元からでも何処の単元文へでも自動的に辿る方法が本発明の一つの柱である。単元文を自動的に辿るためには、各単元文が次にどの単元文を処理するのかを文法に従って自動的に指定する方法が必要である。その方法も本発明の柱の一つである。プログラムにも勿論処理順序が書いてあるので人が処理を辿ることは出来る。しかし、前述の通り、人が全処理順序を辿ることは膨大な労力と時間を要し現実的には不可能である。2.3プログラム診断の課題を文脈、主語系譜によって解決ここで前述の例をもって文脈について説明しておきたい。文脈とは前述のように、全てのデータ項目について、その値の生成は、如何なる座標で、如何なる座標の如何なるデータ項目によって生成し生成式、如何なる座標の如何なるデータ項目による如何なる座標の如何なる条件下において生成し条件式、更に、如何なる座標の如何なる構文に続いて処理されるのか連動、等の情報である。個々のデータ項目の生成の謂わば由来の情報である。文脈はデータ項目の生成の由来であるから当然の事ながら文脈式は各主語についてだけ生成する。上記の座標を付与した構文の例の構文座標104のCと構文座標106のCについて例として文脈式を記す。文脈式[104]C[23104]文脈式[106]C[23106]文脈式の中で如何なる座標の如何なる構文Aに続いて処理されるのかについては、構文Aが条件文或いは主語や名詞を持たない単元文の時以外は必ず1座標前の単元文に続いて処理されるので印さない。条件文については上述の通りの表記であり、主語や名詞を持たない単元文被連動文と呼ぶについては下の通り表記する。例を構文座標108のDについて記す。文脈式[108]D[24108]注記:endifが被連動文。Mは前述構文の例の注記参照。上記のように全ての主語について文脈が出来れば、各文脈主語を生成させる名詞、条件に関わる名詞を夫々の座標を鍵として、それらを主語とする文脈を抽出し、それらを鎖のようにつなげればそれが主語系譜そのものである。そこでは各データ項目が内包関係を構成している。主語系譜は、全てのデータ項目の生成の由来情報を全て表示できる。一方、プログラムコードは処理の順序を明示しているだけで、データ項目間の依存関係、即ち由来、即ち内包関係は全く明示していない。主語系譜はプログラムにおいて全データ項目の生成の実行様相をすべて表現している。実行様相とはデータ項目が成立してゆく様相である。したがってプログラムの診断の課題がすべて解決できる。此処で言うプログラムの診断の課題とはプログラムの隠れた論理不備前述の浮島主語、回帰主語、正統性のない名詞、妥当性のないプログラムの診断、要件とプログラムの調和性診断、要件の妥当性診断、さらに要件定義者自らによるプログラム診断、プログラムの洗練性診断後述、プログラムの変更の際の波及範囲の診断、等の従来は実行が困難であった課題である。それらの課題が、座標、文脈、主語系譜を使うことによってプログラムの全データ項目の実行様相を把握することが自動的にできるので、全て一気に解決できる。このデータ項目依存関係は人がプログラムを辿って追跡すれば知ることは出来る。しかし、その追跡は時間とコスト上非現実的である。だからプログラムの全データ項目の実行様相を把握する事はできない。現実としてはそれをサンプルデータによるテストで補うが、全実行様相の極一部しかテストできない。2.4文脈の概念の背景文脈の概念が生まれた背景について少々述べておきたい。本発明の背景である形而上学的論考において、プログラムの命題関数としてベクトルが発想され、それは5種類規定された。それらをL4、L3、L2、I2、O4、である。それらについては、本明細書に参考資料として添付した論文存在の形而上学的論考を参照されたい。それらのベクトル種別を単元文の種別で表現すれば単元文の種類については後述の3.2.4単元文とその属性をLYEE空間に設置を参照されたい、1L4:関数文2L3:条件文3L2:定値文4I2:入力文、呼出文、注釈文、制御文、翻訳文、領域文5O4:出力文である。文脈はこれらのベクトル或いは単元文の組合せで得られ、その組合せの種類は下記の8種類であり、それだけであることが形而上学的論考から導かれている。つまり文脈の種類は下記の8型ある。1L22L43I24O45L3∩L2∩はインターセクション6L3∩L47L3∩I28L3∩O4以上は本発明の根源的背景であるが、特許明細書で詳細に記述するのは形而上学的論考であるので相応しくない。詳細は参考資料の論文を参照されたい。2.5関数式、条件式の診断は容易。見えない由来にこそ問題が潜在。ここで強調しておきたいことがある。プログラム診断の際に関数式及びその条件式そのものの診断が必要であることは言うまでもない。しかし、それらはプログラムに個々に明記されているので人がそれらを個々に診断することは容易に出来る。またそれらは人にしか出来ない。一方、データ項目の内包関係、データ項目の由来、即ち文脈とそれらを内包関係を辿って連鎖した主語系譜は勿論プログラムに明記されておらず、それを人が把握するためにはプログラムを辿って調べなければならず大変な時間と労力が掛かるので事実上把握されることはない。プログラムには明示されていないこのデータ項目の内包関係はブラックボックスであり、そこにこそプログラムの問題の原因がある場合が多い。文脈や主語系譜は正にその課題を解決する手段である。2.6要件定義者によるプログラムの診断の方法。要件の妥当性診断の方法。全データ項目はソースコードでは一般的に英数字で表現されている。これらとプログラマーが元々作成し手元に持っているひらがな漢字表現との対照表を使ってデータ項目表現を英数字からひらがな漢字に置き換えることは簡単な作業である。したがって文脈と主語系譜をひらがな漢字に置き換えて表現すれば、文脈と主語系譜が、元々人による診断が容易な関数演算子と条件演算子を除いて、プログラムに表現された要件を現しているので、要件定義者はプログラムに表された要件を容易に読める。従って要件定義者はプログラムの内容を直接把握出来る。本発明の文脈と主語系譜によって、要件定義者は従来はブラックボックスであったプログラムに表現された要件データ項目の内包関係を直接把握出来る。その手段を初めて手にした事となる。だから要件定義者はプログラムの内容までも責任をもって検査することが出来るようになる。従来ではあり得なかった事である。更に要件定義者は、自己が定義し作成した要件そのものの妥当性について、その要件を実現するプログラムの内容を把握することが出来るので、検証し修正し改善することが容易になる。従来では無理なことである。3.座標文脈主語系譜の自動生成プログラムの診断を目的として、1全データ項目に座標を付与する事、及び2文脈と主語系譜を作成する事、を自動的に行う具体的方法について以下に詳述する。12ともプログラム診断上極めて重要な情報を提供する。3.1ソースコードをLYEE空間に展開する。LYEE空間とは本発明の根幹をなすものであるがそれについて説明する。ソースコードに記述されている構文は行毎に記述されそれが縦に並べられている。縦に並べられている構文をそのまま縦軸とし、夫々の構文について横軸欄に、構文の座標、構文ID、構文を単元文化した後の単元文、単元文の座標、単元文ID、等々図8LYEE空間項目表に示すLYEE空間の項目目的に応じて項目の部分的変更はあり得るを並べ、それらの内容を、今後順次記述する方法によって生成し夫々の欄に設置する。LYEE空間とはこの縦横の膨大な2次元空間である。このLYEE空間の情報がソースプログラムから作成されれば、全てのデータ項目について、その値の生成は、如何なる座標で、如何なる座標の如何なるデータ項目によって生成し、且つ、如何なる座標の如何なるデータ項目による如何なる座標の如何なる条件下において生成し、更に、データの値の生成には直接影響を与えないが順序としては如何なる座標の如何なる単元文の後に処理されるのか、等の情報が得られる。個々のデータ値の生成の由来情報である。これらの関連部分を互いに連結すれば、全データ項目個々についてその値の生成の条件や順序関係を含めて相互の依存関係の内包関係が完成する。これが主語系譜である。3.2LYEE空間において各個別項目の生成と設置の方法以下の説明は図11LYEE空間の例1/3、図12LYEE空間の例2/3、図13LYEE空間の例3/3を参照されたい。3.2.1ソースコードの構文の座標TSの設置ソースコードの各構文の行番号である。TSTextSequenceと記す。3.2.2ソースコードの構文の設置ソースコードの構文をそのまま記す。コンピュータ言語は問わないでその言語の表現通りでよい。3.2.3構文IDの設置構文IDとは構文から変数名と演算子を除いた予約語列である。図4構文ID抽出規則に従ったプログラムによって構文IDを自動的に抽出し、LYEE空間の構文ID欄に設置する。なお、条件文のように本来構文はIFからENDIFまでであるが、ここではソースコードの分離符までに表示された構文だけで操作する。3.2.4単元文とその属性をLYEE空間に設置1単元文へ分割しLYEE空間に設置プログラムを完全に分析するためには、ソースコードをLYEE空間に展開しなければならない。そのためには構文は単元文でなければならない。単元文とは1機能しか持たない命令文である。元々1機能しか持たない構文であればLYEE空間の単元文欄にそのまま記せばよい。複数機能を持つ構文例えば関数式と判定式を持つ条件文、或いは繰り返し演算を指示するfor文等については単元文に分割する。分割の方法は、構文IDを単元文IDに分割し、単元文IDをLYEE空間に縦に並べ、それに応じた単元文を構文から抽出してLYEE空間に記す。単元文IDとは単元文から変数名と演算子を除いた予約語列である。分割の方法は固定されたものではなく、結果として単元文に分割され、それらの座標が決められ、さらに次に処理すべき単元文条件文の時は真偽の場合に処理する文、終文。制御文の時は行き先文の座標が明示される方法であれば方法は問わない。しかし此処に明示する特定の方法は優れており発明の一部でもある。以下の説明は、図5単元化規則、図6GS/TC表、参考資料1複合機能条件文の単元化とLYEE空間への展開参考資料2for文の単元化とLYEE空間への展開を参照されたい。全て自動化を目的とする規則である。単元文の文種には次の10種がありそれ以外にはない。単元文をこの10種に分類したことによってプログラムの文脈や主語系譜を効率的に自動生成することが出来た。従ってこの分類方法も本発明の柱の一つである。1注釈文コメント文例:売上げ集計2領域文各データ項目の領域定義文例:intA3翻訳文4関数文データ項目の生成式例:ABC5定値文定数式例:A106条件文条件判定式例:ifAB7入力文データを入力領域に入れる指示文例:READ8出力文データを領域から外部データベースに出す指示文例:WRITE9呼出文サブルーチンを呼び出す指示文例:CALL10制御文処理順序を指示する文例:GOTO2GS/TC表の準備単元文の文法と属性の定義一方、使用される言語文法と構文を想定し、各構文の構文ID毎に各構文を単元文に分割しそれらを縦に並べ、夫々の単元文の各種属性を個別の文法に従ってGS/TC表を予め人が作成して置く。各単元文の次に処理する座標がTC表に示されているが、それは使用している言語の文法そのものでありここに当該言語の文法が表示されている。これによって如何なる文法のソースコードでも、GS/TC表が出来れば本発明の解析が自動的に出来るようになる。これは発明の柱の一つである。GS表の項目欄は、1構文ID:構文の予約語列2単元文ID:構文の予約語列3単元文の文種前記1の10種4主語種別主語の種類として、a関数によって実体化される関数主語、b定値によって実体化される定値主語、c入力によって実体化される入力主語、d出力によって実体化される出力主語、e呼出によって実体化される呼出主語がある。5YZ区別次に処理する座標がすぐ次の場合Y型、そうでない場合Z型6単元文の型:単元文の一般形式。主語と名詞が区別されれば良いので形式は問わない。である。TC表の項目欄は、1単元文に分割された後、構文座標TSとの関係で表された当該単元文の座標をTCX、2次に処理する座標が当該座標のすぐ次の座標の単元文の場合TS1としてTCY、3条件文の場合、真の時に処理する座標または制御文の指示する座標をZ1、4条件偽の時の処理する座標をZ2、5条件文の終了文の座標をZ3、6Z3の次に処理する座標をZ4であり、それらは使用する言語文法によって決まっているのでそれらを各欄に人が予め設置する。座標の表示は構文座標TSとの関係と予約語thenelse等で一般形で表示する。3各構文に対応するGS/TC表を抽出しLYEE空間に設置ソースコードの抽出された構文IDを鍵として、GS/TC表の構文IDを探し、GS/TC表を抽出しそれが2個以上あれば候補として保留して置き、該当するGS/TC表を得る。それをLYEE空間に設置する。その結果、ソースコードの構文は単元文化され、座標が付与され、文法に従って単元文の処理順序が決定される。なお、人が予め準備すべきGS/TC表の必要数は意外に少ない。数十万~数百万ステップのソースコードでも必要数は数百個である。実際使用される構文の種類は多くないということである。以下に条件文の重層構造を持ち、条件文の真偽の処理文の区別する標識も違い、真偽の処理文が複数ある少し複雑な構文を例にして、それらの単元化とLYEE空間への展開を示す。以下に論ずる3.2.6項条件文のZ1始文座標、Z1終文座標、Z2始文座標、Z2終文座標、Z3文座標、Z4文座標のLYEE空間への設置、およびZ1終文のTCYの置き換え3.2.7項制御文のZ1座標の設置においてそれらの方法を論じているのでそれらの項を同時に読んで頂ければ理解がしやすい。注記:1.ここではとの2つの予約語を簡単化して1つのにして扱う。この方法も簡略のために認められる。ENDIFも同様である。2.TS98のドットでZ1終文を示す。TS100のドットでZ2終文を示す。ドットは無くてもよい。以下、各々のTSの構文について、人が文法に基づいて作成したGS/TC表によって単元化し、またTCX、TCY、およびTCZ1、TCZ2、TCZ3、TCZ4をLyee空間に展開する方法を述べる。TS94:TS94文の構文IDIFを鍵として、GS/TC表群の構文IDを探してGS/TC表1-1と1-2の2つが候補として抽出される。図43-1参照。これらのGS/TC表は構文IDが2個であるからそれらに応じた単元文IDに従って初めの2行がLyee空間に展開される。しかし、今は候補が2つあるので候補として保留しておく。LYEE空間およびTI表図18において、いずれのGS/TC表が最終的に選択されようとも条件文TS94文のZ1始文欄はTS2であるので、Z1始文欄に95を設置する。条件文とTCZ文の紐付けである。TS95:TS95文の構文IDを鍵としてGS/TC表2が抽出される。図43-1参照。その単元文IDに従って1行がLyee空間に展開される。TS95文の構文IDは、TS94文のGS/TC表の候補であるGS/TC表1-1と1-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS96:TS96文の構文IDIF>を鍵としてGS/TC表群の構文IDを探してGS/TC表3-1と3-2の2つが候補として抽出される。図43-2参照。これらのGS/TC表は構文IDが2個であるからそれらに応じた単元文IDに従って初めの2行がLyee空間に展開される。しかし、今は候補が2つあるので候補として保留しておく。LYEE空間およびTI表において、いずれのGS/TC表が最終的に選択されようとも条件文TS96文のZ1始文欄はTS2であるので、Z1始文欄に97を設置する。条件文とTCZの紐付けである。TS96文の単元文IDIF及び>いずれも、TS94文のGS/TC表の候補であるGS/TC表1-1と1-2の単元文ID欄の次の要素に入っていないので、それら候補の選択絞込みは進まない。TS97:TS97文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表2が抽出される。図43-1参照。その単元文IDに従って1行がLyee空間に展開される。TS97文の構文IDは、TS96文のGS/TC表の候補であるGS/TC表3-1と3-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS98:TS98文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表4が抽出される。図43-2参照。その単元文IDに従って1行がLyee空間に展開される。TS98文の構文IDとGS/TC表3-1の単元文ID欄の次の要素の合致によって、TS96文の候補であるGS/TC表3-1の単元文ID欄のIF>までが決まる。GS/TC表の候補の選択絞込みが一歩進んだことになる。しかしまだ最終選択ではない。最終選択は単元文ID欄のENDIFが確認されるまでは出来ない。表3-1のTC表で指示している通り、TS98文はZ1終文であることが分る。その場合、そのTCYはGS/TC表4の981ではなく、表3-1のTC表通りENDIFに置き換える。Z1終文の時の規則である。しかしENDIFが何処であるかはGS/TC表3-1が最終決定しなければまだ分らない。GS/TC表が最終決定してENDIFのTCXが決定した時にそのTCXに置き換わる。また条件文のZ2始文はZ1終文の直下であるので、条件文TS96文のZ2始文は次のTS981即ち直下のTS99であることが探索された。LYEE空間とTI表において、条件文TS96文のZ1終文欄に98、Z2始文欄に99を設置する。条件文とTCZ文の紐付けである。TS99:TS99文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表2が抽出される。図43-1参照。その単元文IDに従って1行がLyee空間に展開される。TS99文の構文IDは、TS96文のGS/TC表の候補であるGS/TC表3-1と3-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS100:TS100文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表4が再び抽出される。図43-2参照。その単元文IDに従って1行がLyee空間に展開される。TS100文の構文ID.は、TS96文のGS/TC表の候補であるGS/TC表3-1と3-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS101:TS101文の構文IDENDIFを鍵としてGS/TC表群の構文IDを探してGS/TC表5が抽出される。図43-3参照。その単元文IDに従って1行がLyee空間に展開される。TS101文の構文IDENDIFとGS/TC表3-1の単元文ID欄の次の要素ENDIFの合致によって、TS96文の候補であるGS/TC表3-1の単元文ID欄のIF>ENDIFまでが決まる。GS/TC表の候補の選択が終了したことになる。最後まで決まったのでGS/TC表3-1が最終的に選択された。GS/TC表3-1のTC表の通り、条件文TS96のZ3文は、TS101文であることが探索された。同時に条件文TS96のZ2終文はZ3文の直前の文であるから、TS100文がZ2終文であることが探索された。またZ4文はZ3文の直後の文であるからZ4文は102であることも探索された。LYEE空間とTI表において、条件文TS96文のZ2終文、Z3文、Z4文の各欄に夫々100、101、102を設置する。条件文とTCZ文の紐付けである。TS102:TS102文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表2が抽出される。図43-1参照。その単元文IDに従って1行がLyee空間に展開される。TS102文の構文IDは、未決定であるTS94文のGS/TC表の候補であるGS/TC表1-1と1-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS103:TS103文の構文IDELSEを鍵としてGS/TC表群の構文IDを探してGS/TC表6が抽出される。図43-3参照。その単元文IDに従って1行がLyee空間に展開される。TS103文の構文IDELSEとGS/TC表1-2の単元文ID欄の次の要素ELSEの合致によって、TS94文の候補であるGS/TC表1-2の単元文ID欄のIFELSEまでが決まる。GS/TC表の候補の選択絞込みが一歩進んだことになる。しかしまだ最終選択ではない。TC表1-2によって、条件文TS94文のZ2始文は、TS103であることが探索された。LYEE空間とTI表において、条件文TS94文のZ2始文欄に103を設置する。またZ2始文の直前のTCX文がZ1終文であるからZ1終文欄に102を設置する。条件文とTCZ文の紐付けである。TS102に対応するGS/TC表2によればそのTCYは1021=103になるが、TS102がZ1終文であることが探索されたので、GS/TC表1-2のZ3欄のENDIFに置き換わる。しかしそれが何処かはGS/TC表1-2が最終的に決まらないと分らない。GS/TC表が決定してENDIFのTCXが決定した時にそのTCXに置き換わる。TS104:TS104文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表2が抽出される。図43-1参照。その単元文IDに従って1行がLyee空間に展開される。TS104文の構文IDは、TS94文のGS/TC表の候補であるGS/TC表1-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS105:TS105文の構文IDを鍵としてGS/TC表群の構文IDを探してGS/TC表2が抽出される。図43-1参照。その単元文IDに従って1行がLyee空間に展開される。TS105文の構文IDは、TS94文のGS/TC表の候補であるGS/TC表1-2の単元文ID欄の次の要素に入っていないので、候補の選択絞込みは進まない。TS106:TS106文の構文IDENDIFを鍵としてGS/TC表群の構文IDを探してGS/TC表5が再び抽出される。図43-3参照。その単元文IDに従って1行がLyee空間に展開される。TS106文の構文IDENDIFとGS/TC表1-2の単元文ID欄の次の要素ENDIFの合致によって、TS94文の候補であるGS/TC表1-2の単元文ID欄のIFELSEENDIFまでが決まる。TS94文の候補の単元文ID欄の最後まで決まったのでGS/TC表1-2が最終的に選択された。GS/TC表1-2によって、条件文TS94文のZ3文は、TS106文であることが探索された。LYEE空間とTI表において、条件文TS94文のZ3文欄に106を設置する。またそのZ3文の直前のTCX文がZ2終文であるからZ2終文欄に105を設置する。また、条件文TS94文のZ4文欄にはZ3文の直後のTCXであるから107を設置する。以上条件文とTCZ文の紐付けである。これでTS94文からTS106文までのGS/TC表が完成し、Lyee空間に展開された。図43-4参照。3.2.5演算子、変数、名詞指標、主語指標、定置名詞、定値、主語、名詞の設置前記3.2.4項までで、ソースコードの構文とその構文IDを鍵としてGS/TC表を抽出しLYEE空間に設置することによって、ソースコードの各構文毎に、ソースコード構文座標TS、ソースコード構文、構文ID、単元文、単元文ID、単元文種別10種、YZ区別、単元文の型、構文座標TSと予約語を用いた一般的表示のTCX、TCY、Z1、Z2、Z3、Z4が得られている。更に単元文から、演算子、変数データ項目、名詞指標単元文を定義する指標。例L1A=BCのL1、主語指標使用する単元文を示す指標。例GOTOL1のL1、定置名詞単元文だが領域を持たない名詞。例コメント文、定値単元文に属し領域を持たない値。例G=10の10、主語、名詞を抽出し、夫々をLYEE空間の該当欄に設置する。これらは夫々の定義に従って自動的に容易に抽出出来ることは明らかである。その方法は任意でよい。3.2.6条件文のZ1始文座標、Z1終文座標、Z2始文座標、Z2終文座標、Z3文座標、Z4文座標のLYEE空間への設置及びZ1終文のTCYの置き換え上記の3.2.43各構文に対応するGS/TC表を抽出しLYEE空間に設置において具体例で既に説明した条件文とTCZ文との紐付けの方法を下記にまとめて説明する。1条件文の種類:単元文化された条件文について真と偽の区分を表す方法としては2種類しかない。aIF判定語=ororororor=.Z1終文ENDIFの場合は、Z1終文の単元文のGS/TC表にはZ1終文であることは明示されていない。そしてそのGS/TC表のTCY座標は元々TS1と記されている。しかしその単元文がZ1終文であることが上記4で探索されたならば、TCY座標を条件文AのZ3座標に置き換える。3.2.7制御文のZ1座標の設置LYEE空間の単元文文種から制御文を探索し、その主語指標を求め、該主語指標を名詞指標として持つ単元文を探索し、その単元文のTCXを該制御文のZ1座標とする。3.2.8出発文から目的文への辿る方法全てのデータ項目にそれを生成する座標を付与するための準備前記2.7項までで、全ての個々の単元文の処理において次に処理する単元文の座標は何かについてすべて規定した。その情報は従来はソースプログラムでは表示されず人が単元文を個々に辿らなければ分らない情報である。この情報が2.7項までで全てLYEE空間とTI表に記された。全ての単元文について次に処理する単元文の座標が決められた。従って任意の座標の単元文から任意の座標の単元文に人がプログラムを辿らなくても自動的に辿ることが出来る。前記課題を解決するための手段の2.1座標、単元文、主語と名詞の概念の導入で述べた通り、全てのデータ項目は元々それを生成する場所とそれを領域として登録する場所を持っている。場所は座標で表示される。例えばAというデータ項目は座標21で領域定義され、座標134で生成されるとすると、そのことを表示するためにA[21134]と表示する。領域定義座標を名詞座標NCNounCoordinate、生成する座標を主語座標SCSubjectCoordinateと呼ぶ。A[NC、SC]と印す。全てのデータ項目にこれらの座標を付与したい。その準備を以下で行う。なお、予約語else、endif等の単元文にも座標を付与する。当該単元文のTCXをSCに付与する。例endif123全てのデータはそれが使用される以前に必ず値が生成されるプロセスを通る必要がある。そうでなければ生成の由来が不明なデータを使うことになる。コンピュータは由来にはお構いなしで、当該データの領域に値があれば使用する。本発明では、プログラムの処理順序において、或るデータ項目の値が生成される単元文を通ることを確認して由来を保証しつつその単元文になり得る全ての単元文を探索する。その自動探索方法を述べる。その前にLYEE空間において、或る単元文出発文から或る単元文目的文まで途中の単元文を辿り、その間の単元文の文種と座標と到達単元文数そこまでに経過した単元文の数を記録しておく。その記録表を軌跡文追跡表と呼ぶ。単元文追跡の方法は、まず出発文を決め、その次に処理する単元文を見出し、それが条件文であれば条件真のZ1始文に進み、それが目的文でなければ次々に単元文を辿り、Z1終文まで進め、Z2始文に移り同様の探索を進め記録し、最後に目的文に到達する。目的文に到達しない場合は、そのデータ項目の生成の由来が無いので、プログラムは論理的なエラーである。全てのZ1系を通ってもZ2系を通っても目的文に到達できないからである。以上の操作の規則の実行方法である具体的フローチャートを図25-1軌跡文追跡規則Z1系、図25-2軌跡文追跡規則Z2系に示した。3.2.9主語に主語座標を付与各データ項目は生成式と生成条件によって実体化される。また各データ項目はその領域を初めに定義される。つまり主語は主語座標と領域座標を持つ。それらを付与する方法を述べる。LYEE空間の主語欄に記された単元文の主語の主語座標はその単元文のTCXである。その操作の規則の実行方法である具体的フローチャートを図21主語の主語座標付与規則に示した。3.2.10主語と名詞に名詞座標を付与次に、主語並びに名詞主語でないデータ項目に領域座標を付与する。それらを付与する方法をのべる。LYEE空間の主語欄並びに名詞欄のデータ項目の領域定義文をLYEE空間の中の単元文種別欄で探索し、それらの主語と名詞の名詞座標はそれらの領域定義文のTCXである。その操作の規則の実行方法である具体的フローチャートを図22主語および名詞の名詞座標付与規則に示した。3.2.11主語が属す単元文の名詞の正統な主語座標の探索とその付与本項目を具体的に述べれば、例えば単元文D=EFのEとFについて、それらはどこの座標の単元文の生成式で生成したのかを探索する。それらのデータ項目の主語座標の探索である。LYEE空間において主語欄から主語のある単元文を探索し、その単元文に属する名詞を名詞欄から抽出し、それを実体化する単元文複数の場合もあるつまりそれを主語とする単元文を探索し、発見された全ての単元文を候補の単元文として名詞SC表図26主語が属す単元文の名詞の正統な主語座標の探索とその付与規則参照にそのTCXを記入する。それら全ての単元文を出発文として当該の主語のある単元文を目的文として、図25-1軌跡文追跡規則Z1系、図25-2軌跡文追跡規則Z2系の操作を行い、全ての候補の単元文から目的文の単元文まで辿り、辿れることを確認する。辿ることが出来れば名詞の正統な主語座標となる。複数個あっても良い。辿れなければ正統な主語座標とはならない。辿り着く候補が1つもない時はプログラムの論理がおかしい。由来不明なデータ項目を使うことになるからである。例えば条件真系の単元文の名詞を主語として当該データ項目を生成する単元文が、同じ条件文の偽系の単元文にあれば、条件真系の当該単元文に辿りつけず当該データ項目は正統な主語座標を持たない。従来はこの操作によって由来を確認せずに、EやFの領域に値があればそのまま使う。上記の操作の規則の実行方法である具体的フローチャートを図26主語が属す単元文の名詞の正統な主語座標の探索とその付与規則に示した。3.2.12主語が属さない単元文の名詞の正統な主語座標の探索とその付与本項目を具体的に述べれば、例えば単元文IFA>0のAについて、それはどこの単元文の生成式で生成したのかを探索する。LYEE空間において主語欄から主語のない単元文を探索し、その単元文に属する名詞を名詞欄から抽出し、それを実体化する単元文複数の場合もあるつまりそれを主語とする単元文を探索し、発見された全ての単元文をSC表図27主語が属さない単元文の名詞の正統な主語座標の探索とその付与規則参照にそのTCXを記入する。それら全ての単元文を出発文として当該の主語のない単元文を目的文として、図25-1軌跡文追跡規則Z1系、図25-2軌跡文追跡規則Z2系の操作を行い、全ての単元文から目的文の単元文まで辿り、辿れることを確認する。辿ることが出来れば名詞の正統な主語座標となる。複数個あっても良い。辿れなければ正統な主語座標とはならない。辿り着く候補が1つもない時はプログラムの論理がおかしい。由来不明なデータ項目を使うことになるからである。従来はこの操作によって由来を確認することなく、Aの領域に値があればそのまま使う。上記の操作の規則の実行方法である具体的フローチャートを図27主語が属さない単元文の名詞の正統な主語座標の探索とその付与規則に示した。3.2.13主語指標と名詞指標に座標を付与LYEE空間の主語指標と名詞指標は制御文の行き先指標と行き先の単元文指標である。制御文の行き先を示す主語指標の主語座標SCは、当該制御文のTCXである。事例ではTCX90GOTOL1の場合、LYEE空間の主語指標欄から当該主語指標L1を探索し、L1[90]と記す。次にLYEE空間の名詞指標欄から当該主語指標L1を探索し、そのTCXを当該名詞指標の名詞座標NCと当該主語指標の名詞座標NCとする。図12LYEE空間事例2/3の事例では下記のようになる。TCX87L1READF1R,FのL1座標表示:L1[87]TCX90GOTOL1のL1座標表示:L18790上記の操作の規則の実行方法である具体的フローチャートを図28標識名の座標付与規則に示した。3.2.14定置名詞、定値、領域名の座標を付与前述の3.2.5項演算子、変数、名詞指標、主語指標、定置名詞、定値、主語、名詞の設置で述べた定置名詞、定値、やデータ項目名を登録する領域名の座標を付与する操作を行う。夫々の領域定義単元文のTCXが夫々の名詞座標NCである。領域名は最小単位でなければならない。最小単位でなければ最小単位に分割され、1個目はその領域文のTCX、2個目からTCXに順次添え字が付与されたTCXとなる。例を下記する。定置名詞:TCX234URIAGEは、URIAGE[234]となる。定値:TCX101A10の10は、10101となる。領域名:TCX32intsumのsumは、sum32となる。上記の操作の方法を図23定置名詞の名詞座標付与規則、図24定値の名詞座標付与規則に示す。3.2.15文脈、条件文の呼応、連動文の定義或るデータ項目当該主語の由来は、その主語が生成する座標、その主語を生成する名詞とそれらの座標、その主語が生成する条件真と偽があると条件に含まれる名詞、定値とそれらの座標、更に当該主語の単元文へ連なっている主語と名詞を共に持たない単元文の座標を得て初めて明らかになる。その由来を文脈と呼ぶ。それはプログラムの最小単位の構造を示す。プログラムの最小の意味の単位である。文脈の識別子は当然の事ながら主語である。なお、前述の課題を解決するための手段の2.4文脈の概念の背景において述べたように、文脈の型の種類は、ベクトルの組合せ即ち単元文の種類の組合せの8種類である。条件文が真の時、最初に遭遇する主語を持つ単元文によりその条件文は生成する生成とは耳慣れない表現かもしれないが、生きるという意味。その単元文を真呼応文と呼ぶ。当該条件文Aが直ちに再び条件文Bに繋がっている場合でも条件文Aから見て最初に遭遇する主語が条件文Bの範囲であればそれが条件文Aの真呼応文である。同時に条件文Bの真、又は偽呼応文でもある。条件文が偽の時、最初に遭遇する主語を持つ単元文によりその条件文は生成する。その単元文を偽呼応文と呼ぶ。当該条件文A偽が直ちに再び条件文Bに繋がっている場合でも条件文A偽から見て最初に遭遇する主語が条件文Bの範囲であればそれが条件文Aの偽呼応文である。同時に条件文Bの真、又は偽呼応文である。また、偽呼応文は条件文の範囲内にある単元文とは限らないであくまでも最初に遭遇する主語を持つ単元文である。主語と名詞を共に持たない単元文単元文A、例えばEND-IF、CLOSEF1が最初に遭遇する主語を持つ単元文単元文Bにより当該単元文Aは生成する。その単元文Bを連動文と呼ぶ。単元文Aを被連動文と呼ぶ。3.2.16条件文に真及び偽の呼応文の座標を付与LYEE空間において単元文種別欄から条件文を抽出し、その条件文Aを出発文として軌跡文追跡規則3.2.8項参照に従って単元文を辿り、Z1系単元文において最初に遭遇する主語を持つ単元文が当該条件文のZ1呼応文3.2.15項の真呼応文と同じである。そのZ1呼応文のTCXがLYEE空間の当該条件文Aの呼応真欄に記される。その呼応文の主語が条件文Aを持つ文脈の主語である。上記の軌跡文追跡規則は引続いてZ2系に探索を移動するが、Z2系単元文に限らず最初に遭遇する主語を持つ単元文が当該条件文のZ2呼応文3.2.15項の偽呼応文と同じである。そのZ2呼応文のTCXがLYEE空間の当該条件文Aの呼応偽欄に記される。それらの呼応文の主語が条件文Aを持つ文脈の主語である。なお当該条件文は被呼応文と呼ぶ。これらの文脈は文脈式として表示される。条件文と呼応文の表示方法は下記である。[条件文のTCX]真呼応=[Z1呼応文TCX]条件文の名詞、定値、定置名詞とその[NC、SC]座標真呼応図11の事例で示せば、[89]真呼応=[87]F[11188]、0[89]真呼応この意味は、TCX87の主語F1をF[11188]と0[89]が89条件文真を通じて内包している。因みに、内包の意味は、X=fA,Bの場合、A,BはXを内包しているという。ここではそれをXA,Bと表示している。[条件文のTCX]偽呼応=[Z2呼応文TCX]条件文の名詞、定値、定置名詞とその[NC、SC]座標偽呼応図11の事例で示せば、[89]偽呼応=[93]F[11188]、0[89]偽呼応この意味は、TCX93の主語EをF[11188]と0[89]が89条件文偽を通じて内包している。上記の操作の具体的方法を図32Z1呼応文探索規則及び図33Z2呼応文探索規則、図25-3軌跡文追跡規則Z1主語系及び図25-4軌跡文追跡規則Z2主語系に示す。なお、最初に遭遇する主語を持つ単元文が当該条件文のZ1呼応文であり、そのZ1呼応文のTCXがLYEE空間の当該条件文Aの呼応真欄に記されるのであるが、当該条件文が直接関わる全ての主語を持つ単元文の文脈後述に当該条件文を表示したい時は当該条件文Aの呼応欄にそれらの全ての単元文のTCXを記してもよい。3.2.17主語と名詞を共に持たない単元文に連動文の座標を付与主語と名詞を共に持たない単元文には、制御文と翻訳文がある。これらを被連動文と呼ぶ。LYEE空間において文種欄から制御文、翻訳文、これらを当該単元文Aとするを抽出し、当該単元文Aを出発文として単元文を辿り、最初に遭遇する主語を持つ単元文が当該単元文の連動文である。その連動文のTCXがLYEE空間の当該単元文Aの連動欄に記される。それらの連動文の主語が連動文Aを持つ文脈の主語である。これらの文脈式の中の被連動文と連動文の表示方法は下記である。[被連動文のTCX]連動=[連動文のTCX]被連動文の表示とその[SC]座標。被連動文が制御文の場合は制御文表示とその指標の[NC、SC]座標連動図11の事例で示せば、翻訳文の場合:[91]連動=[93]連動制御文の場合:[90]連動=[87]連動上記の操作の具体的方法を図34連動文探索規則、図25-3軌跡文追跡規則Z1主語系及び図25-4軌跡文追跡規則Z2主語系に示す。なお、呼応、連動の概念が創生されたのは、前述の2.4項文脈の概念の背景で述べたように、ベクトルの組合せとして文脈の型8種が発見発明されたからである。文脈の型が発見発明されなければ呼応と連動の概念は生まれなかった。3.2.18SSとGSの作成本発明の原理は形而上学的思考から生まれてきたものである。そこではプログラムは単元文という部品から成り立ち、その部品の解実体化は座標が付与された単元文であるとして捉えている。プログラムの単元文に座標を付与するとは、単元文とそれを構成する全てのデータ項目、定置名詞、定値、指標等に名詞座標と主語座標を付与する事である。座標を付与する事を単元文の超言語化と呼ぶ。超言語化された単元文は特殊解であるのでSpecifiedSolutionforProgramMetaLanguageとし、略してSSと名づけた。これまでの操作によって、LYEE空間に展開されている各単元文のデータ項目、定置名詞、定値、指標等は既に主語座標と名詞座標が付与されている。その付与の方法は以下の項目で述べた。3.2.9主語に主語座標を付与3.2.10主語と名詞に名詞座標を付与3.2.11主語が属す単元文の名詞の正統な主語座標の探索とその付与3.2.12主語が属さない単元文の名詞の正統な主語座標の探索とその付与3.2.13主語指標と名詞指標に座標を付与3.2.14定置名詞、定値、領域名の座標を付与SSの表記の仕方は、[単元文TCX]座標が付与された単元文である。事例として図13LYEE空間の例3/3のSS欄を参照されたい。そこではセパレータ|印が記されているが、セパレーターをつけてもつけなくても良い。次にGSについて述べる。GSとはGeneralSolutionforProgramMetaLanguageの略である。上記のSSを一般化したものである。各SSについて、まず単元文TCXをXと表示し、次に各単元文の各データ項目についてLYEE空間の主語欄、名詞欄、定置名詞欄、定値欄、主語指標欄、名詞指標欄を見て、夫々の欄に記されている名称に変換して単元文を記す。一般化された表現でも一目で属性が分るようにするためである。名称の略称について、主語は主、名詞は名、定置名詞は置、定値は値、主語指標は標、名詞指標は標等とすると簡単になって良い。各データ項目の座標については、単元文のTCXと同じものはX、その他はN名詞座標NCのN、S主語座標SCのSというように一般形で表示すればよい。事例として図13LYEE空間の例3/3のGS欄を参照されたい。ここまでの操作3.2.1項~3.2.18項の操作でLYEE空間の全ての欄が埋まり完成された。これで全てのデータ項目の由来、つまり個々のデータ項目について、如何なる座標の如何なるデータ項目によって生成され、且つ如何なる座標の条件で如何なる座標の如何なるデータ項目の元に生成されるのか、さらに如何なる座標の如何なる単元文が直前にあったのか、が一目瞭然となる。全データ項目の由来が明らかになったのである。これをもって次項の文脈と主語系譜を生成するための準備が整った。繰り返しであるが、従来のプログラムでは、このデータ項目の由来、それは全データ項目間の詳細且つ具体的な内包関係そのものであるが、それは全く分らない。ブラックボックスの中である。その中を知りたければ、プログラマーがプログラムを辿って分析しなければならない。それには天文学的な労力と時間が必要であり、事実上不可能である。実際はテストデータで部分的に覗いているに過ぎない。そして、ブラックボックスの中味が分らないままプログラムを実用に供せざるを得ないのである。かくしてプログラムエラーが根絶できないまま実用に供せざるを得ないのである。3.3文脈と文脈式の生成文脈とは、或るデータ項目について如何なる座標にあり如何なる座標の如何なるデータ項目によって生成し、如何なる座標の条件文と、その条件文の如何なる座標の如何なるデータ項目と、その条件文の真又は偽のどちらを条件として生成し、如何なる座標の如何なる被連動文を経由して生成したのか。を示す情報である。これが個々のデータ項目を生成させるための必要十分な情報であり、その意味でプログラムの意味の最小単位である。それは要件の意味の単位化であり本発明によって初めて提唱された概念である。これによってプログラムテストにおいて要件との調和性を要件の意味の単位まで細分して、それら毎に診断が出来るようになった。従来は単位化はプログラムの機能即ちデータの処理方法毎には出来たが、意味の単位化データの由来の単位化の概念がなかったので意味の単位にまで遡って診断する事は出来なかった。文脈は必ず主語についての文脈である。なぜなら上記のとおり或るデータ項目の生成の由来を示すものであるから主語の由来であることは当然である。従来、プログラム或いはソースコードでは、或るデータ項目について、それを生成するための関数式のデータ項目や条件式のデータ項目までは分ったが、それらのデータ項目の由来については一切関知しない。その領域に値があれば使うだけである。或るデータ項目について、本当は別の座標で生成する値を使うべきなのに、直近に生成したそのデータ項目の領域に入っている値を使ったとしても全く正誤は分らないのである。つまり個々のデータ項目の生成の妥当性についてはプログラムは問わないのである。文脈を生成する事は、既にLYEE空間に全て必要な情報は準備されているのでそれを使うだけで可能である。以下にその方法について述べる。LYEE空間の主語欄から主語を抽出し、その主語について、それを主語とするSSから名詞、定値、定置名詞を抽出し、LYEE空間の条件文の真呼応欄から当該主語の座標のTCXがあればその条件文のTCXをもってその主語に[被呼応条件文のTCX]真呼応と記し、同様にLYEE空間の条件文の偽呼応欄について上記と同様の所作を行い、その条件文の名詞、定値、定置名詞を座標と共に抽出し、LYEE空間の被連動文の連動欄被連動文の連動欄に連動文のTCXが記されているから当該主語の座標のTCXがあればその被連動文のTCXをもってその主語に[被連動文のTCX]連動と記す。これで或る主語の文脈の出来上がりである。文脈を表す文脈式は次のように表示する。[主語のある単元文のTCX=X]=主語[NX]主語を生成する名詞、定値、定置名詞[NS]、[被呼応条件文のTCX]真又は偽呼応、[被連動文のTCX]連動図11の事例で示せば、TCX93EB-Fについて、[93]E[3593]と表示される。ここで表示された[被呼応条件文のTCX]真又は偽呼応、と[被連動文のTCX]連動については、省略した表現である。本来は3.2.16項、3.2.17項に述べた下記のように表現する。[被呼応条件文のTCX]真呼応=[Z1呼応文TCX]条件文の名詞、定値、定置名詞とその[N、S]座標真呼応[被呼応条件文のTCX]偽呼応=[Z2呼応文TCX]条件文の名詞、定値、定置名詞とその[N、S]座標偽呼応事例では、[89]偽呼応=[93]F[11188]、0[89]偽呼応と表示される。[被連動文のTCX]連動=[連動文のTCX]被連動文の表示とその[S]座標。被連動文が制御文の場合は制御文表示とその指標の[N、S]座標連動事例では、[91]連動=[93]連動[92]連動=[93]連動と表示される。事例として図35文脈式の要素の文脈式の要素欄を参照されたい。その中で単元文が主語を持つものが文脈である。更にそれらをグラフ化したものが図36文脈のグラフ表示例である。3.4主語系譜の生成主語系譜をSGと略す。主語系譜とは全てのデータ項目の内包関係である。例えば、A=BC及びその条件文IFD<Eから成る文脈を想定する。文脈Aの1つの名詞として使われているデータ項目Dは名詞座標と主語座標を付与されているのでそれらを主語とする文脈Dは文脈式リストを探索すれば容易に見出せる。かくして文脈Aと文脈Dは連結された。同様な操作を名詞B、C、Eについて行う。このような操作を連鎖的に行えば、全てのデータ項目が文脈として連鎖的に連結され全てのデータ項目の内包関係が形成される。これが即ち主語系譜である。以上の説明は、図36文脈のグラフ表示例、図37SG例グラフ表示、図38超言語空間MLSに成立する主語系譜を参照すると容易に理解できる。以上の文脈から主語系譜を導出する方法は、図39超言語空間MLSに成立する主語系譜の生成規則に示す。以上によって、従来、全データ項目の内包関係という極めて重要な情報は、プログラムに明示されていないのでブラックボックスの中に隠されていたが、その重要な情報の全てが一目瞭然に表された。それはプログラムの全データ項目の実行様相、即ち全データが内包関係に従って逐次実現して行く様相を明示するものである。上述の長い説明は、ひとえにこの全データ項目の内包関係という極めて重要な情報を自動生成する方法についての説明であった。そのために壮大な体系の構築が必要であった。<本発明によってなし得ること>目次1.効果を発揮する発明の真髄及び従来は出来なかったこと2.具体的効果2.1プログラム診断への適用2.1.1データ項目の正統性診断2.1.2浮島主語の診断2.1.3データ項目の妥当性診断2.1.4データ項目の回帰診断2.1.5プログラムの洗練性診断2.1.6プログラムの要件変更の波及範囲の診断2.1.7プログラムと要件の調和性診断及び要件の妥当性診断1データ項目間のあるべき内包関係とその順序の診断2条件とデータ項目間のあるべき内包関係の有無の診断3要件定義者が要件とプログラムの調和性診断と要件そのものの妥当性の診断を自ら行うことが出来る2.1.8プログラムのテストデータによる診断の軽減1.効果を発揮する発明の真髄及び従来は出来なかったこと本発明の真髄は、プログラムの中の全データ項目についてその個々の生成に関して、如何なる座標で生成され、如何なる座標の如何なるデータ項目によって生成し、如何なる座標の条件文と、その条件文に含まれる如何なる座標の如何なるデータ項目と、その条件文の真又は偽のどちらを条件として生成し、如何なる座標の如何なる被連動文を経由して生成したのか。そして全データ項目についてその任意の個々のデータ項目について、そのデータ項目が生成するために必要である全てのデータ項目の主語系譜先祖部分主語系譜と呼ぶ、また全データ項目についてその任意の個々のデータ項目について、そのデータ項目が生成に必要である他のデータ項目全ての主語系譜子孫部分主語系譜と呼ぶ、の諸情報を自動的にソースコードから抽出して表示することである。それが本発明の真髄である。それがプログラム診断、開発、保守、言語変換の諸作業の革命的進化への道を開いた。従来はこれらの情報はブラックボックスの中に隠されて見えなかった情報である。前述のように、従来、プログラムのソースコードでは、或るデータ項目について、それを生成するための関数式のデータ項目や条件式のデータ項目までは明示されており容易に分ったが、それらの生成の基であるデータ項目の由来については一切関知しない。その領域に値があればそれを使うだけである。或るデータ項目について、本当は別の座標で生成する値を使うべきなのに、プログラム上直近に生成したそのデータ項目の領域に入っている値を使うことになっておりそれは要件上間違いだとしても、プログラムは全く関知しないのである。つまり個々のデータ項目の生成の妥当性についてはプログラムは何ら問わないのである。上記のように、本発明は全データ項目について、その生成の順序即ち過去と未来の系譜を自動的に明らかにする。一方プログラムは単に処理の順序を示すものでありデータ項目の生成の順序を示すものではない。両者は全く別物である。全データ項目の生成の順序、即ち系譜を知りたければ、人が多大な労力とコストをかけてプログラムを辿って得なければならない。実際上は不可能であり実行していない。データ項目の生成の順序即ち系譜は、ひとえにプログラマーやSEの頭の中だけで制御している。即ち、膨大なデータ項目間の生成の順序を間違えないように、そのデータ項目を使用する段階で必ずその前に当該データの値が生成しているように、更にまた、直前に生成した当該データ項目の値は、それがどんなにプログラムの処理工程上遠くで生成したとしても、要件で意図した通り正しく導出されているように、細心の注意を払ってエラーがないようにプログラムを書いていく。しかし、エラーを根絶する事は人知の及ぶ所ではない。入念なチェックを重ねても必ずエラーは残り潜在する。だから社会システムを揺るがすようなシステムエラーが、たとえ長期間正常に稼動していた後でも、入力データの状況によって突如発生し顕在化する。根源的原因は、プログラムは処理の順序を表示するものであって、データ項目の生成の順序を表示するものではなく、それは目に見えないものであり極めて複雑な内包関係であるから診断が困難であるという事実である。本発明ではこの重大な根源的課題を、座標付与超言語化、文脈、主語系譜によって一気に解決する。それらを自動的に一目瞭然に表示する。これによって、プログラム診断で今まで出来なかったことが一気に出来るようになる。この意味において、本発明の意味する所はプログラム品質の革命である。2.具体的効果2.1プログラム診断本発明によって、以下の項目に示すような診断が、自動的に且つ容易に出来るようになる。2.1.1データ項目の正統性診断前記の課題を解決するための手段の3.2.11項主語が属す単元文の名詞の正統な主語座標の探索とその付与で述べたように、個々のデータ項目について、その由来が存在するかどうかの正統性を確認することができる。由来が一つもなければそのデータ項目は意図され要件で示されたデータ項目によって生成されたのではない。従来このような診断を自動的にする方法はなかった。その診断はプログラムのコンパイラーでもデータ処理するコンピュータでもしてくれない。単にデータ項目の領域にある値を使うだけである。2.1.2浮島主語の診断一つのデータ項目についてその文脈が作れず且つインプットデータ項目でない場合、そのデータ項目を浮島主語と言う。インプットデータ項目でなく且つ文脈が作れない場合とは、文脈主語を内包するデータ項目がない場合か或いはデータ項目があってもそれらに座標がない場合である。本発明によって浮島主語の存在不存在の診断、更に浮島主語になる原因の解明が出来る。従来このような診断を自動的にする方法はなかった。従来はデータ項目の座標つまりそのデータ項目の由来が不明であっても、それを検出できなかった。浮島主語を人がソースコードをたどって見出すことは、ソースコードにはデータ項目間の内包関係が示されていないので困難であり多大な労力と時間を費やさなければならない。2.1.3データ項目の妥当性診断全ての個々の単元文を出発文として、前記の課題を解決するための手段の3.2.8項出発文から目的文への辿る方法の軌跡文追跡規則を適用して、全て終局文EXITSTOPRETURNEND等に到達するかどうかを確認し、到達しない出発単元文を妥当性欠落表に記す。このような単元文があると、プログラム稼働中に入力データによってはその単元文を通過する事になるが、その場合コンピュータは終局しない。コンピュータは無限ループに入るか、停止する。本発明によって斯く単元文を発見することが出来る。上記の操作の具体的方法を図29プログラムの妥当性診断規則に示す。従来このような診断を自動的にする方法はなかった。2.1.4データ項目の回帰診断コンピュータによるプログラムの処理は基本的にはソースコードに記述されている順序で行う。条件文、制御文、呼出文等によってソースコードに記述されている順序とは異なる順序になることも当然あり得る。しかし基本的にはソースコードに記述されている順序である。従って、そのソースコードの記述順序に従うLYEE空間の単元文の処理順序も基本的には単元文の記述順序である。単元文の記述順序は単元文のTCXに記されている。或る単元文を処理する時に、当該単元文に含まれる名詞のデータ項目が生成される座標のTCXが当該単元文の座標のTCXよりも大きいか等しい場合は、未来か現在に生成されるデータ項目によって現在のデータ項目が生成されることになる。データ項目の値の生成の順序が正常でないことになる。このような場合は時制律に疑問があるという。その場合、必ずしも間違いでないこともあるが、それでよいのか十分検討する必要がある。時制律に問題がある場合、プログラムエラーか、前周期の値を使うのでそれで正しいのか、制御文等により処理順序と記述順序が合致しないのでそれでよいのか、などの検討を必要とする。時制律に疑問がある場合、当該単元文は回帰していると言う。回帰には2種類ある。関数文のデータ項目に発症する回帰をL4型回帰と言い、条件文のデータ項目に発症する回帰をL3型回帰と言う。L4型回帰の場合は、不適切な値を使って当該データ項目の値を得る恐れがある。得られるデータの値は遥動しておかしな値となる。一方、L3型回帰の場合は、不適切な条件を使って当該データ項目の値を得る恐れがある。この結果広域に渡り領域の値が破壊される。従来、これらの現象の机上診断は困難であり、テストでもこの現象を発症させることは難しかった。本発明によって斯く単元文を発見することが出来る。上記の操作の具体的方法を図30L4型回帰診断規則及び図31L3型回帰診断規則に示す。回帰症状の具体例として図10回帰診断例に示す。従来このような診断を自動的にする方法はなかった。本発明のような手段がなくても、回帰症状を発症する原因のデータ項目が当該単元文の行の近傍に位置していれば人によってでも比較的容易に見つけることができる。データ項目の処理上やデータの内包関係上遠くに位置している場合は、人が見つけることはほとんど不可能である。ソースコードにはデータ項目間の内包関係が示されていないのでそれを見出すには余りにも多大な労力と時間を費やさなければならないからである。2.1.5プログラムの洗練性診断プログラムにおいて論理上間違いではないが、洗練性の観点から問題があるプログラムを本発明によって診断評価を行うことが出来る。プログラムの洗練性とは、プログラムの冗長性、複雑性、および時間的効率性の程度のことである。これらは下に説明するように或る特性を持つ主語のその全プログラムの中の主語との割合によって評価される。1重複主語:文脈主語において、主語の名称と内容が同一の文脈で文脈主語の座標だけが異なる文脈主語。この主語の割合が多いと冗長性が高い。2多重主語:文脈主語において、主語の名称が同一であるが、その条件文の内容と文脈主語の座標が異なる文脈主語。この主語の割合が多いと複雑性が高い。3拡散主語:文脈主語において、その条件文に含まれる名詞の数が多い文脈主語。この主語の割合が多いと複雑性が高い。人がプログラム内容を把握管理することが複雑困難になる。4集約主語:文脈主語において、その主語が他の文脈の条件文にも使われる場合が多い文脈主語。この主語の割合が多いと冗長性が低く、プログラムは簡明となる。これらの主語の全体の主語の中の占有率によってそのプログラムの洗練性プログラムの品質レベルが計ることができる。これらの情報は、本発明の文脈と主語系譜に示されているので容易に得ることができる。人がこれらを探し出すことは、人が膨大なソースコードの中から一つ一つソースコードをたどって探す以外に方法はなく、多大な労力と時間を費やしかつ精度も低い。これらを探すことは事実上非常に困難であるから実際にはこれらの診断はほとんど行われていない。この困難性の理由は、繰り返し述べているようにソースコードにはデータ項目間の関係が示されていないからである。従来このような診断を自動的にする方法はなかった。2.1.6プログラムの要件変更の波及範囲の診断要件の変更は業務の変更進化によって必然的に起こるし、変化の急な業界では頻繁に起こる。それは当然プログラムの変更を必要とし、頻繁にプログラマーに要請される。その際、プログラムのソースコードの一箇所を変更すれば、その影響はソースコードの他の箇所にも波及しその箇所も変更が必要となる場合が多い。一箇所の要件の変更がプログラムのどこに波及するか、更にどこまで波及するかを膨大なソースコードの中で探すことは容易ではない。なぜなら、要件変更の波及を追うことは、変更されたデータ項目と他のデータ項目との関連を連鎖的にたどって追って他のデータ項目の生成条件と生成式について必要な変更をすることである。しかし前述の通り、ソースコードは処理順序を指示しているだけであって、データ項目間の生成関係を直接示していない。従来はそれを知るためには人がソースコードを一つ一つたどって追って調べなければならない。膨大なソースコードをたどることは容易なことではない。このため要件の変更は要望があってもできるだけ避けられている。この困難な課題を本発明による文脈と主語系譜が一気に解決する。以下に詳細に説明する。要件の変更の種類としては、1或るデータ項目の生成式と生成条件の変更、2或るデータ項目の削除、3新しいデータ項目の生成式と生成条件の付加、の3種がある。それらは正に文脈の変更、削除、追加である。或る要件を変更すると、それに伴って業務的或いは物理的に変更しなければならない要件が出てくる場合が多い。例えば、先入れ先出し方式から先入れ後出し方式に変更する場合、それに関する一連の要件変更が必要になる。そこでその要件変更に従ってプログラムを変更するが、問題はそれらのプログラム変更だけで済むかどうかである。それらのプログラム変更を行えば、プログラムの他の場所も変更が必要になる場合が多い。この事こそ要件変更が難しい原因である。例えば、下記のプログラムがあったとする。TCX101IFA<BTCX102C=DEこの文脈は[102]=C[21、102]D[22、95]、E[23、96]、[102]A[11、91]、B[12、92]真呼応と表示される。もし、上記の文脈がTCX101IFA<FTCX102C=DEと変更されると、業務上関連する他の要件が下記のように変更しなければならなくなるとする。そしてそれ以外には要件変更はないとする。TCX201IFG<HTCX202I=JKからTCX201IFG<LTCX202I=JMへの変更となる。つまり、要件定義者は、文脈[102]と文脈[202]の変更が必要であることは認識し、そのように要件を変更するようプログラマーに要請したとする。これに応じてプログラマーはその通りプログラムを変更した。問題はそれだけで良いのかどうか、プログラムの他の部分を変更しなくても良いのか、何処を変更すべきなのかの診断である。従来はソースコードを辿らなければ分らなかった。それは大変な作業である。本発明の主語系譜によれば、その診断は容易である。下記の図を参考にして説明する。先ず変更された文脈主語Cを名詞として使う文脈を主語系譜から探索し、それらをC1、C2、C3とする。それらの文脈の変更が必要かどうかを要件定義者は検査確認する。C3は変更が必要であったが、C1、C2は変更が必要でなかったとする。更に変更が必要なC3の文脈の変更をした後でC3を名詞として使う文脈を主語系譜から探索しそれらをC31、C32とする。それらの文脈の変更が必要かどうかを要件定義者は検査確認する。必要でなければ、必要がなかった文脈はC1、C2、C31、C32である。それらを含んでそれら以降のCの子孫主語系譜は変更が必要でないことが主語系譜が保証している。なぜならば、主語系譜は文脈の内包関係の連鎖であるし、主語系譜の変更の伝播は文脈を通じてのみ可能であるので、内包連鎖の途中の一つの文脈が変更なしとするとそれ以降の文脈は、業務要件上の必要な変更は除いて、伝播する変更がないのでそれ以降の文脈は変更なしとならざるを得ない。同様の操作を文脈Iについて行う。以上を要約すれば、1要件変更は文脈の変更である、2要件の一連の変更を行った後で、その波及限界は、変更した文脈の子孫文脈当該文脈主語を名詞としてそれに内包される文脈と、同様に以降連鎖して内包される文脈の総称について、変更が初めて必要でなくなる文脈に使われる名詞を文脈主語とする文脈が変更の影響が及ぶ限界の文脈である。以上の操作によって、プログラムの変更に付きまとう最も困難で且つ2次的なエラーが発生しやすい波及範囲の特定作業が大幅に改善される。勿論文脈の追跡過程は任意の範囲で行えるので、変更の追跡も任意の範囲で行える。最終的なアウトプットデータ項目まで主語系譜を辿って確認することも容易である。従来このような診断をする方法はなかった。従来の方法は、プログラムを構文解析して波及の限界を探索している。しかし要件変更とは意味の単位である文脈の変更であり、構文解析では文脈の内包関係の変更を直接捉えることは出来ない。したがって変更の波及限界を捉えるためには構文解析では不十分である。2.1.7要件とプログラムの調和性診断及び要件の妥当性診断要件とプログラムは調和していなければならない。要件とプログラムの調和とは、要件の意味が完全にプログラムに十分に織り込まれていることである。その調和性の診断を人が行う場合、比較的容易な場合と困難又は不可能な場合がある。比較的容易な場合は、各データ項目の生成式とその直接的な生成条件を調べる場合である。これはプログラムに明示してあるし、夫々がソースコードにおいて近傍に記載されているので人が調べることは比較的容易である。困難又は不可能な場合とは、先ず生成条件が重層構造になっている場合であり、条件式と生成式が何層にもなり且つ離れて記載されている場合である。これはプログラムに明示はしてあるが、人が調べることは相当困難で、事実上不可能なことも多い。人の診断が全く不可能である診断は全データ項目間或いは全単元文間の内包関係が要件に調和しているかどうかの診断である。それらの診断について以下に述べる。1データ項目間のあるべき内包関係とその順序の診断:例えば、要件上、データ項目Bの生成にはどこかでデータ項目Aが生成式の中か条件式の中かいずれにしても必ず関わっていなければならない場合、主語系譜においてデータ項目Bの先祖部分主語系譜の中にデータ項目Aが属しているかどうかを調べれば、そのプログラムの要件との調和性が直ちに確認できる。データ項目AとBは直接一つの文脈内で関わっていなくても幾つかの文脈を経由して関わっていればよい。超言語空間に成立する主語系譜図38において、文脈主語をBとし、その名詞を参照し、それを主語とする文脈を参照し、さらに同様な操作を繰り返し、やがてAを名詞として持つ文脈に辿り着ければ要件が確認できたことになる。それらの個々の文脈を見ればどのような系譜でAとBが関わっているか一目瞭然である。つまりBはAに内包されているかの診断である。上記の説明では、データ項目Aとデータ項目Bの2つの間の内包関係の有無の診断であった。しかし同様に、主語系譜ではデータ項目Bに関わる全てのインプットデータ項目に始まりデータ項目Bに至る過程の全てのデータ項目とそれらの生成の順序を示すことが出来る。これはデータ項目の祖先主語系譜の表示である。このことはプログラムと要件の調和性診断に大きな効果をもたらす。なぜならプログラムは意味データ項目間の内包関係に関係なく、コンピュタの処理順序を表示する、に対し、主語系譜はコンピュータの処理順序に関係なく、意味データ項目間の内包関係の成立順序を表示している。即ちデータ項目の内包関係順序こそ要件の真髄でありそれこそ要件を表すものである。だからプログラムから自動生成された主語系譜のデータ項目の内包関係の順序を見れば、プログラムと要件の調和性を診断できるのである。主語系譜によりプログラムと要件の調和性の診断が初めて出来ることになった。従来は、意味はプログラマーの頭の中にありブラックボックス中にあった。主語系譜によってそれが表示された。この作業をプログラムのソースコードで行なおうとしても、プログラムは処理の順序を示すのみでデータ項目の内包関係は明示されていないので、内包関係を知るにはプログラムを一行一行辿って探り出さなければならない。それには多大な労力と時間を費やさなければならない。したがって事実上は実行されていない。データ項目の内包関係を診断しなければ、データ項目間の内包関係の誤謬を見逃し、そのためのプログラムエラーがどうしても残存潜在する。いつ踏むかもしれない地雷を常に抱えて運用しているのである。2条件とデータ項目間のあるべき内包関係の有無の診断:例えば、要件上、或る条件文A名詞α、βを持つが真の時、必ず或る単元文B主語Bを持つ単元文が処理されなければならない場合、主語系譜において、主語Bを持つ単元文が当該真条件文Aを含んだ文脈に行き着けるかどうかを調べれば、そのプログラムの要件との調和性が直ちに確認できる。主語系譜図38において文脈主語をBとし、その名詞を参照し、それを主語とする文脈を主語系譜から探索し、さらに繰り返し、やがて条件文Aを被真呼応文として持つ文脈に辿り着ければ要件との調和性が確認できたことになる。それらの個々の文脈を見ればどのような系譜でAα、βとBが関わっているか一目瞭然である。この作業は主語系譜が構築されていれば極めて簡単である。若し主語系譜において文脈Bの先祖部分主語系譜を探索しても条件文A即ちα、βを名詞として持つ文脈を見出せなければ、そのプログラムは要件との調和性を欠いていることになる。なお、任意の主語に関わる全ての条件文を抽出するプログラムツールは条件網羅法として既に存在する。しかし条件が多層になっている場合、複雑すぎて人にとってその診断は相当困難である。また全てのデータ項目間の内包関係を表示していないので意味の診断は出来ない。一方主語系譜の診断では、条件が多層になっていても、関与データ項目だけの形として多層条件を単純化して表示出きるので診断し易い。例えば、頻発する社会インフラにおけるシステム障害について、入力データ量がシステムの処理能力を超えた事が原因と言う説明が度々なされている。しかしハードウェアとは違って、プログラムが入力処理量がその処理能力を超えると壊れてしまうとはにわかには信じ難い。おそらく処理能力を超えたことによって潜在していた何らかのプログラミングエラーが突如現れたと考えられる。これらの潜在する問題は主語系譜による診断によって、処理能力を超える場合の真条件を含む文脈の子孫部分主語系譜を抽出し予め調べ、その中に超過時の適切な処理プログラムを確認しておけば防止できた障害と考える。この種のシステムダウンは枚挙に暇がない。この作業をプログラムのソースコードで行なおうとしても、前述の通りプログラムは処理の順序を示すのみでデータ項目間の内包関係は明示されていないので、内包関係を知るにはプログラムを一行一行辿って探り出さなければならない。それには多大な労力と時間を費やさなければならない。したがって事実上は実行されていない。全データ項目間の内包関係を診断しなければプログラムエラーがどうしても残存潜在し、いつ踏むかもしれない地雷を常に抱えて運用しているのである。3要件定義者がプログラムと要件の調和性診断と要件そのものの妥当性の診断を自ら行うことが出来る。主語系譜SGSubjectGenealogyはプログラムの意味の構造をデータ項目間の内包関係で詳細に明示する。但し個々の生成式や条件判定式の具体的演算子は明示しない。しかしそれらはプログラムに明示されているので比較的診断が容易である。SGはただデータ項目名とその座標だけで表現されているので、全てのコンピュータ言語の文法に共通である。前述の通り従来このデータ項目の内包関係はブラックボックスであった。それを捉えるにはプログラムを読み辿る膨大な作業が必要であった。要件定義者は複雑なコンピュータ言語のソースコードを読む必要はもはやない。上記の通り、主語系譜はデータ項目名だけの記述である。それだけで表された全データの内包関係は、それを構成する文脈の論理が単純だし、プログラムに使用される英数字で記された主語系譜のデータ項目名は、プログラマーの手元にある英数字名と漢字ひらがな名の対応表をベースに変換すれば、簡単に漢字ひらがなで表現ができる。プログラムの意味である主語系譜が漢字ひらがな表現で出来たのである。プログラムが誰でも読める漢字ひらがな表現のデータ項目だけで表現できたのである。これによって要件定義者はプログラムのエラー、更には要件そのものの妥当性を診断する手段を持つことになる。要件定義者は上記1、2のようなプログラムと要件の調和性を自ら診断できる手段を持ったことになる。そうすれば要件定義者が自らプログラムを検証し、また逆に要件の妥当性を検証確認することが出来る。それに基づき必要があれば要件のエラーや追加変更をすることが容易に出来る。従来このようなデータ項目の内包関係に基づいて要件定義者自身が自ら要件についての診断する手段は全く存在していなかった。2.1.8プログラムのテストデータによる診断の軽減一般的にプログラムの診断の一つとして、サンプルデータによってプログラムを動かしてテストを行う。プログラムは普通数多くの条件分岐を含むので、プログラムの全ての処理経路を通すためのテストデータを準備して全てのケースをテストすることは、ケースとデータの数が膨大となり実際上不可能である。事実上は部分的なテストしか実行する事はできない。したがってどんなプログラムにもサンプルデータによるテストで見逃した不具合が必ず残っているものである。その結果、プログラムを完成し実用化してから後に相当期間を経てエラーが突如出てくるのである。いつそのエラーが起こり、間違ったアウトプットが出たりコンピュータがダウンするかわからない所に恐ろしさがある。一方、上述のような文脈と主語系譜による診断は診断の漏れが全くない。全ての実行様相を表示しているのでそれを診断すれば全処理経路をテストしたことと同一である。したがって、論理的にはサンプルデータによるプログラムの実運転テストは必要がない。この意味でテストの負荷を劇的に軽減させる。"