(57)【要約】【課題】  ウイルス問題に対する根本的な解決方法を提供すること、すなわち、ウイルスによる汚染を自律的に検出し除染し復元しつつ本業の処理を完遂するプログラムの方法を提供すること。【解決手段】  要件に係る全ての変数の値をデータ結合によって生成する手順をコンピュータに実行させるプログラムであって、主語を生成する際に、主語の成立条件と変数主語の正統性が成立することを判定し、是の場合のみ正統性を持つ主語として生成し、否の場合は正統性を持つ主語の生成は以後の逐次循環繰り返しの処理で行う。【選択図】図１
2017138809.tif 000002
【特許請求の範囲】
【請求項１】
要件に係る全ての変数の値をデータ結合によって生成する手順をコンピュータに実行させるプログラムであって、
主語を生成する際に、主語の成立条件と変数主語の正統性が成立することを判定し、是の場合のみ正統性を持つ主語として生成し、否の場合は正統性を持つ主語の生成は以後の逐次循環繰り返しの処理で行う、
ことを特徴とするプログラム。
【請求項２】
請求項１記載の主語を生成する手順をベクトルによって実行する、ことを特徴とするプログラム。
【請求項３】
要件を単元文の命令文として表現し、それらの代入文及び出力文をまとめて集合１（パレット４）とし、入力文と定値文をまとめて集合２（パレット２）とし、条件文をまとめて集合３（パレット３）として、集合１、２、３の順序で夫々の集合内でデータ結合処理を行って変数の値を生成し、更に同様な処理を集合１，２，３の順序で循環繰り返す、
ことを特徴とする請求項２記載のプログラム。
【請求項４】
正統に生成された主語、第２フラグ、第６フラグ、第７フラグの汚染を観察し、汚染が検出されれば、該主語に係わるベクトルを初期値化することによって除染し、また、主語生成累積数の汚染を観察し、汚染が検出されれば、プログラムの緊急停止をさせるウィルス観察アルゴリズムプログラムを各ベクトルの実行の前に実行させる、
ことを特徴とする請求項３記載のプログラム。
【請求項５】
主語生成累積数の推移（ＮＳ１、２、３、４・・・）によって、正統な主語が生成される可能性の有無、及び、頻発する汚染を命令破壊と捉えてプログラムを停止させるかどうか、の判定をする、
ことを特徴とする請求項４記載のプログラム。
【請求項６】
下記に列記するプログラム群によって構成されるシナリオ関数と呼ぶプログラムの手順をコンピュータに実行させる、
ことを特徴とする請求項５記載のプログラム。
（１）同期関数  ：座標関数４、２、３を統治するプログラム、
（２）座標関数４：次のベクトル即ちＬ４、Ｗ４、Ｅ４１、Ｅ４２、Ｔ４を統治するプログラム。
（３）座標関数２：次のベクトル即ちＬ２、Ｒ２、Ｔ２を統治するプログラム。
（４）座標関数３：次のベクトル即ちＬ３、Ｔ３１を統治するプログラム。
（５）Ｌ４      ：正統な主語を決定するプログラム。
（４）Ｗ４      ：正統な主語を外部記憶領域に出力するプログラム。
（５）Ｅ４１    ：プログラムの正常終了を同期関数に告げるプログラム。
（６）Ｅ４２    ：シナリオ関数の異常を座標関数に告げるプログラム。
（７）Ｔ４      ：座標関数４を座標関数２へ切り替えることを同期関数に告げるプログラム。
（８）Ｌ２      ：定値数を正統な主語に決定するプログラム。
（９）Ｒ２      ：指定するデータ領域に外部データを受信するプログラム。
（１０）Ｔ２    ：座標関数２を座標関数３へ切り替えることを同期関数に告げるプログラム）
（１１）Ｌ３    ：正統な第４領域を判定するプログラム。
（１２）Ｔ３１  ：座標関数３を本シナリオ関数の座標関数４へ切り替えることを同期関数に告げるプログラム。
（１３）Ｔ３２  ：座標関数３を隣下のシナリオ関数の座標関数４へ切り替えることを同期関数に告げるプログラム。
（１４）Ｔ３３  ：座標関数３を最上位のシナリオ関数の座標関数３へ切り替えることを同期関数に告げるプログラム。
（１５）ウィルス観察アルゴリズム
：ベクトルごとに設定されるプログラムで、ベクトルが決定した後の主語の汚染の検出と、汚染検出の場合は当該ベクトルを初期値化（除染）する役割を担うプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの構造論に係り、構造的にコンピュータウイルス（以降、単に「ウイルス」ともいう。）問題を解決する方法に関し、さらに具体的には、ウィルスを無力化しながら業務処理をコンピュータに実行させるデータ結合型プログラムに関する。
【背景技術】
【０００２】
ウイルス問題はコンピュータ社会をひとたまりもなく崩壊させる潜在力を有し、且つ誰もこの問題を根本的に解決できない状況になっている。この深刻なウイルス問題に対して現状の施策はウイルスの侵入を入口で阻む（ファイアーウォール）という発想に終始している。しかし、プログラムへのウィルスの侵入は完全には阻止することができないと考えられている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本来、進化したウイルスなら１個のウイルスで電子計算機システムを瓦解させることが可能となることに鑑みれば、ウイルスは１個でもプログラムに侵入させてはならない、というのがウイルス問題に対する正しい認識である。したがって、ウイルス問題の解決は、ウィルスの侵入を完全には阻止できない現状のファイアーウオール的な方法では成就できない。即ち、その為の解決の原理を発見しなければ、ウイルス問題は解決することができない。
【０００４】
本発明は、こうした従来技術の問題点を解決するもので、ウイルス問題に対する根本的な解決方法を提供すること、すなわち、ウイルスによる汚染を自律的に検出し除染し復元しつつ本業の処理を完遂するプログラムの方法を提供することを目的とする。すなわち、本願発明は、ウイルスに侵入されたプログラムがウイルスによって汚染された値を自力で検出し除染し復元する（これをウィルスの無力化という。）する方法、より具体的には、ウィルスを無力化しながら業務処理をコンピュータに実行させるデータ結合型プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記のような課題を解決するために、本発明に係るプログラムは、要件に係る全ての変数の値をデータ結合によって生成する手順をコンピュータに実行させるプログラムであって、主語を生成する際に、主語の成立条件と変数主語の正統性が成立することを判定し、是の場合のみ正統性を持つ主語として生成し、否の場合は正統性を持つ主語の生成は以後の逐次循環繰り返しの処理で行うことを特徴とする。
【０００６】
上記構成においては、上記の主語を生成する手順をベクトルによって実行するとすることもできる。
【０００７】
また、上記構成においては、要件を単元文の命令文として表現し、それらの代入文及び出力文をまとめて集合１（パレット４）とし、入力文と定値文をまとめて集合２（パレット２）とし、条件文をまとめて集合３（パレット３）として、集合１、２、３の順序で夫々の集合内でデータ結合処理を行って変数の値を生成し、更に同様な処理を集合１，２，３の順序で循環繰り返す、とすることもできる。
【０００８】
さらに上記構成においては、正統に生成された主語、第２フラグ、第６フラグ、第７フラグの汚染を観察し、汚染が検出されれば、該主語に係わるベクトルを初期値化することによって除染し、また、主語生成累積数の汚染を観察し、汚染が検出されれば、プログラムの緊急停止をさせるウィルス観察アルゴリズムプログラムを各ベクトルの実行の前に実行させる、とすることもできる。
【０００９】
さらにまた、上記構成においては、主語生成累積数の推移（ＮＳ１、２、３、４・・・）によって、正統な主語が生成される可能性の有無、及び、頻発する汚染を命令破壊と捉えてプログラムを停止させるかどうか、の判定をする、とすることもできる。
【００１０】
また、上記構成においては、下記に列記するプログラム群によって構成されるシナリオ関数と呼ぶプログラムの手順をコンピュータに実行させる、とすることもできる。すなわち、
（１）同期関数  ：座標関数４、２、３を統治するプログラム、
（２）座標関数４：次のベクトル即ちＬ４、Ｗ４、Ｅ４１、Ｅ４２、Ｔ４を統治するプログラム。
（３）座標関数２：次のベクトル即ちＬ２、Ｒ２、Ｔ２を統治するプログラム。
（４）座標関数３：次のベクトル即ちＬ３、Ｔ３１を統治するプログラム。
（５）Ｌ４      ：正統な主語を決定するプログラム。
（４）Ｗ４      ：正統な主語を外部記憶領域に出力するプログラム。
（５）Ｅ４１    ：プログラムの正常終了を同期関数に告げるプログラム。
（６）Ｅ４２    ：シナリオ関数の異常を座標関数に告げるプログラム。
（７）Ｔ４      ：座標関数４を座標関数２へ切り替えることを同期関数に告げるプログラム。
（８）Ｌ２      ：定値数を正統な主語に決定するプログラム。
（９）Ｒ２      ：指定するデータ領域に外部データを受信するプログラム。
（１０）Ｔ２    ：座標関数２を座標関数３へ切り替えることを同期関数に告げるプログラム）
（１１）Ｌ３    ：正統な第４領域を判定するプログラム。
（１２）Ｔ３１  ：座標関数３を本シナリオ関数の座標関数４へ切り替えることを同期関数に告げるプログラム。
（１３）Ｔ３２  ：座標関数３を隣下のシナリオ関数の座標関数４へ切り替えることを同期関数に告げるプログラム。
（１４）Ｔ３３  ：座標関数３を最上位のシナリオ関数の座標関数３へ切り替えることを同期関数に告げるプログラム。
（１５）ウィルス観察アルゴリズム
：ベクトルごとに設定されるプログラムで、ベクトルが決定した後の主語の汚染の検出と、汚染検出の場合は当該ベクトルを初期値化（除染）する役割を担うプログラム。
【発明の効果】
【００１１】
本願発明によって、ウイルス問題に対する根本的な解決方法が得られることになる。従来のプログラミング手法では、一旦ウィルスに侵入されれば、そのウィルスが本来の目的とは違う悪意ある処理をコンピュータにさせることはプログラミムの構造上容易であり防ぐことはできない。したがってウィルスの被害を防ぐためには、ウィルスを侵入させないことが唯一の対策となる。即ちファイアーウォール手法しか対策がない。しかしファイアーウォールでウィルスを阻止することは、不可能であることは既に現実であり常識となっている。現在のコンピュータ世界が成り立つための基盤が不安定になり損害も世界的に広がり深刻となっている。本願発明が普及すればその問題は一挙に解決する。
【００１２】
更に、従来のプログラムは人が決めた処理順序で主語を生成したり稼働を停止させたりすることに対して、本願のシナリオ関数によれば、プログラムの解とは正統な主語の脈絡を個々の主語の生成処理を循環繰り返すことによって作ることであり、稼働の終了は生成可能な全ての主語が生成した時になる。そのとき本願のシナリオ関数ではＥ４１プログラムがＮＳ１＝ＮＳ５である状態を判定し稼働の終了を告げる。正統な主語の脈絡とは全ての主語がプログラムによって作られた主語の連鎖である。このことによって主語の連鎖が可視化されそれによってプログラムのエラーも発見しやすくなる。
【００１３】
また、要件のプログラミングにおいて命令文の実行順序を人が決めなくてよいのでプログラミング作業が圧倒的に簡単になるし、プログラミングエラーも激減する。
【図面の簡単な説明】
【００１４】
【図１】従来法プログラム（論理結合型）  と  本願発明のプログラム（データ結合型）
【図２】ベクトルプログラムのフローチャート。
【図３】ベクトルプログラムの説明
【図４】座標関数４，２，３のフローチャート
【図５】同期関数のフローチャート
【図６】ウィルス観察アルゴリズムのフローチャート
【図７】シナリオ関数の基本構造図（ＶＷＡなし）
【図７−１】シナリオ関数の基本動作（ＶＷＡなし）
【図８】ウィルスの検出・除染・復元・処理継続の動き
【図８−１】図８の辿り方
【図９】シナリオ関数のランク構造と主語分布表
【発明を実施するための形態】
【００１５】
目次
１.      単元文が論議の前提
２.      従来法プログラムの特徴と対ウィルス脆弱性
３.      本願発明のプログラムの基盤（データ結合型プログラム）
４.      ウィルス
５.      名詞、主語
６.      主語、変数主語の正統性
７       主語の生成の可能性の判定
８．     主語成立累積数とスタック
９．     再起・第６フラグと再起停止・第７フラグ
１０．   主語ベクトル
１１     命令文の種類と主語ベクトルの種類
１２     主語ベクトルのプログラム
１３．   ベクトルの区分け処理
１４．   座標関数４，２，３
１５．   座標周期の臨界
１６．   同期関数
１７．   ウィルス観察アルゴリズム
１８．   シナリオ関数    
１９．   ランク構造
２０．   参考：シナリオ関数がウィルスを無力化する動作解説
２０．１  ウィルスを無力化する動作解説
２０．２  侵入したウィルスを起動させない理由解説
２１．   シナリオ関数を構成するプログラム
２１．１  座標関数４関連
２１．１．１    Ｌ４型ベクトル
２１．１．２    Ｗ４型ベクトル
２１．１．３    Ｅ４１
２１．１．４    Ｅ４２
２１．１．５    Ｔ４
２１．１．６    座標関数４
２１．２    座標関数２関連
２１．２．１    Ｌ２型ベクトル
２１．２．２    Ｒ２型ベクトル
２１．２．３    Ｔ２
２１．２．４    座標関数２
２１．３    座標関数３関連
２１．３．１    Ｌ３型ベクトル
２１．３．２    Ｔ３１
２１．３．３    Ｔ３２
２１．３．４    Ｔ３３
２１．３．５    座標関数３
２１．４    同期関数プログラム
２１．５    ウィルス観察アルゴリズム
【００１６】
１．  単元文が論議の前提
コンピュータで処理すべき業務要件の要素は、どのような要件でも、代入文、条件文、定値文（変数が定値である命令文）、入力文、出力文、の５種の単元文で表すことができる。
【００１７】
単元文とは、１機能しか持っていない命令文である。複数の機能を持つ命令文も単元文に分解することができる。これらの命令文が実行されることによって業務の目的である全ての変数の値が得られる。実行の順序を人が考えて指示するのが従来法のプログラムである。以降の論議において命令文とは全て単元文の形を持つものである。
【００１８】
２．  従来法プログラムの特徴と対ウィルス脆弱性
図１「従来法プログラム（論理結合型）  と  本願発明のプログラム（データ結合型）」を参照する。コンピュータが業務要件の要素である任意の命令文を実行するとき、該命令文を実行するための変数の値が既に得られていなければ実行はできない。従って、個々の命令文が実行できるように実行の順序を人が論理的に考えてコンピュータにプログラムによって指示する。指示の方法はソースコードに記載されている命令文の順序で直下の命令文を自動的に実行する方法か、或いは人が実行先のアドレスを指示してそのアドレスの命令文を実行する方法かのいずれかである。図１の左側の従来法プログラム（論理結合型）の並べ方は、上から下へ順番に各命令文を実行する場合に各命令文の実行の前には、必ず必要な変数が得られているように、各命令文を並べている。この並べ方は人が考えたものであり、それらの命令文の処理の順序をそれらの並べ方をもってコンピュータに指示しているのである。これが従来のプログラミングの手法である。この手法によるプログラムを論理結合型プログラムと呼ぶ。
【００１９】
この従来法プログラムでは、コンパイルして機械語に変換された後でも命令文の実行の順序は直下の命令文を実行するか、或いは指定されたアドレスの命令文を実行する。従って、或る命令文の直下に何らかの方法（例えばバッファーオーバーフロー）によって、機械語のウィルスプログラムを挿入されたり、実行すべき指定したアドレスが改ざんされれば、意図しない命令文が実行され悪行が実行されることは避けられない。この命令文の実行順序の無検証性が対ウィルス脆弱性の一つである。また、先行した順序で生成された変数の値がその後改ざんされても、改ざんされたかどうかは検証する術がなくそのまま使わざるを得ない。それが他の変数の生成に使われれば改ざんの悪影響は広く伝搬して行く。この変数の値の無検証性が二つ目の対ウィルス脆弱性である。これら二つの脆弱性は従来法プログラムの構造的問題であるので避けられないのである。
【００２０】
３．  本願発明のプログラムの基盤（データ結合型プログラム）
図１「従来法プログラム（論理結合型）  と  本願発明のプログラム（データ結合型）」を参照する。本願発明は、従来法の二つの構造的対ウィルス脆弱性を除去し、ウィルスを検出・除染・正規の値に復元しつつ業務を遂行する（ウィルスの無力化という）ことができる。そのための基盤であるデータ結合型プログラムについて述べる。上記の通り、直下の命令文や指定されたアドレスの命令文を自動的に実行するという従来法の基本法則から脱却する。どのようにするかと言うと、任意の順序で並べられた命令文を並べられた順に命令文を実行する。しかしそのとき、実行に必要な変数が得られていなかったら、該命令文の実行は中断（実行と中断の両者合わせて処理と言う）し、次に直下の命令文について同様の処理を行う。更に同様の処理を命令文の配列に沿って逐次行い、該配列の最後の順位の命令文について同様の処理をした後、該配列の最初の順位の命令文に戻って同様の処理を行い、業務の目的である全ての変数の値が得られるまで該配列に沿ってこの処理を個々の命令文について循環繰り返すという手順を基本動作にしている。このような機能を持つプログラムを作成し実行させるのである。
【００２１】
図１の右側の本願発明のプログラム（データ結合型）の命令文の並べ方は、左側の従来法の命令文の並べ方をわざと崩したものである。この並べ方の順序では従来法では実行できないし、そもそもコンパイルもできない。しかし、上記のような循環繰り返しの処理をするプログラムにすれば、コンパイルもできるし実行もできるのである。図１の中に循環繰り返しで変数の値が生成されていく過程を説明したので参考にされたい。この方法によるプログラムをデータ結合型プログラムと呼ぶ。データ結合型プログラムを基盤として、従来法の「実行順序の無検証性」及び「変数の値の無検証性」の二つの脆弱性を除去することが本願の発明の目的・効果の一つである。以下、項に沿ってその詳細について述べる。
【００２２】
４．  ウィルス
ウィルスとは、「変数の値が正規のプログラムによって生成された値ではない値を生成するプログラム又は入力データ、及び、命令コードを改ざん・破壊するプログラム又は入力データ」である。逆に言えば、全ての変数の値が、正規のプログラムによって生成された値であるならば、そのプログラムはウィルスに汚染されていないと言える。
【００２３】
５．  名詞、主語
本願発明においては、変数を領域の名称として名詞という。名詞の内容を主語と言う。つまり主語とは変数の値である。主語を生成するために必要な名詞の内容を変数主語という。例えば、ＩＦ  Ｘ＜Ｙ,Ａ＝Ｂ＋Ｃという命令文では、Ｘ,Ｙ,Ｂ,Ｃは変数主語である。変数主語は、別の命令では主語になっている。即ちＸ＝・・・・等である。
【００２４】
６．  主語、変数主語の正統性
本願発明においては、全ての個々の変数の値を生成するときに、従来法のプログラムと違って、該変数の生成に関わる全ての変数が正規のプログラムによって生成された値であることを検証し、そうであることを確認した後に初めて該変数の値を承認する。例えば、ＩＦ  Ｘ＜Ｙ,Ａ＝Ｂ＋Ｃという命令を実行するとき、Ｘ,Ｙ,Ｂ,Ｃの個々の値が全て正規のプログラムによって生成されたものかどうかを確認し、且つＸ＜Ｙが成立していれば、初めてＡの値を承認するのである。この承認された変数の値を変数の正統な値という。変数の値に正統性があるともいう。即ち正統な主語といい、主語に正統性があるという。主語が生成されその正統性が検証され確認されたらその主語を本願の第４領域と呼ぶ領域に保存する。
【００２５】
７．  主語の生成の可能性の判定
主語を生成するときに、上記の検証で該主語の正統性が確認できない場合、本願発明のデータ結合プログラムの手順の以降の循環繰り返しにおいて正統な該主語の生成の可能性があるかどうかの判定を行う。その判定基準として主語成立累積数を用いる。上記のデータ結合型プログラムの手順で循環繰り返し処理を行う際に、或る循環回で成立した正統な主語の数を前回までの主語成立累積数に加える。前回までの累積数よりも該回の累積数が増えていれば、該回で新たに正統な主語が生成されたことになるので、さらに循環を繰り返して新たに生成されたその主語を使って命令文の処理を行えば、正統な主語が更に新たに生成される可能性がある。若し該回で新たに正統な主語が生成されなかった場合は、累積数は増えない。更に念のために循環繰り返しても同じように累積数は増えない。従って、循環の各回の主語成立累積数の推移が以降の循環繰り返しで正統な主語の生成の可能性の判定基準となる。
【００２６】
８．  主語成立累積数とスタック
上記のようにデータ結合プログラムにおいて、今実行した循環回の主語成立累積数をＮＳ１とする。その１回前の循環回の累積数をＮＳ２とする。その２回前の循環回の累積数をＮＳ３とする。その３回前の循環回の累積数をＮＳ４とする。その４回前の循環回の累積数をＮＳ５とする。これらのＮＳ１〜５を主語成立累積数のスタックという。主語成立累積数が増えなくなってから念のため更に例えば３回循環繰り返して命令文列を処理して累積数が増えないことを確認するとＮＳ１＝ＮＳ５となる。また、若しウィルスによって折角生成した正統な主語が汚染され検出され除染されたら、主語成立累積数は１減じる。従って頻回の汚染があればＮＳ１＜ＮＳ５ともなり得る。本願発明はその状態をウィルスによる命令の破壊という。
【００２７】
９．  再起・第６フラグ、再起停止・第７フラグ
（１）再起宣言
正統な主語が得られないことが判明したら、次の循環で再度主語の生成を試みるかどうかの判断は、ＮＳ１と前回以前のＮＳとを比較して行う。ＮＳが増えなくなってから念のために何回繰り返して確認するかは、最大で変数の数であるが実際にはそれ以下の数で適宜決めればよい。本願の例では、ＮＳが増えなくなってから３回循環繰り返しても依然増えないことを確認している。即ち４回前のＮＳと比較してＮＳ１＞ＮＳ５ならば再起宣言をして更に循環繰り返し主語の生成を試みる。再起宣言をするとは本願の第６フラグをオンにすることである。
【００２８】
（２）再起停止宣言
ＮＳ１＝ＮＳ５となれば再起停止宣言をして当該命令の成立の以降の試みを停止する。再起停止宣言をするとは本願の第７フラグをオンにすることである。第７フラグをオンにする時は第６フラグをオフにする。
【００２９】
１０．  主語ベクトル
上述のように、個別の命令文の実行、生成された主語の正統性の検証、検証された主語の第４領域への移行、再起宣言、再起停止宣言などの処理を各命令文ごとに同じ形式でコンピュータに実行させるプログラムをベクトルという。このベクトルは、図２のベクトルプログラムのフローチャート及びその説明である図３で開示されている。その中で座標周期とか臨界とかが記載されているが、それらについては後述の第１５項「座標周期の臨界」で説明する。
【００３０】
第１項「単元文」で記載した通り、命令文の種類は、代入文、条件文、定値文（変数が定値である命令文）、入力文、出力文、の５種の単元文である。これらの命令文の処理をするベクトルを主語ベクトルという。条件文に係るベクトルには主語がないが、該条件が成立するかどうかの判定をベクトルの第３規約で行い、是なら該ベクトルの第４領域にオンを入れて正統な条件ベクトルが成立したことを宣言する。
【００３１】
１１．  命令文の種類とベクトルの種類
代入文、条件文、定値文（変数が定値である命令文）、入力文、出力文、の夫々の命令文はベクトルプログラムによって処理されることは上述した通りである。これらの命令文が処理されるベクトルの中の場所（規約番号）が異なるのでそれらに応じてベクトルの型とその表示が変わる。下記の表にまとめる。
2017138809.tif 000003
上表の注記
註１：呼び出し文は別の要件に係るプログラムを呼び出す機能であるが、代入文で置き換えられる。（Ｌ４,Ａ）のＡは呼び出すプログラムの名称である。
註２：本来は（Ｗ４,ＤＢ２）と表示すべきだが、ＤＢ２が未定だから（Ｗ４,Ａ）と表記する。
【００３２】
１２．    主語ベクトルのプログラム
前記１１項で記載したように命令文の種類に応じてベクトルの形は同じであるが命令文が処理される場所（規約）が異なる。それらのベクトルのプログラムを後述する第２１項（シナリオ関数を構成するプログラム）に記載する。
ベクトルの型        記載項番
Ｌ４型プログラム  ：２１．１．１
Ｌ３型プログラム  ：２１．３．１
Ｌ２型プログラム  ：２１．２．１
Ｒ２型プログラム  ：２１．２．２
Ｗ４型プログラム  ：２１．１．２
【００３３】
１３．  ベクトルの区分け処理
図７「シナリオ関数の基本構造図（ＶＷＡなし）」を参照する。上記のようにベクトルには型があるが、その型に応じて区分けして集合とし、その集合に属するベクトルについて逐次循環繰り返し処理を以下のように行う。（区分けする理由は重要であるが記載しない。区分けする理由を記載しないことが拒絶理由にはならないと認識している）。ベクトルを逐次循環繰り返し起動させるプログラムを座標関数という。座標関数プログラムについては第１４項に記載する。
【００３４】
Ｌ４型，Ｗ４型ベクトルの集合をパレット４という。それらの個別ベクトルを逐次循環繰り返し起動させるプログラムを座標関数４という。Ｌ２型，Ｒ２型ベクトルの集合をパレット２という。それらの個別ベクトルを逐次循環繰り返し起動させるプログラムを座標関数２という。Ｗ３型ベクトルの集合をパレット３という。それらの個別ベクトルを逐次循環繰り返し起動させるプログラムを座標関数３という。
【００３５】
１４．  座標関数４，２，３
図４「座標関数４，２，３のフローチャートに」を参照する。座標関数４、２、３プログラムの働きは、下記の（１）〜（４）である。
（１）夫々の座標関数に属すベクトルを逐次循環繰り返し起動させる。
（２）第１５項「座標周期の臨界」で記載した夫々の座標周期の臨界に達したかどうかを、夫々の座標関数に属する全ベクトルの第６フラグのオン状態が１つもなくなったかどうかで判定する。その判定をするプログラムをＴプログラムと言い、座標関数４にはＴ４が、座標関数２にはＴ２が、座標関数３にはＴ３１、Ｔ３２、Ｔ３３が属している。第２１項「シナリオ関数を構成するプログラム」のＴ４、Ｔ２、Ｔ３１、Ｔ３２、Ｔ３３の項参照。各座標関数は夫々のＴプログラムを起動し、その告知によって臨界状態を判定し、臨界に達していれば同期関数（第１６項「同期関数」参照）に実行を渡し、同期関数によって次の座標関数を起動させる。
【００３６】
（３）特に座標関数４は、プログラムが正常に終了したことをＮＳ１＝ＮＳ５で判定するＥ４１プログラム（第２１項「シナリオ関数を構成するプログラム」の２１．１．３参照）を起動し、その告知によって判定し、是ならば同期関数に実行を渡し、同期関数によってＳＥＰ（System
Ending Program）を起動する。
（４）また特に座標関数４は、本プログラムの命令が汚染されたことをＮＳ１＜ＮＳ５で判定するＥ４２プログラム（第２１項「シナリオ関数を構成するプログラム」の２１．１．４参照）を起動し、その告知によって判定し、是ならばＳＬＰ（System
Landing Program）を起動する。
【００３７】
座標関数４、２、３のフローチャートは図４「座標関数４，２，３のフローチャートに」記載されている。また第２１項「シナリオ関数を構成するプログラム」のの２１．１．６に座標関数４の、２１．２．４に座標関数２の、２１．３．５に座標関数３の、各プログラムが記載されている。これらによって座標関数１、２、３が特定できる。
【００３８】
１５．座標周期の臨界
第９項「再起・第６フラグと再起停止・第７フラグ」で記載したように、以降の循環繰り返しで任意の或る主語が正統に生成される可能性があるときはそのベクトルの第６フラグがオンとなる。任意の或る座標関数に属するベクトル達の中に１つでも第６フラグにオンのものがあれば更に座標関数は座標周期を繰り返す。該ベクトル達の第６フラグオンが一つもなくなったら、その状態を座標周期が臨界に達した状態と言う。これは座標関数における処理を終了して次に移行する状態である。
【００３９】
１６．    同期関数
図５「同期関数のフローチャート」を参照する。同期関数の働きは次の（１）〜（３）である。各座標関数が臨界に達したら、
（１）次の順番の座標関数を起動させる、即ち自分の座標関数を４、２、３の順序で循環起動させる、
（２）自分のシナリオ関数のランク構造（第１９項参照）において隣下の座標関数４、或いは最上位の座標関数３かを起動させる、
（３）稼働を正常終了させる。
同期関数のフローチャートは図５「同期関数フローチャートに」記載されている。また第２１項「シナリオ関数を構成するプログラム」の２１．４にそれらの詳細なプログラムが記載されている。これらで同期関数が特定できる。
【００４０】
１７．  ウィルス観察アルゴリズム
図６「ウィルス観察アルゴリズムのフローチャート」を参照する。ウィルス観察アルゴリズムプログラムをＶＷＡ（Virus
Watching Algorithm）と省略する。ＶＷＡは主語ベクトルＬ４、Ｗ４、Ｌ２、Ｒ２，Ｌ３、の各ベクトル（ベクトルＡとする）の処理の直前に実行される。ベクトルＡが過去に正統に生成した第２、６、７フラグのオンオフ信号並びに正統に生成された主語の値がその後に汚染されていないかの検出と、汚染検出の場合はベクトルＡを初期値化（除染）する、及び、主語成立累積数が汚染されていないかの検出と汚染検出の場合はＳＬＰ（Soft
Landing Program）を起動させる、のがこのＶＷＡプログラムの仕事である。
【００４１】
ウィルス観察アルゴリズムの働きは次の（１）〜（５）である。
（１）主語ベクトルの第２フラグの汚染の検出と除染
（２）主語ベクトルの第６フラグの汚染の検出と除染
（３）主語ベクトルの第７フラグの汚染の検出と除染
（４）主語ベクトルの第４領域の汚染の検出と除染
（５）主語成立累積数の汚染の検出とＳＬＰ（Soft
Landing Program）の起動。
【００４２】
ウィルス観察アルゴリズムのフローチャートは図７「ウィルス観察アルゴリズムのフローチャートに」記載されている。また第２１項「シナリオ関数を構成するプログラム」の２１．５にそれらの詳細なプログラムが記載されている。これらでウィルス観察アルゴリズムプログラムが特定できる。
【００４３】
１８．  シナリオ関数
図７「シナリオ関数の基本構造（ＶＷＡなし）」を参照する。シナリオ関数は、下記（１）〜（４）から構成される。
（１）第１０項「主語ベクトル」に記載した通りの、正統な主語のみを生成するベクトル、
（２）第１４項「座標関数４，２，３」に記載した通りの、各ベクトルを統治して逐次循環してベクトルを起動させ、臨界状態を判定し、特に座標関数４においては正常終了状態や緊急終了状態を判定し、緊急終了状態なら緊急終了プログラム（ＳＬＰ）起動させる座標関数４，２，３、
（３）第１６項「同期関数」に記載した通りの、臨界状態の判定に応じて次の座標関数を起動させ、また、正常終了状態なら正常終了プログラム（ＳＥＰ）を起動させる同期関数、
（４）第１７項「ウィルス観察アルゴリズム」に記載した通りの、汚染がない状態で成立した第２，６，７フラグ、及び正統に生成された主語の第４領域、が汚染されていないかを判定するウィルス観察アルゴリズム（ＶＷＡ）。ＶＷＡは各主語ベクトルの処理の直前に処理される。
【００４４】
シナリオ関数において、ＶＷＡがない状態をシナリオ関数の基本構造という。図７「シナリオ関数の基本構造（ＶＷＡなし）」でそれが図解してある。またその動作を図７−１「シナリオ関数の基本動作（ＶＷＡなし）」でその動作を解説している。シナリオ関数は次の数式一本で表され、全ての変数が正統な値を持つことがその解である。
Ｓ＝Φ０（Φ４（｛Ｌ４｝、｛Ｗ４｝、Ｅ４１、Ｅ４２、Ｔ４）＋Φ２（｛Ｌ２｝、｛Ｒ２｝、Ｔ２）＋Φ３（｛Ｌ３｝、Ｔ３１、Ｔ３２、Ｔ３３））
Φ０は同期関数、Φ４は座標関数４、Φ２は座標関数２、Φ３は座標関数３。
【００４５】
１９．  ランク構造
図９「シナリオ関数のランク構造と主語分布表」を参照する。上記の第１８項「シナリオ関数」の中に要件に係る全ての主語或いは変数主語が内在していれば、１つのシナリオ関数で要件に係る主語は全て生成される。しかし、要件に係る主語或いは変数主語が他のシナリオ関数にあればそのシナリオ関数に移行して主語の生成を試みなければならない。そのときには複数のシナリオ関数がランク構造を構成する。主語とその変数主語がどのシナリオ関数に属するかを一覧表にしたものが主語分布表である。この分布表を用いて、座標関数３がＴ３１、Ｔ３２、Ｔ３２を起動して、自分の座標関数４に戻るか、隣下のシナリオ関数に移行するか、最上位にあるシナリオ関数に移行するかを判定させる。その判定の結果を利用して、同期関数が該当するシナリオ関数の座標関数を起動する。
【００４６】
２０．  参考：シナリオ関数がウィルスを無力化する動作解説
ウィルスの無力化とは、ウィルスで汚染された値を検出・除染・復元し、業務を継続することである。本願発明の特許請求の範囲は、シナリオ関数の手順を実行するプログラムであって、実行した結果である「ウィルスの無力化」や「ウィルスを起動させない」という効果そのものではない。従って此処で解説することは本来からすれば余計なことかもしれないが、本願発明の効果にも興味を持って頂く為に敢えて解説する。また従来法プログラミングではその構造によってウィルスを防げないことも以下に解説した。これも本願の特許の請求の範囲とは関係ないが、本願のシナリオ関数に興味を持って頂く為に敢えて解説する。以下に記載する２０．１及び２０．２によって、第２項に述べた従来法プログラミングの「実行順序の無検証性」と「変数の値の無検証性」による対ウィルス脆弱性が本願発明によって除去されたことになる。
【００４７】
本願発明の各構成要素である手順は複雑ではないが、それらの各構成要素が組み合わさった本願発明の構成の手順は複雑になり、更に、本願発明の特徴である循環繰り返しの動作は極めて複雑精緻である。それを長時間かけて丹念に追って行くことが、本願の効果を理解するためには必要であろう。しかも、本当に納得するためには、コンピュータ理論、プログラミング手法、コンパイラー理論、ウィルス技法、特にウィルスの侵入方法や侵入場所や起動方法などの知識が必要である。
【００４８】
しかし、上述のとおり、本願の特許請求の対象はその効果ではなく当該効果をもたらすところのものである。本願の特許の請求対象はあくまでも「手順を実現するプログラム」であって、「該プログラムの効果」である「ウィルスの無力化」とか「無力化される理由」ではない。
【００４９】
２０．１    ウィルスを無力化する動作解説
シナリオ関数を実行することによって、ウィルスがどのようにして無力化（検出・除染・値の復元・処理の継続）されるのかについて解説する。図８「ウィルスの検出・除染・主語の復元・処理の継続の動き」を参照する。図８の中の丸番号を辿って図８−１「図８の辿り方ガイド」を参考にして読んで頂ければ、シナリオ関数が動いた結果、ウィルスの無力化の全貌が明らかとなる。
【００５０】
２０．２    侵入したウィルスを起動させない理由解説
第２項「従来法プログラムの特徴と対ウィルス脆弱性」で述べた通り、従来のプログラミング手法は、命令の処理の順序を人が指示する。人が指示する方法は、プログラムのソースコードにおいて、次のラインに書かれた命令を自動的に実行させるか、或いはアドレスを指定してそのアドレスに存在するプログラムを実行させるかの二つである。
【００５１】
これらを大前提としてソースコードは機械語にコンパイルされて実行される。従ってウィルスである機械語のプログラムを読みこめば、それは機械語になったソースコードのどこかに挿入されるのであるから、その前にある命令文から自動的にそのウィルスプログラムに実行は移行しそのウィルスプログラムは実行される。或いは、ウィルスがバッファーオーバーフローを起こさせ、それによってリターンアドレスの内容がウィルスプログラムのアドレスに変更されれば、そのアドレスに存在するウィルスプログラムに実行は移行する。
【００５２】
従って、従来のプログラミング手法を前提にする限りウィルスを侵入させれば好きなようにウィルスプログラムが悪行をするのを阻止する方法は無い。だからウィルス対策としては侵入を阻止する方法つまりファイアーウォール法しかないのである。
【００５３】
ファイアーウォール法は、ウィルスは種類によって異なる特徴を持っているので、受信するプログラムの特徴を検査し、ウィルスとして登録されている特徴即ち指名手配されている特徴と照合し、合致すればウィルスとして遮断する方法である。
【００５４】
しかし、ウィルスの特徴の種類の数は無限である。指名手配されているウィルスの特徴の種類の数は新種のウィルスが発見されるにつれて多くなっていくが、次から次に生まれる新種に追い付くことはできない。近年はバッファーオーバーフロー対策がしてないプログラムはコンパイラーで引っかかるが、対策がしていない過去の膨大なレガシープログラムが動いているし、ウィルスはバッファーオーバーフローだけではない。SQLインジェクション、クロスサイトリクエストフォージェリー、クロスサイトスクリプトなど相互コミュニケーションという利便性のためにプログラムを挿入できるような機能を元々備えている特性を利用しているので、利便性との兼ね合いでウィルスの判断基準は難しい。
【００５５】
結果としてファイアーウォール法ではウィルスは阻止できないのである。即ち従来法のプログラムはウィルスを防げないのである。従来のプログラミング手法のように、ソースコードにおいて次のラインに書かれた命令を自動的に処理するか、指示された別のアドレスに存在するプログラムを自動的に処理することをプログラミングの基本法則としている限りウィルスを阻止できないのである。
【００５６】
一方、シナリオ関数プログラムでは、命令の処理の順序については、従来法プログラムのようなソースプログラムの実行が次のラインに自動的に移行するとか、特に指示されたアドレスに飛んで実行するような基本法則がない。シナリオ関数においては、プログラムの命令文の処理の順序は、命令文はベクトルの中にあるので処理順序はベクトルの配列順序であり、またベクトル内ではベクトルが決めている。それ以外にない。従って、ウィルスプログラムが読みこまれても、ウィルスプログラムへは実行が移行しないのである。シナリオ関数では、そのウィルスプログラムは読みこまれた後データとして扱われ主語を汚染する。汚染されたその主語はウィルス観察アルゴリズムプログラムで検出され、除染され、そしてベクトルによって正統な値に復元される。
【００５７】
要するに、従来法では、ウィルスが侵入すればプログラムはウィルスに実行権が移行する。これに対してシナリオ関数では、ウィルスが侵入してもプログラムの実行権はウィルスへ移行しないでベクトルが堅持する。更にウィルスは除染され汚染された主語は復元され処理は継続する。
【００５８】
２１．  シナリオ関数を構成するプログラム
以下にシナリオ関数を構成するプログラムを記載する。これらは図２「ベクトルプログラムのフローチャート」、図４「座標関数４，２，３のフローチャート」、図５「同期関数のフローチャート」、図６「ウィルス観察アルゴリズムのフローチャート」、をプログラム化したものである。これらの図及びプログラムによって本願の請求の範囲を完全に特定できる。プログラムの内容の理解を助けるために、代表的なプログラムについて、そのライン毎に/*・・・*/を付けてその中にコメントを入れた。それらを読めば本願発明のプログラムが、本業の処理とウィルスの検出・除染・復元が一体となって実行していることが理解できる。
【００５９】
２１．１    座標関数４プログラム及びそれが統治するプログラム
２１．１．１    L４型ベクトルのプログラム
（Ｌ４，Ａ）のベクトルとは下記のプログラムのことである。すなわち、主語Ａの値を生成し、その値が正統であるかどうかを判定し、正統ならその第4領域へその値を入れる（正統な値の生成）、正統な値が生成できない時は、循環で次の順番がめぐって来た時に再び主語Ａの値の生成を試みる準備をする、のがこの（Ｌ４，Ａ）プログラムの仕事である。このことは、下記のプログラムのライン毎のコメントを見れば明白である。どのように正統性を判定するかの基準は、変数主語と成立条件が正統であることである。
【００６０】
このベクトルの命令文例を「ＩＦ  Ｘ＜Ｙ, Ａ＝Ｂ＋Ｃ＋５１２」とする。（Ｌ４、Ａ）の成立条件が（Ｌ３、Ａ）である。これら二つのベクトルを（Ｌ４,Ｌ３,Ａ）と表示する。Ａの生成式は（Ｌ４,Ａ）の第２規約に、Ａの成立条件式は（Ｌ３,Ａ）の第３規約に置かれる。
【００６１】
００１  ＳＴＡＲＴ．
００２  ＮＯＰ．
００３  ＣＡＬＬ  ＶＷＡ（Ｌ４，Ａ）．/*  ＶＷＡプログラムを呼び込み、ここまでの循環稼働の結果である（Ｌ４，Ａ）の第２、６、７フラグと（Ｌ４，Ａ）の第４領域が稼働途中で汚染されていないかの判定と、汚染が１つでも検出された場合には（Ｌ４,Ａ）ベクトルを初期値化（全てのフラグと第４領域を初期化）し除染する。ＶＷＡプログラム参照。*/  
００４  第１規約：（Ｌ４，Ａ）の第４領域が正統性に成立しているかどうかを判断して第２規約に進むか、ＲＥＴＵＲＮかを判定。/*（Ｌ４，Ａ）の第４領域が正統に成立していれば、このプログラムは実行しなくてよい。（Ｌ４，Ａ）の第４領域が正統に成立しているかの判定基準は、その第４領域に値があり、第２フラグがオン、第６フラグがオフ、第７フラグがオフの状態である。以降のプログラムにおいて（Ｌ４,Ｘ）の第４領域の正統性の判定基準は同じである。*/
００５  第２規約。
００５１  ＭＯＶＥ  １  ＴＯ  第２フラグ．/*第２フラグをオンにする。*/
００５２  Ａ＝Ｂ＋Ｃ＋５１２．/*命令を実行する。Ａに値が入る。ＢかＣの値が無ければ（正統に成立していない）実行しないで００６へ。*/
００６  第３規約：Ａの正統性（第４領域の正統性）の判定。
００６１    Ｌ４，Ｂの第４領域は正統か．/*正統性の判定基準は上記と同様であり、その第４領域に値があり、第２フラグがオン、第６フラグがオフ、第７フラグがオフの状態である。*/
００６１１  正統なら  ＧＯＴＯ  ００６２．
００６１２  正統でなければ  ＧＯＴＯ  第５規約．
００６２    Ｌ４，Ｃの第４領域は正統か．/*判定基準は上記のＬ４，Ｂと同様である。*/
００６２１  正統なら  ＧＯＴＯ  ００６３．
００６２２  正統でなければ  ＧＯＴＯ  第５規約．
００６３    Ｌ３，Ａの第４領域は正統か．/*(Ｌ３，Ａ)の第４領域の正統性については、下記１２．２項(Ｌ３，Ｄ)のベクトルのプログラムで記載したように、（Ｌ３，Ａ）が正統に成立すればその第４領域がオンになる。又もし、ＩＦ条件が複数段の階層構造になっていれば、例えば更にＩＦ  Ｖ＜ＷがＡの成立条件としてあれば、（Ｌ３,Ａ）が更にもう一つパレット３に存在するのでパレット３にある全ての（Ｌ３,Ａ）の第４領域がオンかを判定する必要がある。*/
００６３１  正統なら  ＧＯＴＯ  第４規約．                                      
００６３２  正統でなければ  ＧＯＴＯ  第５規約．
００７  第４規約。
００７１  ＭＯＶＥ  ０  ＴＯ  Ｌ４，Ａの第６フラグ．/*（Ｌ４，Ｂ）の第４領域とＬ４，Ｃの第４領域が正統であり、且つ（Ｌ３,Ａ）の第４領域がオンであったのでＡの値の正統性が確認された。従ってＬ４，Ａを再起動する必要がないので第６フラグ（再起宣言フラグ）をオフにする。*/
００７２  ＭＯＶＥ  Ａ  ＴＯ  Ｌ４，Ａの第４領域．/*Ａの値の正統性が確認されたので、その値を（Ｌ４，Ａ）の第４領域へ入れる。これで正統にＡに値が生成されると、第4領域に値が有り、第2フラグオン、第6フラグオフ、第7フラグは初期値でオフの状態となる。*/
００７３  ＡＤＤ  １  ＴＯ  主語成立数カウンタ．/*（Ｌ４，Ａ）の第４領域が成立したので正統に生成された主語が更に1つ増える。*/
００７４  ＭＯＶＥ  Ａ  ＴＯ  ＶＷＡのＡの保持領域．/*（Ｌ４,Ａ）の第4領域に正統に値が生成されれば、その値をＶＷＡにも保持して、折角正統に生成した値のウィルスによる汚染を後にＶＷＡで検出することに備える。*/
００８  ＲＥＴＵＲＮ．  
００９  第５規約：（Ｌ４，Ａ）のＡが同じ座標周期で成立するや否やの判定。/*成立するや否やの判定基準は下記００９２と００９３である。*/
００９１  ＭＯＶＥ  ０  ＴＯ  第６フラグ．/*一旦第6フラグを初期値化する。*/  
００９２  （ＮＳ１＝ＮＳ５）なら第７規約に進む．/*（Ｌ４，Ａ）は同じ座標周期では成立する可能性がないことである。*/
００９３  （ＮＳ１＞ＮＳ５）なら第６規約に進む．/*（Ｌ４，Ａ）は以降の循環で成立する可能性があることである。*/
０１０  第６規約：Ｌ４，Ａの再起宣言。
０１０１  Ｌ４，Ａの第４領域を初期値化．/*（Ｌ４，Ａ）は正統に成立しなかったので初期値化する。*/
０１０２  ＭＯＶＥ  １  ＴＯ  第６フラグ．/*（Ｌ４，Ａ）は以降の循環で正統に成立する可能性があるので第6フラグをオンにする*/
０１０３  ＭＯＶＥ  ０  ＴＯ  第２フラグ．/*（Ｌ４，Ａ）は正統に成立しなかったので第２フラグをオフにする。*/
０１０４  ＲＥＴＵＲＮ．
０１１  第７規約：Ｌ４，Ａの再起停止宣言。            
０１１１  ＭＯＶＥ  １  ＴＯ  第７フラグ．/*（Ｌ４，Ａ）は以降の循環で正統に成立する可能性がないので第７フラグをオンにする*/
０１１２  ＭＯＶＥ  ０  ＴＯ  第２フラグ．/*Ｌ４，Ａは正統に成立しなかったので第２フラグをオフにする。*/
０１１３  ＲＥＴＵＲＮ．
【００６２】
２１．１．２    Ｗ４型ベクトルのプログラム
Ｗ４型ベクトルとは下記のプログラムのことである。このベクトルの命令文例を「ＷＲＩＴＥ  Ａ,  ＤＢ１１」とする。これはＡを外部記憶領域「ＤＢ１１」に書く命令文である。ベクトル表示は（Ｗ４  Ａ, ＤＢ１１）である。この命令文の主語はＤＢ１１である。ＤＢ１１の正統性は不明である。このベクトルの役割は正統な（Ｌ４，Ａ）の第４領域をＤＢ１１に出力するということである。（Ｗ４  Ａ、ＤＢ１１）が統治する命令文は第４規約に置かれる。（Ｗ４  Ａ,  ＤＢ１１）のＶＷＡ，第１規約では（Ｌ４，Ａ）に置き換えて処理される。この命令文「ＷＲＩＴＥ  Ａ,  ＤＢ１１」に条件文（例えばＩＦ  Ｖ＜Ｗ）が付いているものとする。二つのベクトルの表示は（Ｗ４，Ｌ３, Ａ, ＤＢ１１）とし、その第３規約には（Ｌ３，ＤＢ１１）の第４領域がオンであるかどうかの判定基準も加えられることになる。
【００６３】
００１  ＳＴＡＲＴ．
００２  ＮＯＰ．
００３  ＣＡＬＬ  ＶＷＡ（Ｗ４  Ａ，ＤＢ１１）．/*（Ｌ４，Ａ）に置き換えられてＷＲＩＴＥ命令の前にＡが汚染されていないかが検証される。ＶＷＡのプログラム参照。*/    
００４  第１規約：（Ｌ４，Ａ）に置き換えられてその第４領域の正統性を用いて第２規約に進むか、ＲＥＴＵＲＮかを判定。正統なら第２規約に進む。
００５  第２規約。
００５１  ＭＯＶＥ  １  ＴＯ  第２フラグ．/*ＷＲＩＴＥ文を実行する証として第２フラグをオンにする。*/
００５２  ＮＯＰ．
００６  第３規約：（Ｗ４  Ａ,  ＤＢ１１）の正統性の判定。/*ベクトル（Ｌ３，ＤＢ１１）の第４領域がオンであることが検証される。*/
００６１１  正統なら  ＧＯＴＯ第４規約．
００６１２  正統でなければ  ＧＯＴＯ  第５規約．
００７  第４規約。
００７１  ＭＯＶＥ  ０  ＴＯ  (Ｗ４  Ａ，ＤＢ１１)の第６フラグ．
００７２  命令文「ＷＲＩＴＥ  Ａ,  ＤＢ１１」の実行．/*ＡをＤＢ１１に書き出す*/
００７３  ＡＤＤ  １  ＴＯ  主語成立数カウンタ．
００８  ＲＥＴＵＲＮ．    
００９  第５規約：  （Ｗ４  Ａ,  ＤＢ１１）が同じ座標周期で成立するや否やの判定。
００９１  ＭＯＶＥ  ０  ＴＯ  第６フラグ．
００９２  （ＮＳ１＝ＮＳ５）なら第７規約に進む．
００９３  （ＮＳ１＞ＮＳ５）なら第６規約に進む．
０１０  第６規約：（Ｗ４  Ａ,  ＤＢ１１）の再起要請の宣言。
０１０１  ＭＯＶＥ  １  ＴＯ  第６フラグ．
０１０２  ＭＯＶＥ  ０  ＴＯ  第２フラグ．
０１０４  ＲＥＴＵＲＮ．
０１１  第７規約：（Ｗ４  Ａ，ＤＢ１１）の再起停止宣言。  
０１１１  ＭＯＶＥ  １  ＴＯ  第７フラグ．
０１１２  ＭＯＶＥ  ０  ＴＯ  第２フラグ．
０１１３  ＲＥＴＵＲＮ．
【００６４】
２１．１．３    Ｅ４１のプログラム
Ｅ４１とは下記のプログラムのことである。Ｅ４１は本プログラムが終了状態にあることを告知する。Ｅ４１を分かり易くする為、論理結合型で示しているが、Ｅ４１は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。次に、この場合のプログラム模型を示す。
００１  ＳＴＡＲＴ．
００２  主語成立数スタックからＮＳ１を採る．
００３  主語成立数スタックからＮＳ５を採る．
００４  （ＮＳ１）＝（ＮＳ５）の判定．
００４１  ＹＥＳなら    ＧＯ  ＴＯ  ００５．
００４２  ＮＯなら    ＧＯ  ＴＯ  ００６．
００５  ＭＯＶＥ  １  ＴＯ  Ｅ４１の第４領域．
００６  ＲＥＴＵＲＮ．
【００６５】
２１．１．４    Ｅ４２のプログラム
Ｅ４２とは下記のプログラムのことである。Ｅ４２型ベクトルの仕事は、頻回の汚染検出によってＮＳ１がどんどん減少し、ついに（ＮＳ１）＜（ＮＳ５）となる状況が出現した時にはそれを命令破壊に至らない命令汚染と捉え、その状態を検出し、稼働を停止する、ことである。Ｅ４２を分かり易くする為、論理結合型で示しているが、Ｅ４２は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。
００１  ＳＴＡＲＴ．
００２  主語成立数スタックからＮＳ１を採る．
００３  主語成立数スタックからＮＳ５を採る．
００４  （ＮＳ１）＜（ＮＳ５）の判定．：本プログラムに生じる論理矛盾はこの関係で捉えることができる。
００４１  ＹＥＳなら    ＧＯ  ＴＯ  ００５．
００４２  ＮＯなら    ＧＯ  ＴＯ  ００６．
００５  ＭＯＶＥ  １  ＴＯ  Ｅ４２の第４領域．
００６  ＲＥＴＵＲＮ．
【００６６】
２１．１．５    Ｔ４のプログラム
Ｔ４とは下記のプログラムのことである。Ｔ４プログラムの仕事は、座標関数４に並んでいるベクトルの値の生成をこれ以上循環試行してもベクトルの値の累積生成個数は増えない状態（これを臨界状態と呼ぶ）であるかどうかを判定し、その状態のときに、座標関数４のプログラムを座標関数２のプログラムに切り替える条件が整ったことを知らせる。Ｔ４を分かり易くする為、論理結合型で示しているが、Ｔ４は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。
００１  ＳＴＡＲＴ．
００２  Ｐ４の臨界判定．/*臨界とは、当該パレット４に並んでいる全てのベクトルの第6フラッグ（再起フラグ）が全てオフの状態である。即ち、ベクトル全ての第4領域に値が生成され、第2フラグオン、第6フラグがオフ、第7フラグがオフの状態であるか、又は、第4領域に値がなく、第7フラグ（再起動停止フラグ）がオンで第6フラグはオフのベクトルが混ざっている状態である。つまりこれ以上このパレットで循環を繰り返しても新しい主語は生成できない状態である。*/
００２１  パレット４の第６フラグ列の作成．
００２２  パレット４の第６フラグ列常数の作成．/*フラグ列常数はすべてゼロの列。*/
００３  パレット４の第６フラグ列と第６フラグ列常数のＸＯＲ．/*照合する。*/
００３１  ＸＯＲがＺＥＲＯならＧＯＴＯ  ００４．/*全ての第6フラグがオフである。*/
００３２  ＸＯＲがＮＯＴ  ＺＥＲＯならＧＯＴＯ  ００５．
００４  ＭＯＶＥ  １  ＴＯ  Ｔ４の第４領域．/*Ｔ４の第４領域がオン。*/
００５  ＲＥＴＵＲＮ．
【００６７】
２１．１．６    座標関数４のプログラム
図４「座標関数４（Φ４）、座標関数２（Φ２）、座標関数３（Φ３）のフローチャート」を参照する。座標関数４とは下記のプログラムである。座標関数４の仕事は、パレット４に任意の順で並べられたベクトルＬ４型ベクトルとＷ４型ベクトルを配列に沿って一つづつ順繰りに起動させ、最後の順位のベクトルを終了させた後、このパレットが臨界状態でなければ（第6フラグがオンのベクトルが有る）、最初の順位のベクトルの起動に戻り、再度順繰りにベクトルを起動させる。これを繰り返して遂に臨界状態に達すれば（第6フラグが全てオフ）、座標関数２に処理を移動させ、或いはSEP(System
Ending Program)やSLP(Soft
Landing Program)を起動させる。
【００６８】
００１  ＳＴＡＲＴ．
００２  パレット４の搭載順位１（ｉ＝１）のベクトルを指定．：座標周期４の始まり
００３  指定された搭載順位（ｉ）のベクトルを起動．
００４  ここは起動したベクトルのＲＥＴＵＲＮ点である．
００５  命令破壊信号（ＯＳ）の有無判定．
００５１  有りで、ＳＥＰ起動．：本プログラムの実行を停止
００５２  なしで、ＧＯ  ＴＯ  ００６． 
００６  起動する次のベクトルを指定（ｉ＝ｉ＋１）．
００７  （ｉ）はパレット４のベクトルの搭載数（Ｎ４）を超えたか．
００７１  超えていれば  ＧＯ  ＴＯ  ００８．
００７２  超えていなければ  ＧＯ  ＴＯ  ００３．
００８  パレット４の臨界の成否判定．：Ｔ４の第４領域のオンオフを利用/*臨界とは、T4の第4領域がオンであり、当該パレット4に並んでいる全てのベクトルの第6フラッグ（再起フラグ）が全てオフの状態である（T4プログラム参照）。即ち、ベクトル全ての第4領域に値が生成され、第2フラグオン、第6フラグがオフ、第7フラグがオフの状態であるか、又は、第4領域に値がなく、第7フラグ（再起停止フラグ）がオンで第6フラグはオフのベクトルが混ざっている状態、である。つまりこれ以上このパレットで循環を繰り返しても新しい主語は生成できない状態である。*/
００８１  オフなら  ＧＯ  ＴＯ  ００２．/*臨界状態に達していないならば、このパレット４に並べられたベクトルの先頭のベクトルに戻って同じことを繰り返す。*/
００８２  オンなら  ＧＯ  ＴＯ  ００９．：座標関数４の終了/*臨界に達しているので座標関数４を終了させる。*/
００９  論理矛盾発症の有無を判定：Ｅ４２の第４領域オンオフの利用．/*ＮＳ１＜ＮＳ５の場合である。ウィルスによる汚染が頻発している状態であり汚染の検出の都度、累積主語生成数を１減している（VWAプログラム参照）のでＮＳ１はどんどん減って行き遂にＮＳ１＜ＮＳ５となる。５というのは適当に決めた数。汚染検出が連続して5回起これば稼働を停止する。その回数は目的に応じて適宜決めればよい（第９項（１）参照。*/
００９１  オンで、ＳＬＰ起動．：本プログラムの実行停止処理。
００９２  オフで、ＧＯ  ＴＯ  ０１０．
：本プログラムには論理矛盾は起きていない
０１０  同期関数に戻る為に次の処理を行う
０１０１  パレット４の第７フラグオンのベクトルを全て初期値化する．/*次回に座標関数４に戻ってきた時の準備。初期値は何時もオフである*/
０１０２  スタック更新プログラムの起動．  /*同上の動作である*/
０１１  同期関数にＲＥＴＵＲＮ．
【００６９】
２１．２    座標関数２プログラム及びそれが統治するプログラム
２１．２．１    Ｌ２型ベクトルのプログラム
（Ｌ２，Ｃ）のベクトルとは下記のプログラムのことである。このベクトルの命令文例を「Ｃ＝１１」とする。（Ｌ２，Ｃ）が統治する命令文はベクトルの叙述法により第２規約に置かれる。この（Ｌ２，Ｃ）には（Ｌ３，Ｃ）がいないものとする。（Ｌ２，Ｃ）に（Ｌ３，Ｃ）がいれば本第３規約にはＬ３，Ｃの正統性判定も加えられることになる。その場合には第５，６，７規約が発生することになる。次に、この場合のプログラム模型を示す。
００１  ＳＴＡＲＴ．
００２  ＮＯＰ．
００３  ＣＡＬＬ  ＶＷＡ（Ｌ２，Ｃ）．  /*  ＶＷＡプログラムを呼び込み、ここまでの循環稼働の結果である（Ｌ２，Ｃ）の第２、６、７フラグと（Ｌ２，Ｃ）の第４領域が稼働途中で汚染されていないかの判定と、汚染が１つでも検出された場合には全てのフラグと第４領域を初期化し除染する。ＶＷＡプログラム参照。*/  
００４  第１規約：（Ｌ２，Ｃ）の第４領域の正統性を用いて第２規約に進むか、ＲＥＴＵＲＮかを判定。正統ならＲＥＴＵＲＮ。
００５  第２規約。
００５１  ＭＯＶＥ  １  ＴＯ  第２フラグ．
００５２  Ｃ＝１１．
００６  第３規約：Ｃ＝１１のＣの正統性の判定。ＮＯＰ．
００７  第４規約
００７１  ＭＯＶＥ  ０  ＴＯ  （Ｌ２，Ｃ）の第６フラグ．
００７２  ＭＯＶＥ  Ｃ  ＴＯ  Ｌ２，Ｃの第４領域．
００７３  ＡＤＤ  １  ＴＯ  主語成立数カウンタ．
００８  ＲＥＴＵＲＮ．    
００９  第５規約：ＮＯＰ．
０１０  第６規約：ＮＯＰ．
０１１  第７規約：ＮＯＰ．
【００７０】
２１．２．２    Ｒ２型ベクトルのプログラム
Ｒ２型ベクトルとは下記のプログラムのことである。このベクトルの命令文例を「ＲＥＡＤ  ＤＢ１１,  Ａ」とする。これは外部記憶領域「ＤＢ１１」の情報をデータ領域Ａに移す命令文「ＲＥＡＤ  ＤＢ１１、Ａ」を実行するプログラムである。ベクトル表示は（Ｒ２  ＤＢ１１,  Ａ）である。この命令文の主語はＡである。命令文「ＲＥＡＤ  ＤＢ１１,  Ａ」はベクトルの叙述法により第２規約に置かれる。この命令文「ＲＥＡＤ  ＤＢ１１,Ａ」には実行条件はないものとする。実行条件があれば（Ｒ２  ＤＢ１１,  Ａ）ベクトルの第３規約で（Ｌ３，Ａ）の第４領域の正統性判定も加えられることになる。なお、（Ｌ４,Ａ）の成立条件である（Ｌ３,Ａ）と（Ｒ２  ＤＢ１１,  Ａ）の成立条件である（Ｌ３,Ａ）との混同はない。（Ｒ２  ＤＢ１１,  Ａ）があれば（Ｌ４,Ａ）はないからである。
００１  ＳＴＡＲＴ．
００２  ＮＯＰ．
００３  ＣＡＬＬ  ＶＷＡ（Ｒ２  ＤＢ１１，Ａ）．  
００４  第１規約：（Ｒ２  ＤＢ１１，Ａ）の正統性を用いて第２規約に進むか、ＲＥＴＵＲＮかを判定．        
００５  第２規約。
００５１  ＭＯＶＥ  １  ＴＯ  （Ｒ２  ＤＢ１１，Ａ）の第２フラグ．/*このベクトルが実行された証の為である。*/
００５２  ＲＥＡＤ  ＤＢ１１，Ａ．/*このベクトルの実行*/
００６  第３規約：(Ｒ２  ＤＢ１１，Ａ)の正統性の判定。/*このベクトルには成立条件がないから、Ａは正統と判定される。シナリオ関数で作られていない外部記憶領域からの読取の場合、それらの信憑性は判定のしようがないので、上記のようにそれらは正統と判定される。若し実行条件があればここで（Ｌ３，Ａ）の第４領域の正統性判定も加えられることになる。*/
００６１１  正統なら  ＧＯＴＯ  ００７．
００６１２  正統でなければ  ＧＯＴＯ  第５規約．
００７  第４規約。
００７１  ＭＯＶＥ  ０  ＴＯ  （Ｒ２  ＤＢ１１，Ａ）の第６フラグ．
００７２  ＭＯＶＥ  Ａ  ＴＯ  （Ｒ２  ＤＢ１１，Ａ）の第４領域．
００７３  ＡＤＤ  １  ＴＯ  主語成立数カウンタ．
００８  ＲＥＴＵＲＮ．    
００９  第５規約：（Ｒ２  ＤＢ１１，Ａ）のＡが同じ座標周期で成立するや否やの判定。
００９０  （Ｒ２  ＤＢ１１，Ａ）の第４領域を初期値化．
００９１  ＭＯＶＥ  ０  ＴＯ  （Ｒ２  ＤＢ１１，Ａ）の第６フラグ．
００９２  （ＮＳ１＝ＮＳ５）なら第７規約に進む．
００９３  （ＮＳ１＞ＮＳ５）なら第６規約に進む．
０１０    第６規約：（Ｒ２  ＤＢ１１，Ａ）の再起の宣言。
０１０１  （Ｒ２  ＤＢ１１，Ａ）の第４領域を初期値化．
０１０２  ＭＯＶＥ  １  ＴＯ  第６フラグ．
０１０３  ＭＯＶＥ  ０  ＴＯ  第２フラグ．
０１０４  ＲＥＴＵＲＮ．
０１１  第７規約：（Ｒ２  ＤＢ１１，Ａ）の再起停止宣言。
０１１０  （Ｒ２  ＤＢ１１，Ａ）の第４領域を初期値化．
０１１１  ＭＯＶＥ  １  ＴＯ  第７フラグ．
０１１２  ＭＯＶＥ  ０  ＴＯ  第２フラグ．
０１１３  ＲＥＴＵＲＮ．
【００７１】
２１．２．３    Ｔ２型ベクトルのプログラム
Ｔ２型ベクトルとは下記のプログラムのことである。Ｔ２はその第４領域で座標関数２を座標関数３に切り替える条件が整ったことを告知する。Ｔ２を分かり易くする為、論理結合型で示しているが、Ｔ２は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。
００１  ＳＴＡＲＴ．
００２  Ｐ２の臨界判定：
００２１  パレット２の第６フラグ列の作成．
００２２  パレット２の第６フラグ列常数の作成．
００３  パレット２の第６フラグ列と第６フラグ列常数のＸＯＲ． 
００３１  ＸＯＲがＺＥＲＯならＧＯＴＯ  ００４．
００３２  ＸＯＲがＮＯＴ  ＺＥＲＯならＧＯＴＯ  ００５．
００４  ＭＯＶＥ  １  ＴＯ  Ｔ４の第４領域．
００５  ＲＥＴＵＲＮ．
【００７２】
２１．２．４    座標関数２のプログラム
図４「座標関数４（Φ４）、座標関数２（Φ２）、座標関数３（Φ３）のフローチャート」を参照する。座標関数２とは下記のプログラムである。
００１  ＳＴＡＲＴ．
００２  パレット２の搭載順位１（ｉ＝１）のベクトルを指定．：座標周期２の始まり
００３  指定された搭載順位（ｉ）のベクトルを起動．
００４  ここは起動したベクトルのＲＥＴＵＲＮ点である．
００５  命令破壊信号（ＯＳ）の有無判定．
００５１  有りで、ＳＥＰ起動．：本プログラムの実行を停止
００５２  なしで、ＧＯ  ＴＯ  ００６． 
００６  起動する次のベクトルを指定（ｉ＝ｉ＋１）．
００７  （ｉ）はパレット２のベクトルの搭載数（Ｎ２）を超えたか．
００７１  超えていれば  ＧＯ  ＴＯ  ００８．
００７２  超えていなければ  ＧＯ  ＴＯ  ００３．
００８  パレット２の臨界の成否判定．：Ｔ２の第４領域のオンオフを利用  
００８１  オフなら  ＧＯ  ＴＯ  ００２．
００８２  オンなら  ＧＯ  ＴＯ  ００９．：座標関数２の終了
００９  論理矛盾発症の有無を判定：Ｅ４２の第４領域オンオフの利用．
００９１  オンで、ＳＬＰ起動．：本プログラムの実行停止処理
００９２  オフで、ＧＯ  ＴＯ  ０１０． ：本プログラムには論理矛盾は起きていない
０１０  同期関数に戻る為に次の処理を行う
０１０１  パレット２の第７フラグオンのベクトルを全て初期値化する．
０１１  同期関数にＲＥＴＵＲＮ．
【００７３】
２１．３      座標関数３プログラム及びそれが統治するプログラム
２１．３．１    Ｌ３型ベクトルのプログラム  
（Ｌ３，Ａ）のベクトルとは下記のプログラムのことである。例えば  ＩＦ  Ｘ＜Ｙ  Ａ＝Ｂ＋Ｃという条件付き命令の条件文のベクトルである。主語Ａの成立条件として、主語ＸとＹの正統性を判定し、更にＸ＜Ｙが成立するかどうかを判定し、全て是なら、（Ｌ３真，Ａ）ベクトルの第4領域をオンとする。これは（Ｌ３真，Ａ）ベクトルが正統に成立したことを宣言している。
【００７４】
００１  ＳＴＡＲＴ．
００２  ＮＯＰ．
００３  ＣＡＬＬ  ＶＷＡ（Ｌ３真，Ａ）．/*  ＶＷＡプログラムを呼び込み、ここまでの循環稼働の結果である（Ｌ３真，Ａ）の第２、６、７フラグと（Ｌ３真，Ａ）の第４領域（オン）が稼働途中で汚染されていないかの判定と、汚染が一つでも検出された場合には全てのフラグのオンオフと第４領域のオンを初期値化して除染する。ＶＷＡプログラム参照。*/    
００４  第１規約：（Ｌ３真，Ａ）の正統性を用いて第２規約に進むか、ＲＥＴＵＲＮかを判定。/*（Ｌ３真，Ａ）の第４領域が正統であれば、このプログラムは実行せずにＲＥＴＵＲＮ。（Ｌ３真，Ａ）の第４領域（オンかオフである。本プログラム００７２参照。）が正統である判定基準は、その第４領域がオンであり、第２フラグがオン、第６フラグがオフ、第７フラグがオフの状態である。*/
００５  第２規約。
００５１  ＭＯＶＥ  １  ＴＯ  第２フラグ．
００５２  ＮＯＰ．
００６  第３規約：ＩＦ  Ｘ＜Ｙ真の正統性の判定。
００６１    （Ｌ４，Ｘ）の第４領域は正統か．
００６１１  正統なら  ＧＯＴＯ  ００６２．
００６１２  正統でなければ  ＧＯＴＯ  第５規約．
００６２    Ｌ４，Ｙの第４領域は正統か．
００６２１  正統なら  ＧＯＴＯ  ００６３．
００６３  正統でなければ  ＧＯＴＯ  第５規約．
００６３    ＩＦ  Ｘ＜Ｙか．
００６３１  正統なら  ＧＯＴＯ  第４規約．
００６３２  正統でなければ  ＧＯＴＯ  第５規約．  
００７  第４規約。
００７１  ＭＯＶＥ  ０  ＴＯ  （Ｌ３真，Ａ）の第６フラグ．
００７２  ＭＯＶＥ  １  ＴＯ  （Ｌ３真，Ａ）の第４領域．
００７３  ＡＤＤ  １  ＴＯ  主語成立数カウンタ．/*Ｌ３型ベクト  ルプログラムは条件文であり主語を成立させないが、命令文を成立させているので主語成立数を１増とする。*/
００８  ＲＥＴＵＲＮ．    
００９  第５規約：（Ｌ３真，Ａ）のＡが同じ座標周期で成立するや否やの判定。
００９１  ＭＯＶＥ  ０  ＴＯ  第６フラグ．  
００９２  （ＮＳ１＝ＮＳ５）なら第７規約に進む．
００９３  （ＮＳ１＞ＮＳ５）なら第６規約に進む．
０１０  第６規約：（Ｌ３真，Ａ）の再起の宣言。
０１０１  （Ｌ３真，Ａ）の第４領域を初期値化．
０１０２  ＭＯＶＥ  １  ＴＯ  第６フラグ．
０１０３  ＭＯＶＥ  ０  ＴＯ  第２フラグ．
０１０４  ＲＥＴＵＲＮ．
０１１  第７規約：（Ｌ３真，Ａ）の再起停止宣言。            
０１１１  ＭＯＶＥ  １  ＴＯ  第７フラグ．
０１１２  ＭＯＶＥ  ０  ＴＯ  第２フラグ．
０１１３  ＲＥＴＵＲＮ．
【００７５】
２１．３．２    Ｔ３１のプログラム
「Ｔ３１の第４領域」は座標関数３を自分の座標関数４に切り替える条件が整っていることを告知する。Ｔ３１を分かり易くする為、論理結合型で示しているが、Ｔ３１は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。Ｔ３１の第４領域の初期値はオンである。
００１  ＳＴＡＲＴ．
００２  Ｐ３の臨界判定：
００２１  パレット３の第６フラグ列の作成．
００２２  パレット３の第６フラグ列常数の作成．
００３  パレット３の第６フラグ列と第６フラグ列常数のＸＯＲ（第１条件）．
００３１  ＸＯＲがＺＥＲＯならＧＯＴＯ  ００４．
００３２  ＸＯＲがＮＯＴ  ＺＥＲＯならＧＯＴＯ  ００６．
００４  主語分布表を用いて行う判定。
００４１  本プログラムの全主語は本プログラムに内在するか（第２条件）/*本プログラムとは現在処理中のシナリオ関数（一個の同期関数、一組の３種の座標関数及びそれらに属するベクトルの組合せ）のことである。内在しない場合は別のシナリオ関数の中にある。*/
００４２  ＹＥＳならＧＯＴＯ  ００５．
００４３  ＮＯならＧＯＴＯ  ００６．
００５  ＭＯＶＥ  １  ＴＯ  Ｔ３１の第４領域．
００６  ＲＥＴＵＲＮ．
【００７６】
２１．３．３    Ｔ３２のプログラム
「Ｔ３２の第４領域」は座標関数３をランク構造に於ける本プログラム（ランク１）の下位の本プログラム（ランク２）の座標関数４に切り替える条件が整っていることを告知する。Ｔ３２を分かり易くする為、論理結合型で示しているが、Ｔ３２は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。
００１  ＳＴＡＲＴ．
００２  Ｐ３の臨界判定：
００２１  パレット３の第６フラグ列の作成．
００２２  パレット３の第６フラグ列常数の作成．
００３  パレット３の第６フラグ列と第６フラグ列常数のＸＯＲ（第１条件）．
００３１  ＸＯＲがＺＥＲＯならＧＯＴＯ  ００４．
００３２  ＸＯＲがＮＯＴ  ＺＥＲＯならＧＯＴＯ  ００６．
００４  主語分布表を用いて行う判定。
００４１  本プログラムの主語は隣下以降の本プログラムにも内在するか（第２条件）
００４２  ＹＥＳならＧＯＴＯ  ００５．
００４３  ＮＯならＧＯＴＯ  ００６．
００５  ＭＯＶＥ  １  ＴＯ  Ｔ３２の第４領域．
００６  ＲＥＴＵＲＮ．
【００７７】
２１．３．４    Ｔ３３のプログラム
「Ｔ３３の第４領域」は座標関数３をランク構造に於ける本プログラム（ランク１）の最上位の本プログラムの座標関数３に切り替える条件が整っていることを告知する。Ｔ３３，Ｐ３を分かり易くする為、論理結合型で示しているが、Ｔ３３は固有のデータ領域（第４領域）を持っているので、実際はベクトル構造でプログラムする。次に、この場合のプログラム模型を示す。
００１  ＳＴＡＲＴ．
００２  Ｐ３の臨界判定：
００２１  パレット３の第６フラグ列の作成．
００２２  パレット３の第６フラグ列常数の作成．
００３  パレット３の第６フラグ列と第６フラグ列常数のＸＯＲ（第１条件）．
００３１  ＸＯＲがＺＥＲＯならＧＯＴＯ  ００４．
００３２  ＸＯＲがＮＯＴ  ＺＥＲＯならＧＯＴＯ  ００６．
００４  主語分布表を用いて行う判定。
００４１  本プログラムの主語は隣上以前の本プログラムにも内在するか（第２条件）
００４２  ＹＥＳならＧＯＴＯ  ００５．
００４３  ＮＯならＧＯＴＯ  ００６．
００５  ＭＯＶＥ  １  ＴＯ  Ｔ３３の第４領域．
００６  ＲＥＴＵＲＮ．
【００７８】
２１．３．５    座標関数３のプログラム
図４「座標関数４（Φ４）、座標関数２（Φ２）、座標関数３（Φ３）のフローチャート」を参照する。座標関数３とは下記のプログラムである。
００１  ＳＴＡＲＴ．
００２  パレット３の搭載順位１（ｉ＝１）のベクトルを指定．：座標周期３の始まり
００３  指定された搭載順位（ｉ）のベクトルを起動．
００４  ここは起動したベクトルのＲＥＴＵＲＮ点である．
００５  命令破壊信号（ＯＳ）の有無判定．
００５１  有りで、ＳＥＰ起動．：本プログラムの実行を停止
００５２  なしで、ＧＯ  ＴＯ  ００６． 
００６  起動する次のベクトルを指定（ｉ＝ｉ＋１）．
００７  （ｉ）はパレット３のベクトルの搭載数（Ｎ３）を超えたか．
００７１  超えていれば  ＧＯ  ＴＯ  ００８．
００７２  超えていなければ  ＧＯ  ＴＯ  ００３．
００８  パレット３の臨界の成否判定．：Ｔ２の第４領域のオンオフを利用  
００８１  オフなら  ＧＯ  ＴＯ  ００２．
００８２  オンなら  ＧＯ  ＴＯ  ００９．：座標関数３の終了
００９  論理矛盾発症の有無を判定：Ｅ４２の第４領域オンオフの利用．
００９１  オンで、ＳＬＰ起動．：本プログラムの実行停止処理
００９２  オフで、ＧＯ  ＴＯ  ０１０． ：本プログラムには論理矛盾は起きていない
０１０  同期関数に戻る為に次の処理を行う
０１０１  パレット３の第７フラグオンのベクトルを全て初期値化する．
０１１  同期関数にＲＥＴＵＲＮ
【００７９】
２１．４    同期関数プログラム
図５「同期関数のフローチャート」を参照する。同期関数とは下記のプログラムである。
００１  ＳＴＡＲＴ．
００２  スタック初期値化プログラム起動．/*同期関数を始動させる際に初期値化を行う。*/
００３  本プログラムの終了判定．：Ｅ４１の第４領域のオンオフを利用 
００３１  オンなら、ＧＯ  ＴＯ  ００４．：本プログラム終了処理 
００３２  オフなら、ＧＯ  ＴＯ  ００５．：本プログラムの始動
００４  ＳＥＰ起動．：Ｓｙｓｔeｍ  Ｅｎｄｉｎｇ  Ｐｒｏｇｒａｍ(本プログラム終了プログラム)
００５  Ｔ３１第４領域のオンオフ判定．：自分の座標関数４の起動．
００５１  オンなら．Ｔ３１第４領域をオフにする．
００５２  自分の座標関数４を起動．/*ここで次の同期周期の座標関数４が始まる。*/
００５３  オフならＧＯ  ＴＯ  ００６．
００６  Ｔ３２第４領域のオンオフ判定．：最近傍下位の座標関数４を起動．
００６１  オンなら．Ｔ３２第４領域をオフにする．
００６２  最近傍下位の座標関数４を起動．
００６３  オフなら、ＧＯ  ＴＯ  ００７．：最近傍下位の座標関数４がなければオフ。
００７  Ｔ３３第４領域のオンオフ判定．：最上位の座標関数３の起動．
００７１  オンなら．Ｔ３３第４領域をオフにする．
００７２  最上位の座標関数３を起動．
００７３  オフなら、ＧＯ  ＴＯ  ００８．：最上位の座標関数３がなければオフ。
００８  Ｔ４第４領域のオンオフ判定．：自分の座標関数２の起動/*Ｔ３１がオフのルートであるから座標関数４には戻れないので、座標関数２に戻る*/
００８１  オンなら．Ｔ４第４領域をオフにする．
００８２  自分の座標関数２を起動．
００８３  オフなら、ＧＯ  ＴＯ  ００９．：自分の座標関数３の起動。
００９  Ｔ２第４領域のオンオフ判定．：自分の座標関数３の起動
００９１  オンなら．Ｔ２第４領域をオフにする．
００９２  自分の座標関数３を起動．
００９３  オフなら、ＧＯ  ＴＯ  ０１０．
０１０  Ｔ３２第４領域のオンオフ判定．：隣下の座標関数４の起動
０１０１  オンなら．Ｔ３２第４領域をオフにする．
０１０２  隣下の座標関数４を起動．
０１０３  オフなら、ＧＯ  ＴＯ  ０１１．
０１１  Ｔ３３第４領域のオンオフ判定．：最上位の座標関数３の起動
０１１１  オンなら．Ｔ３３第４領域をオフにする．
０１１２  最上位の座標関数３を起動．
０１１３  オフなら、ＧＯ  ＴＯ  ００５２．
０１２  ＥＮＤ．
【００８０】
２１．５    ウィルス観察アルゴリズムのプログラム
図７「ウィルス観察アルゴリズムのフローチャート」を参照する。ウィルス観察アルゴリズムとは下記のプログラムである。
００１  ＳＴＡＲＴ．
００２  第２フラグの汚染観察：
００２１  第２フラグの（２，３，４）桁を抽出する．
００３  第２フラグの（２，３，４）桁と対応するフラグ常数（０，０，０）をＸＯＲする．/*  照合する。フラグのオンオフを４桁の数の１桁目とする。汚染されれば２，３，４桁も汚染されるので、それらを０としておき、フラグ常数を設けその２，３，４桁を０，０，０とすれば、フラグの２，３，４、桁の（０，０，０）とフラグ常数の２，３，４桁の（０，０，０）を排他的論理和ＸＯＲする。一致すればゼロとなる。一致しなければ１となる。これによって汚染を検出する。*/
００３１  ＺＥＲＯなら，第２フラグは汚染されていない、
ＧＯ  ＴＯ  第６フラグの汚染観察．
００３２  ＮＯＴ  ＺＥＲＯなら，第２フラグは汚染されている、/*汚染を検出する */
ＧＯ  ＴＯ  Ｌ４，Ａの初期値化．/*  Ａの値を除染する */
００３  第６フラグの汚染観察：
００３１  第６フラグの（２，３，４）桁を抽出する．
００３２  第６フラグの（２，３，４）桁と対応するフラグ常数（０，０，０）をＸＯＲする．/*  照合する */
００３２１  ＺＥＲＯなら，第６フラグは汚染されていない、
ＧＯ  ＴＯ  第７フラグの汚染観察．
００３３  ＮＯＴ  ＺＥＲＯなら，第６フラグは汚染されている、/*  汚染を検出する */
ＧＯ  ＴＯ  Ｌ４，Ａの初期値化．/*  Ａの値を除染する */
００４  第７フラグの汚染観察：
００４１  第７フラグの（２，３，４）桁を抽出する．
００４２  第７フラグの（２，３，４）桁と対応するフラグ常数（０，０，０）をＸＯＲする．/*  照合する */
００４２１  ＺＥＲＯなら，第７フラグは汚染されていない、
ＲＥＴＵＲＮ．
００４３  ＮＯＴ  ＺＥＲＯなら，第７フラグは汚染されている、/*  汚染を検出する */
ＧＯ  ＴＯ  Ｌ４，Ａの初期値化．/*  Ａの値を除染する */
００５  （Ｌ４，Ａ）の第４領域の汚染観察：
００５１  過去に（Ｌ４,Ａ）が正統に生成された時にＶＷＡに保持された（Ｌ４，Ａ）の第４領域と直近の（Ｌ４，Ａ）の第４領域とをＸＯＲする
００５２  ＺＥＲＯなら、直近の（Ｌ４，Ａ）の第４領域は汚染され    ていない。ＲＥＴＵＲＮ．
００５３  ＮＯＴ  ＺＥＲＯなら、汚染されている。
ＧＯ  ＴＯ  （Ｌ４,Ａ）の初期値化。/*  Ａの値を除染する */
００６  Ｌ４，Ａの初期値化
００６１  第４領域を初期値化する．/*  Ａの値を除染する */
００６２  第２フラグをオフにする．/*  第２フラグの初期値化即ち除染  をする。つまりＡの命令を実行する前のオフ状態とする。*/
００６３  第６フラグをオンにする．/*  第６フラグの初期値化即ち除染  をする。つまりＡの命令の再起宣言をオン状態とする。 */
００６４  第７フラグをオフにする．/*  第７フラグの初期値化即ち除染  をする。つまりＡの命令の再起停止宣言をオフ状態とする。*/
００７  主語成立数カウンタを１減ずる。/*  主語Ａは初期値化されたので該カウンタを１マイナスする  */
００８  ＲＥＴＵＲＮ．
００９  主語成立累積数カウンタの汚染観察：
００９１  主語成立累積数カウンタの（４，３，２）桁を抽出する．
００９２  主語成立累積数カウンタの（４，３，２）桁と対応するフラグ常数（０，０，０）をＸＯＲする．/*  照合する */
００９２１  ＺＥＲＯなら，主語成立累積数カウンタは汚染されていな  い。
ＲＥＴＵＲＮ．
００９３  ＮＯＴ  ＺＥＲＯなら，主語成立累積数カウンタは汚染されている。/*  汚染を検出する */
ＧＯ  ＴＯ  ００９４．
００９４    ＳＬＰ起動（Soft Landing Program）
【産業上の利用可能性】
【００８１】
上述してきたように、本発明によれば、ウイルス問題に対する根本的な解決方法が得られることになる。コンピュータ世界が成り立つための基盤が不安定になり損害も世界的に広がり深刻となっている現状にあって、従来のファイアーウォールでウィルスを完全に阻止することが不可能であるという現実に鑑みた場合、本願に係るプログラム及び方法がウイルス問題に対する根本的な解決策であり、現在の本願発明が普及すればその問題は一挙に解決することになる。
【００８２】
更に、従来のプログラムは人が決めた処理順序で主語を生成したり稼働を停止させたりすることに対して、本願のシナリオ関数によれば、プログラムの解とは正統な主語の脈絡を個々の主語の生成処理を循環繰り返すことによって作ることであり、稼働の終了は生成可能な全ての主語が生成した時になる。その時本願のシナリオ関数ではＥ４１プログラムがＮＳ１＝ＮＳ５である状態を判定し稼働の終了を告げる。正統な主語の脈絡とは全ての主語がプログラムによって作られた主語の連鎖である。このことによって主語の連鎖が可視化されそれによってプログラムのエラーも発見しやすくなる。
【００８３】
また、要件のプログラミングにおいて命令文の実行順序を人が決めなくてよいのでプログラミング作業が圧倒的に簡単になるし、プログラミングエラーも激減する。
【００８４】
プログラムがあらゆる家電、乗り物をはじめとする社会システムに組み込まれ、今後さらにその傾向に拍車がかかる点に照らせば、本願は、自動車産業、住宅業、旅行業等の各種産業において利用可能なことをはじめ、政府機関を含む社会インフラ自体に対しても大いなる貢献ができる可能性を秘めている。
【符号の説明】
【００８５】
Ｌ４…Ｌ４ベクトル、Ｌ２…Ｌ２ベクトル、Ｌ３…Ｌ３ベクトル
【図１】
2017138809.tif 000004
【図２】
2017138809.tif 000005
【図３】
2017138809.tif 000006
【図４】
2017138809.tif 000007
【図５】
2017138809.tif 000008
【図６】
2017138809.tif 000009
【図７】
2017138809.tif 000010
【図７−１】
2017138809.tif 000011
【図８】
2017138809.tif 000012
【図８−１】
2017138809.tif 000013
【図９】
2017138809.tif 000014