JP6719798B1 - 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム - Google Patents

論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム Download PDF

Info

Publication number
JP6719798B1
JP6719798B1 JP2020512753A JP2020512753A JP6719798B1 JP 6719798 B1 JP6719798 B1 JP 6719798B1 JP 2020512753 A JP2020512753 A JP 2020512753A JP 2020512753 A JP2020512753 A JP 2020512753A JP 6719798 B1 JP6719798 B1 JP 6719798B1
Authority
JP
Japan
Prior art keywords
syntax
lcps
subject
context
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020512753A
Other languages
English (en)
Other versions
JPWO2021124411A1 (ja
Inventor
根来 文生
文生 根来
Original Assignee
根来 文生
文生 根来
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 根来 文生, 文生 根来 filed Critical 根来 文生
Application granted granted Critical
Publication of JP6719798B1 publication Critical patent/JP6719798B1/ja
Publication of JPWO2021124411A1 publication Critical patent/JPWO2021124411A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本発明は、伝統的なLCPSの検証法の様に、意図的に検証用データを準備し、それを検証対象のLCPSで電算機処理させて、LCPSが発生させるアルゴリズムの正統性を意図的に成立させるための途を求める方法とは異なる方法を提案する。本発明は検証用データを一切使用せずに、検証対象のLCPSから本発明の普遍化された方法でLCPSの超言語脈絡を求め、且つそれを本発明の普遍化された方法で解析して、LCPSが稼働時に発生させるアルゴリズムの正統性の成否を判定する方法を提案する。この方法の中で、LCPSが稼働時に発症させる全てのバグ事象は本発明の普遍化された方法でバグ構文として明らかにされる。LCPSにバグ構文が存在しなければ、LCPSが稼働時に発生させるアルゴリズムは正統である。上述の方法は人的作業により行われても、専用プログラムに従いコンピュータにより行われてもよい。

Description

論理結合型プログラムが実行時に発生する非同期型アルゴリズム(NSA)が不正値を発症させる論理結合型プログラムのソース(LCPS)の構文(バグ構文)を特定する方法に関する。
実行時に同期型アルゴリズム(SA)を発生させるシナリオ関数(SF)の全ソース(SFS)を決定するためのLYEE理論を開示している文献として、特許文献1乃至3及び非特許文献1乃至3がある。また、SFSを開示している文献として、特許文献4乃至6及び非特許文献4及び5がある。
LYEE理論は意味の最小単位を論理原子、その構造を「ベクトル」として、SFSを決定するための生命作用のモデル論である。
米国特許第6532586号明細書 特許第31333343号公報 欧州特許第0947916号明細書 特許第5992079号公報 特許第6086977号公報 米国特許第10235522号明細書
Fumio Negoro, "Lyee’s Hypothetical World", "New Trends in Software Methodologies Tools and Techniques" 84 of Frontiers in Artificial Intelligence and Applications, pp. 3-22, IOS Press, September 2002 根来文生、「コンピュータウイルスを無力化するプログラム革命(LYEE)」日本地域社会研究所、2014年10月 根来文生、「LYEE理論の要約」、[online]、エムティインターナショナル株式会社、[令和1年9月12日検索]、インターネット<URL: https://mtiinc.jimdo.com/no190907/lyee理論の要約/> 根来文生、「シナリオ関数の原理模型」、[online]、エムティインターナショナル株式会社、[令和1年9月12日検索]、インターネット<URL: https://mtiinc.jimdo.com/no190907/シナリオ関数の原理模型/> 根来文生、「シナリオ関数の全景」、[online]、エムティインターナショナル株式会社、[令和1年9月12日検索]、インターネット<URL: https://mtiinc.jimdo.com/no190907/シナリオ関数の全景/>
(LCPSが発生させるNSAの正統性診断を可能にする方法)
SFの研究課程の中で、SFのSAの正統性をSAに恒常的に維持させるために、LCPSが発生させる非同期型アルゴリズム(NSA)の正統性診断を可能にする仕組が論考された。そして、求められた仕組が、本発明の「LCPSの超言語脈絡」である。
LCPSの超言語脈絡を捉えるためにLCPSに加えられる、後述される「動化パラメータ」はSFでは本来的に具備される情報なので、SFでは改めて動化パラメータを取り込む必要はない。本発明のLCPSの超言語脈絡は結果的にSFとの関係に於いて求められている。そして、この仕組が、SFが実行時に発生させるSAの中でSAが遭遇するバグ事象問題、ウイルス問題をSAが自律的に解法を可能にする方法として採用され、且つSFに組み入れられた。そして、並行的に、本発明のLCPSが実行時に発生するNSAの正統性成否を判定するための方法として確立された。2003年のことである。
以下、(1)から(10)で、本発明に係る知見を示し、LCPSの超言語脈絡の仕組は(11)以降で示す。LCPSの超言語脈絡をLCPSから導出する手続は実施形態の項で詳述される。
(1)(LCPS、SFS)
プログラムが実行時に発生させるアルゴリズムにはNSA(非同期型)とSA(同期型)がある。後者は1986年に本発明者がその存在を予告し、2008年にSAを発生させるプログラムであるSFの静的構造のソース(SFS)とそのためのLYEE理論の最終版に到達している。実行時にNSAを発生させるLCPSが論理結合型と呼ばれる構造になるのに対し、SFSはデータ結合型構造に帰着する。SFSが実行時に発生させるSAは世界で最初であることに於いて、SFSは世界で最初で唯一の静的構造になっている。SFSのコードは既に公開されている(「SFSの全景」を参照)。既述の様にSFSは体系化されたLYEE理論に因り成立するのに対し、既に、伝統的様相として普及しているLCPSには体系化されたLYEE理論の様な論拠はない。NSA、SAの認識の仕方はそれぞれの定義法として後述されている。
(2)(バグ構文)
ここでは、プログラムとして成立する応用アルゴリズム(AA)、LCPS、SFSを総称して「AA」と記す。AAの成立を阻害する構文の主語名の主語(最終情報)を発症させる構文を本発明では論考の結果、バグ構文と呼ぶことにする。構文が生成する主語を保持する記憶領域は習慣的に構文ごとに特定されている。LYEE理論の研究ではLCPSを解析的に考察する上で、曖昧さを除くために、構文が生成する情報を主語、主語を保持する構文ごとに特定される記憶領域を主語名として捉える。本発明はこの命名法を踏襲している。例えば、LCPSで生成されるAAが実行時に発生させる情報が主語名の主語となるとき、この主語名の主語は構文が生成している。そして、この主語を発生させる構文(必要条件)に係る十分条件の全体をNSAが満たしていなければ、本発明ではこの主語を生成する構文を「バグ構文」と定義する。そして、この様な主語は不正値と総称される。この観点に立てば、例えば、ウイルス情報、バグ情報が構文の主語名の主語として捉えられれば、本発明ではおのずとこの主語名の主語は不正値となる。
構文の主語名の主語が不正値となることを本発明では「NSAが構文をバグ構文に変える」と表現する。どの構文も主語が不定値になる迄の間はコンパイル済であることに於いて、どの構文も正統である。SFのバグ構文となる不正値はSFのSAが悪影響を他の構文に及ぶ前にSFで主語名(構文)ごとに用いられる「主語ベクトル」の全体の効果でその不正値を自律的に捉え、且つ自律的にリセットし、且つ自律的に再生される。他方、LCPSの構造は論理結合型であるために主語ベクトルを用いることが出来ない。故に、LCPSのNSAではSAの様な自律性を成立させることが出来ない。
(3)(LCPSの宿命的な欠陥)
LCPSを分析するとAAが占める構文数の割合は平均的にLCPS(全体)の約90%で、それら構文には論理結合のために実施時に於ける順序性が不可欠になる。
SFを分析するとAAが占める構文数の割合はSF(全体)の約30%である。但し、SFの構文はデータ結合であるために実施時に於ける構文の順序性は不要である。そして、SAを成立させる過程の中で、AAの成立を阻害する情報、例えば、バグ、ウイルス情報等を含む全ての不要情報(不正値)が発症する都度、それらを自律的に捉えかつ、AAに悪影響を及ぼす瞬前にそれらを排除する仕組を自律的に成立させている。
LCPSにSAの様な仕組を求めることは不可能である。本発明者の検証では、残存バグ構文候補は本発明が捉えるバグ構文数の約30%に及ぶ。換言すれば、LCPSとはこの量のバグ構文候補を抱えて稼働しているプログラムのことである。
(4)(NSAの正統性診断を可能にする仕組)
NSAの正統性診断とは1個の主語名とそれ以外の主語名の脈絡関係の成否が全主語名について求められれば、NSAの正統性診断は可能になる。しかし、この仕組をNSAに求めることは現実的ではない。ここでする話はLCPSから全主語名について正統性診断を可能にする仕組(LCPSの超言語脈絡)のことである。不可能を可能にする話である。
(5)(SA,NSAの定義)
LCPSが実行時に発生させるアルゴリズムはLCPSに属す全主語名を複数個の部分集合に分け、それぞれを単元として、それらの単元を論理的に網羅し、全主語名の主語を捉えるためのアルゴリズムのことである。このアルゴリズムは非同期型アルゴリズム(NSA)と呼ばれる。SFが実行時に発生させるアルゴリズムはSFに属す全主語名を唯一の単元とし、全主語名の主語が成立する迄、この唯一の単元を繰り返す仕組のアルゴリズムのことである。このアルゴリズムは同期型アルゴリズム(SA)と呼ばれる。
(6)(主語ベクトル)
SAを捉えるためには、「主語ベクトル」が不可欠となる。主語ベクトルはLYEE理論で発見されSFの構成素子となっている。図8参照。
(7)(プログラムの解)
プログラムの解とは、プログラムが実行時に発生させるアルゴリズムで、プログラムに属す全主語名の主語が成立する状態として定義される。この定義はLYEE理論により明らかにされたものである。この定義によれば、LCPSの解は不明であるが、SFの解は存在する。SFの解は「主語系譜」と名付けられている。
(8)(プログラム解の役割)
LCPSの部分分割をLCPSに属す全主語名の部分分割として捉えれば、部分分割は可能である。しかし、部分分割をアルゴリズムの部分分割として捉えると、アルゴリズムは部分分割を不可能として成立するので、この部分分割は不可能である。もし、プログラムの解が成立すればアルゴリズムの部分分割は可能になる。通常、LCPSの解は成立しないので、LCPSのアルゴリズムの部分分割は不可能である。プログラムの解の成否はアルゴリズムの部分分割が可能か否やを判定するパラメータになっている。LCPSのNSAが発症させるバグ事象はこの問題に起因するLCPS部分化問題に因り発症している。コンパイルが完結していても、LCPSの必要条件である仕様の妥当性の確認しか果たせない伝統的なLCPSの検証法でこの起因を捉えることは不可能である。故に、バグ事象問題は実質的には未解決のまま放置されている状況にある。因みに、プログラムの解をもつSFでは部分化されるアルゴリズムの構造欠陥問題は主語ベクトルと実行時に発生するSAを用いて実行時に解決される。公開されているシナリオ関数の全景図、SFの解である主語系譜を熟視すれば、このことが理解できる様になっている。
(9)(応用アルゴリズム(AA)の成立の仕方)
LCPSのNSAはLCPSに属す全主語名の主語を論理結合的に成立させることに因りLCPSのAAを成立させる。SFのSAはSFに属す全主語名の主語を同期的に成立させることに因りSFのAAを成立させている。
(10)(SAのAAとNSAのAAの違い)
SFのAAは不正値を排除しながら正統なAAを成立させるためのアルゴリズムを成立させている。他方、LCPSのAAは本来的に正統なAAを成立させるためのアルゴリズムを成立させる構造にはなっていない
(11)(調和座標、調和脈絡)
調和座標とはLCPSの全構文に付与される構文の実行順位のことである。調和座標は本研究の中で定義された座標系である。図4の点線で示される構文の実行順位は調和脈絡と呼ぶ。重要なことは超言語座標は付与された調和脈絡の基で成立するという点である。
(12)(超言語座標)
超言語座標とはLCPSの全構文の主語名、変数主語名それぞれに付与される二つの調和座標の対(TCX1,TCX2)である。
TCX1は構文の主語名の主語を保持する領域を定義する領域定義文のTCXである。TCX2は主語を生成する構文のTCXである。故に、主語が主語名の主語の場合にはTCX2はその構文のTCXとなる。そして、主語が変数主語名の主語の場合にはTCX2はその変数主語名を主語名とする構文のTCXとなる。
(13)(超言語脈絡)
(a)超言語脈絡の発端主語名とは、LCPSに属し、且つ主語ベクトル種別がL4、W4で統治され、且つその構文のTCXがLCPSの最小の構文の主語名である。
(b)超言語脈絡の終端主語名とは、LCPSに属し、且つ主語ベクトル種別がR2、L2で統治される構文の主語名の全てである。
(c)LCPSの超言語脈絡とは、二つの超言語座標を結ぶ経路が終端主語名から発端主語名に収斂す経路のことである。
(d)発端主語名が属す構文、終端主語名が属す構文以外の構文は終端主語名と発端主語名を結ぶ脈絡の節点となる。
(e)超言語座標1と超言語座標1を受容する側(発端主語名に近い側)の超言語座標2の関係は構文の位置座標TCXは異なっていても超言語座標が同じになる。
(14)(図2、図3、図4、図5)
LCPSのNSAの正統性診断を可能にするLCPSの超言語脈絡を成立させるための情報には、LCPSの情報と、SAを成立させるSFの情報から「動化パラメータ」として求められているLCPSには存在していない情報がある。
本発明ではこの情報をLCPSを阻害しない様にLCPSに組み入れている。そして、この情報を治める器として、図2の形式が決定されている。本発明では図2に例示の形式の情報を「LCPSの超言語脈絡情報」と名付けている。
図4は絵解きされた図2の様相である。図4は事例の図2の情報から、20年余本発明者の研究をトレースし続けている齢85歳病身の平山氏が描いたものである。因みに、図4は無料のグラフ化ツールで図2の情報をパラメータとして、自動生成することも可能である。NSAの正統性判定と、NSAが発症させるLCPSに掛かるバグ構文の情報は、図2の解析を行う専用プログラムを準備すれば、図3の形式で求めることが出来る。図4、図5は図2の解析を行う専用プログラムの仕様決定に貢献する参考資料である。
(15)(NSAの正統性を特定する方法)
図2から図3に掛かる情報が抽出できなければ、LCPSが実行時に発生するNSAは正統である。
(16)(LCPSの構文をバグ構文に変える起因)
LCPSの超言語脈絡を用いれば、構文をバグ構文に変える起因は以下の二つに特定することが出来る。
(a)LCPSの超言語脈絡に途切れを発症させる構文の存在。
(b)LCPSの超言語脈絡に錯誤を発症させる構文の存在。
即ち、起因(a)は構文1の変数主語名が受容する筈の主語名の構文がLCPSの超言語脈絡上に存在しない場合である。この場合、本発明では構文1を脈絡を途切れさせる構文と呼ぶ。構文1は図2の情報の超言語座標のTCX2が空白であることから視覚的に捉えることが出来る。この構文1を特に[データ揺動構文]と呼ぶ(図3参照)。
起因(b)は構文1の変数主語名が受容する正解の主語名が正解ではない主語名を受容する場合である。正解の主語名とは、変数主語名1が属す構文のTCXを起点とすれば、時制的にこの起点のTCXの直近の過去側に位置する構文に属す主語名のことである。正解ではない主語名とは、正解以外の構文の主語名を受容する場合である。
起因(b)の構文1が受容する主語名が属す構文は図2を解析する専用のプログラムを準備して、それにより構文1が受容している主語名が属す構文を特定しなければ、その脈絡の正誤を判定することはできない。起因(b)の構文をLCPSから暗算的に捉えることは余程の変人でなければ不可能である。伝統的なLCPSの検証法でこの構文が特定できる道理がない。
起因(b)の構文位置を誤らせる原因は本発明の観点では調和座標の付与の錯誤である。調和座標の付与は結果的に人による作業である。そして、そこに錯覚が生じる場合、起因(b)が発症する。本発明者は大学で教鞭をとっていた頃、スマートコンパイラを成立させるための基本的な課題としてこの課題を克服するコンパイラを作成し日本の情報処理学会で発表している。50年前の話である。
(17)(バグ構文を特定する方法)
LCPSの超言語脈絡でバグ構文を発症させる起因が特定できれば、不正値を具体値で特定しなくても、LCPSの超言語脈絡の構造から、その発端主語名の主語は不正値となることは明らかである。そして、発端主語名の主語が不正値になれば、発端主語名の配下の発端主語名を変数主語名とする構文はその影響を受けることに於いて、バグ事象を発症させる構文に変わることになる(図5、図4を参照)。これは、LCPSをテストデータを用いて電算機で処理しなくても、バグ構文に変わるLCPSの構文を特定できることを意味する。
(18)(バグ事象区分)
LCPSの超言語脈絡に於いて、起因(a)(b)の構文位置と発端主語名が属す構文位置の脈絡の間でバグ構文は発症する(図5参照)。そして、この脈絡の間に1個以上の主語ベクトルL3で統治される条件文が存在し、その内の条件文の判定式が発端主語名の主語の不正値の影響を受けていれば、発端主語名から最遠の位置のこの条件文と起因(a)(b)の構文位置の間の全構文は部分破壊される。部分破壊を伴なうバグ構文は図3のバグ事象区分では「2」と記される。
部分破壊を伴なわないバグ構文は図3のバグ事象区分では「1」と記される。バグ事象区分2のバグ構文の修正は容易ではない(図5、図3参照)。
(19)(起因(b)の構文が発症する理由)
コンパイル済のLCPSの構文が実行時バグ構文に変わるのはNSAの仕儀である。このNSAの仕儀が生じるのは以下の理由である。即ち、LCPSにはプログラムの解が成立しない。これは実行時のLCPSでは部分と全体のアルゴリズムの関係を曖昧にする原因になることを示唆する(図7参照)。
そして、LCPSの同じ部分プログラムが複数個所で使用される場合、同じ部分プログラムの稼働条件が全て同じになるとは限らない。そして、LCPSの部分プログラムにはこの違いに対するコーデング上の対応措置が不可欠であるにも関わらず習慣的にこの措置が講じられてはいない。結果、このことが変数主語を受容する正解の主語名の構文が正しくは不明となる事態であるにも関わらず、不明と解釈できない想いが、LCPSの調和座標の付与を規則通りに成立させてしまう。前項(16)の起因(b)の構文はこの様な背景により生じている。
(20)(LCPSの役割)
OSの仕事はプログラムの実行生産性の向上に止まる。以下の課題はOSでは解決できない。
(ア)LCPSの生産性
(イ)LCPSの保守生産性
(ウ)プログラム言語問題
(エ)コンパイラ問題
(オ)バグ構文の排除
(カ)ウイルスの排除
SFではこれら課題はSFの開発作業時並びに、特に(オ)(カ)はSFの実行時に自律的に解法される。他方、LCPSではこれら課題は何一つ解法することが出来ない。
(21)(主語名の臨界状態)
本発明者のSF、LYEE理論の研究課程の中で、LCPSに属す主語名数とLCPSが実行時に発生するアルゴリズム(NSA)の錯誤の関係が論考されている。この論考の中で同じ名詞が重複している場合にNSAを錯誤させる原因(前記(16))が生じていることが明らかにされたのである。本発明では同じ名詞が重複して用いられている状態を主語名の臨界状態と呼ぶ。
[LYEE理論]
(1)(無限象)
LYEE理論では、生命作用が認識を行うとき、その瞬前に生命作用は正統な認識を成立させるための「全貌」を受容していると仮説する。LYEE理論ではこの全貌を「無限象」と呼ぶ。LYEE理論はこの無限象を捉える仕組の論考である。この仕組はLYEE理論では「意識関数」と呼ばれる。そして、意識関数の意味をプログラム世界の用語に写し替えられた意識関数がシナリオ関数(SF)である。
(2)(同期化)
無限象の全貌を捉える仕組は、部分を極限まで全体化する仕組として成立する。部分とは動性様相であり、全体とはその動性が静性に遷移した様相である。換言すれば、部分を極限まで全体化するとは部分の動性を同期化することである。何故なら、同期化された様相は静的様相に帰着するからである。因みに、同期化が成立しないプログラムは部分である。故に、構文数の規模に関係なく、LCPSの部分プログラム、並びにLCPSの全体は恒常的に部分である。即ち、それらの様相は動性である。故に、SFではプログラムの解は特定されても、同期化が成立しないLCPSのプログラムの解は不明のままである。部分を極限まで全体化するための仕組はLYEE理論により求められた。即ち、無現象の単元(フラクタル)の内容を認識可能にする仕組1(ベクトル)と、仕組1の全集合を同期化させる仕組2が求められた。無現象の単元は主語名に置き換えられている。SFとはLCPSを極限まで全体化するための仕組のプログラムである。
(3)(可視化されたアルゴリズム)
ラバール大学による可視化された「NSAの全景」はトウモロコシ型の混沌たる脈絡に、そして、「SAの全景」は整然とした繰り返し型の脈絡に治まっている。
(4)(バグ事象を捉える手段)
本来的に正統性を捉えているSAをNSAに写し両者の差分を論考する。その差分がバグ事象を発症させNSAの原因である。正統性が成立しないNSAにバグ事象が発症するのは必然である。そのバグ事象をNSAで捉えようとするのは言を待つまでもなく矛盾である。LCPSを基にLCPSの超言語脈絡を求め、それを解析するのでなければ、バグ事象は捉えられない。LCPSの超言語脈絡とはLCPSから求められる最後の同期構造の様相である。
(5)(NSA成否判定の原理パラメータ)
LCPSの完成度は他の分野の製品なら返品レベルにある。かつIT業界のビジネス第一主義はNSAに係る技術、そして、その知性(良心)の空洞化はとめどなく加速している様に思われる。本発明はNSAの成否判定を行う方法である。アルゴリズムの性質からLCPS仕様の成否判定を行う伝統的な検証法と本発明の検証法では以下の理由で異なる。
(i)LCPSの仕様情報はLCPSの手続きを決めるための必要条件の部分である。
(ii)LCPSのアルゴリズムは必要条件が発生させる動性様相である。
(iii)アルゴリズムは部分では成立しない。
(iv)アルゴリズムは必要条件に係る十分条件の全体である。
(v)アルゴリズムの全体はプログラムの実行時に特定される。
(vi)SFのソース構造は実行時に十分条件の全体を捉える。
(vii)NSAはLCPSが発生させるアルゴリズムである。
(viii)SAはSFが発生させるアルゴリズムである。
(6)(8項目の意義)
上記アルゴリズムに係る8項目は、仕様の検証法に帰着している伝統的な検証法では、NSAの正統性の成否が十分に判定できないことを示唆している。付言すれば、LCPSの伝統的な検証法をいくら山積みしてもNSAの完全な正統性判定には至らないことを示唆している。故に、このことを前提に稼働中のNSAを調査するとNSAの欠陥を明らかにすることができる。NSAが成立させるAAは不完全であることが明らかになる。結果、すべてのLCPSは不完全の状態で稼働していることも明らかになる。故に、LCPSにシステム事故が発症するのは回避不可能なLCPSの必然性だということである。既述のラバール大学での可視化されたLCPSのNSAはこのことを示唆するに足りるものになっている。
(7)上記(5)の8項目はSFの静的構造を求める本発明者の研究課程の中で、稼働中のLCPSの調査分析の情報から求められたものである。プログラムのアルゴリズムは生命作用として捉えなければプログラム課題の本質(プログラムの真実)には至らないとの自覚の目途が立った1986年である。LYEE理論、そしてSFは1972年から開始された研究のゴールとして、完結されるのは2008年である。この間、本発明者により行われた稼働中のLCPSの分析は通算1000個に及ぶ。LYEE理論、そしてSFが完結に至るのはこの分析情報から得られたLCPSに係る知見である。本発明はSFのSAが基盤である。
(8)(LCPSのNSAがバグ構文を発症させる原因)
コンパイル過程が完了しているLCPが実行時に発生するNSAは正統である。そして、NSAが正統ならバグ構文は発症しないのがプログラムの道理である。故に、SFではコンパイル過程が完了すれば、LCPSに対して行われる様な伝統的なLCPSの検証過程は不要である。SFではコンパイル過程が完了すれば、稼働過程に入ることが出来る。
そして、実行時に不要情報が発症すればが不要情報を捉え且つ排除する仕組がSAには自律的に成立する様にSFSの定義構造が設計されている。しかし、この様な仕組を成立させるNSAをLCPSに求めることは不可能である。
この問題をLCPSで回避させるためには、部分プログラムが使用される個所ごとに実行可能条件を設定して、その成否で部分プログラムの使用の可否を判定しなければならない。そうでなければその部分プログラムの定義は可能でもそのアルゴリズムは成立しない。この実行可能条件はその部分プログラムに属す主語名以外の主語名を必要とする。この様な問題を解法するために、SFではLCPで言う様な部分プログラムはない。主語名ごとに定義される主語ベクトル(図9参照)が用いられる。そして、それら全主語ベクトルでこの問題は自律的に解法される。従来の部分プログラムを使用したい向きにはそれら部品プログラムは主語ベクトルの第2規約として設定すればよい。論理結合型の部分プログラムに実行可能条件を設定することはこのことが理解できる人が見当たらないことに於いて現実的ではない。AIの技術者がいないというレベルの話とはわけが違うのである。
(9)(正統な構文をバグ構文に変える仕組)
NSAの正統性を検証するデータは、AAの成否を問う伝統的な検証法で用いられるデータ(仕様情報)ではなく、NSAを発生させる実行可能なLCPSである。本発明ではNSAを検証するとは、LCPSの全構文を用いてNSAの様相を捉えることである。この様相を本発明ではLCPSの超言語脈絡と呼ぶ。図2または図4はLCPSから求められる超言語脈絡のための情報である。
超言語脈絡が本発明の主体である。結論的に言えば、本発明は超言語脈絡を用いて、NSAがLCPSの正統な構文をバグ構文に変える構文を特定する方法である。超言語脈絡の全ての脈絡の経路は、先走るが、脈絡の定義方法から、図4で見ることが出来る様に、終端主語名に端を発し発端主語名に収斂する。超言語脈絡を用いて、バグ構文の存在性を解釈すれば、バグ構文とは超言語脈絡の経路の途切れに因り発症する構文のことである。
LCPSには当初から脈絡が途切れているバグ構文、稼働中に脈絡が途切れるバグ構文がある。前者は幼稚なプログラムの錯誤である。この様なバグ構文は言語変換された履歴を持つLCPSに多く見ることが出来る。このバグ構文が生成するデータは不正値となるのだが、正常値と不正値の差分は往々にして微小なので、システムにもよるが、関係者、利用者の殆どはこの事象を見過ごしている。
超言語脈絡に途切れを生じさせる原因は、既述の幼稚なプログラムの錯誤を除けば、上述に係る認識不足が遠因である。関係者がこの認識不足の事象を認識できれば、脈絡を途切れさせる構文を図2または図4から特定することが出来る。そして、その構文に端を発する全てのバグ構文を図3の形式で特定することが出来る。
(10)(LCPS世界の再起の指針)
LCPSの伝統的な検証法をよく理解できれば、システムの処理時間測定程度にとどまる。もし、それ以外の意義をこの検証法に求めるのであれば、伝統的な検証法にこだわらずに、プログラムの検証法とは何かを考えることを勧めたい。本発明は新たな検証法の指針になるであろう。
(11)(本発明の診断対象)
SFではコンパイルが済めばSAの正統性が保証される。故に、SAは本発明を必要としない。本発明の診断対象は成否が不明なNSAの原因を明らかにすることである。
(12)(LCPSの原理的な課題)
SFがデータ結合型プログラム故に実行時のアルゴリズムはSAとなる。他方、LCPSは論理結合型、換言すれば、人工的プログラム故にその実行時のアルゴリズムはNSAとなる。そして、NSAが発症させるプログラム問題に気付いたとしてもそれをそのLCPS上で、あるいは別のLCPSで解決しようとしても、それは不可能である。ウイルス対応のLCPSで明らかな様に、ただプログラム問題の屋上屋を重ねるだけである。NSAの課題はLCPSの構造問題に起因するので、LCPSの構造を変えない限り、普遍的な解法(例外のない解決)には至らない。
(13)(存在し続ける約30%のバグ構文)
本発明者の調査では、残存バグが占める割合は全体の約30%である。そして、稼働中この残存バグが目覚めればシステム事故を発症させる。事故後、このバグ構文の発症の仕組は誰も解らない故に、関係者は仕組の一部を原因として、結果的に屋上屋を重ねるしか途のないLCPSの改修を実施している。
(14)(すべてのバグ構文を捉える仕組)
本発明はLCPSの超言語脈絡を用いてバグ構文の全てを捉える方法である。
(15)(LYEE理論の適用実績)
実行時不要情報から解法されるSFの開発作業は、作業量的な意味で、学習要領で明記されている通りの内容の作業をその明記どおりに果たす気質(新人)のプログラマであれば実施可能である。例えば、401Kシステムは世間的には知る人は知るものであるが、2003年当時、本発明者はまだSFの使用許可を与えていなかったので、LYEE理論を用いて、約200万個の構文でなるプログラムを新人勢力が約10か月で納品している。これは想定されるSFの生産性パラメータ(コード化率、テストレス率、全作業工数、作業工数の工程配分率、作業自動化率、開発作業難度、業務難度)にもっとも合致する典型例となった。因みに、LYEE理論で1993年以降2006年までに開発されたシステムはいずれも大型で36個である。
(16)(LCPS技術課題)
実行時にバグ構文が発症しなければ、NSA、LCPSには正統性が成立する。しかし、この様なことは、システムの規模にもよるが、LCPSでは万にひとつもありえないのである。本発明者の調査では、稼働中の300個の構文のLCPSですらバグ構文が発見されている。しかしLCPSだと稼働を続けるしか方法のない宿命的なプログラムである。
[LCPSの十分条件]
バグ構文を発症させる原因を要約すれば、以下の5点である。
(ア)LCPは解が不定であること。
(イ)結果、部分と全体の意味があいまいになること。
(ウ)故にLCPSの全構文の実行順番の付与規則が決定的にはならないこと。このことが付与者がコンパイラであれ、人であれ、誤記を生じさせる。
(エ)実行順番の誤記が「超言語座標」の付与に誤記を生じさせること。
(オ)結果、「超言語脈絡」に途切れを生じさせること。
以上が実行時にLCPSに属す構文をバグ構文に変える仕組の大筋である。バグ構文を発症させる最終的な原因は、超言語脈絡に途切れが生じる上記(オ)のほかに、超言語脈絡が上記(エ)の理由で誤って成立する場合もバグ構文を発症させる最終的な原因となる。上記(オ)は図2の情報を図4的に解析すればその位置の特定が可能になる。上記(エ)は超言語脈絡の生成規則に違反する状態である。超言語脈絡を解析すれば、その箇所が捉えられる。
[発明の概要]
1972年から2008年迄、本発明者が進めて来た研究は次の様に要約される。
(1)論理結合型プログラムが実行時に創出する非同期アルゴリズムの課題に関する研究
(2)上記課題を解法するためのプログラム(SF)の存在性に関する研究
(本発明の動機)
本発明の動機はプログラムの完全体を志向するプログラム(SF)の静的構造を理論的に求める研究の過程で、LCPSが発症させるバグ事象の起因を明らかにする必要があり、バグ事象が1986年から2000年にわたり観察された。そして、その起因には(ア)LCPSに紐づけられるもの、(イ)起因が不明のものとに仕分けされる。本発明では(ア)のバグ事象は、後述される図3のバグ事象区分1、そして、(イ)のバグ事象は図3のバグ事象区分2に反映されている。そして、区分2はLCPSの部分破壊を伴うバグ事象、区分1はLCPSの部分破壊を伴わないバグ事象である。これらも本発明では図3に反映されている。
(CPSがバグ構文を発症させる原因)
この研究は「ソフト危機の警告」に端を発して1972年に開始される。因みに、この警告はプログラム規模が150万ラインを超えると所謂バグ問題を解決することが誰にも出来なくなり、プログラマのコード化率(プログラマが1日に決定可能なコード数)がゼロに至るとの予告のことである。因みに、原理的に好ましくないプログラムの部分化が積極的に進められる様になるのは、プログラムの開発方法論、自動プログラミングが望めなくなるとの研究不足の人々が大勢を成す1990年初頭からである。この警告がその背景にある。そして、原理的に好ましくないプログラムの部分化がIT業界の潮流となる。
プログラムの部分化が原理的に好ましくないとは本発明者の指摘なのだが、そのわけは、論理結合型事象の部分化の定義はシステムに属す全主語名を部分化することだから誰にでも出来る。しかし、その部分プログラムが実行時に発生させるアルゴリズムの成否はその部分プログラムが発生させるアルゴリズムで判定できるとは限らない。プログラム言語の文法規則の中にもこの成否問題を解決する構文規則は見当たらない。アルゴリズムの成否はアルゴリズムの存在原理から、全アルゴリズムでのみ問うことが出来る。故に、部分化の定義は誰にでもできるが、その部分アルゴリズムが全体となる様に部分プログラムを定義することは誰にでも出来る話ではない(図6参照)。付言すれば、人が機械物と異なるプログラムなる存在に対して、配慮なく機械物の部品と同じ感覚で部品プログラムを定義している。部品プログラムが実行時に人が気付くことが出来ない錯誤を帯同する部分アルゴリズムを正統なアルゴリズムとして発生させている。LCPSの構文をバグ構文に変える可能的原因はこの部分アルゴリズムである。
(本発明は実施検証がされている)
本発明者は約50万個の構文で構成される制御プログラムが実行時に発症させるバグ構文を捉えるために本発明の考えを用いて実証検証を行っている。この検証で捉えられたバグ構文に変わる構文は複数個所で共通に使用される部分プログラムに属す構文のひとつであった。本発明の成立性はこの検証で証明されている。
(十分条件の全体とLCPSの超言語脈絡の違い)
(1)(十分条件の全体)
LCPSに属す構文、例えば構文1の主語名1の主語が実行時に成立するには、主語名1に掛る全変数名がそれぞれ別の構文の主語名となる関係から、構文1が実行される以前にそれら主語名の主語は既に成立していなければならない。そして、変数主語名の主語を成立させるこの関係が、LCPSの始祖となる主語迄達していれば、この関係は主語名1の主語の正統性が成立する十分条件の全体と呼ばれる。
(2)(十分条件の部分)
該当項を参照
(3)(図2の求め方)
上記(2)の現象を捉えるための情報が「図2」である。
(4)(図4の求め方)
図2の情報を絵解きすれば図4となる。図4は図2の情報から人的に、または図2の情報をパラメータとして市販されている絵解きツールで描くことが出来る。
(5)(図3の求め方)
図2の情報を機械的手続きで解析すれば、図3の情報が求められる。これは図3の情報は人的に、または作成可能な専用プログラムで図2から求められることを意味する。
(6)(LCPSの十分条件の全体)
LCPSに属す全構文に掛る全主語名それぞれの主語名の主語の正統性を判定するためには主語名の主語に掛る十分条件の全体をLCPSに属す全主語名ごとに捉える必要がある。しかし、論理結合型であるLCPSは十文条件の全体を捉えるために必要な情報は持ち得ていないのである。つまり、十文条件の全体を捉えることはLCPSでは不可能である。換言すれば、これはLCPSの実行時の正統性検証は原理的には不可能であることを意味する。
因みに、SFは実行時に同期型アルゴリズムを成立させる構造として設計されている。故に、SFではこの構造により主語名の主語に掛る十分条件の全体を全主語名について捉え且つ成立しない主語、つまり不正値となる主語を自律的に排除することにも成功している。
本発明では、LCPSバグ構文を捉える仕組が論考され、不正値を発症させるバグ構文の定義が明らかにされ、LCPSからバグ構文を捉えるための必要な情報が定義された。
また、本発明では、バグ構文を捉えるために不可欠な情報が以下の動化パラメータとして定義され追加された。
主語名
変数主語名
主語ベクトル
構文種別
多重構造化される調和座標
調和脈絡
超言語座標
超言語脈絡
発端主語名
終端主語名
以上の情報は図2に収集する。図2の情報を絵解きするために発端主語名、終端主語名が求められる。そして、図2の情報から、バグ構文を捉えることに成功する。
LCPSの脈絡とは図2の情報のことである。即ち、LCPSの脈絡とは十分条件の全体の構造を基に図2から求められるただひとつの特異な脈絡である。そして、LCPSの脈絡をLCPSに適用するとその適用効能は図2に対応する図3で示される様に不正値とその不正値に掛る構文の情報を合わせて捉えることが出来る。これにより、伝統的なLCPSの検証法がLCPSの完全な動性保証を与えることが出来ない検証法に留まるのに対し、LCPSの脈絡はLCPSの完全な動性保証を与える為の情報を全て明らかにすることが出来る。
課題を解決する手段
「LCPSの超言語脈絡」は課題を解決する手段である。ここでは「LCPSの超言語脈絡」をLCPSから導くために用いられる定義概念を以下に示す(図8参照)。
(01)同期アルゴリズム(SA)
(02)非同期アルゴリズム(NSA)
(03)プログラムの解
(04)LCPSの未解決問題
(05)11種の構文種別
(06)主語名
(07)変数主語名
(08)主語名の主語の不正値
(09)バグ構文
(10)5種の主語ベクトル(L4,L2,L3,R2,W4)
(11)11種の構文種別と5種の主語ベクトルの関係
(12)主語名の主語の十分条件の部分
(13)主語名の主語の十分条件の全体
(14)LCPSの超言語脈絡
(15)LCPSの超言語脈絡の発端主語名
(16)LCPSの超言語脈絡の終端主語名
(17)調和座標と調和脈絡
(18)超言語座標
(19)超言語脈絡
(20)LCPSの動化パラメータ(調和座標、構文種別、主語名、変数主語名、主語ベクトル種別、超言語座標)
(21)図2
(22)データ揺動構文
(23)主語名の臨界数
(24)調和座標の錯誤
(25)超言語脈絡の途切れ構文
(26)超言語脈絡の誤記
(27)LCPSの部分破壊
(28)バグ事象の仕分コード1,2
(29)図3
(30)図7
(31)平文法
(定義概念の要約)
1.(11種のプログラム構文)
本発明ではプログラム構文を以下の11種の構文に仕分する。
領域定義文
算術文
条件文
条件文に属す判定文
定値文
翻訳文
呼び出し文
GOTO文
主語の領域入れ替え文
入力文
出力文
2.(主語名、変数主語名、定数、定値)
2.1:例えば、算術文A=B+Cに於いて、Aは主語名、B、Cは変数主語名と記す。
2.2:主語名A、変数主語名B、Cは共に領域名である。
2.3:変数主語名BはB=の代数式に於いては主語名である。
2.4:主語名AはD=E+Aに於いては変数主語名である。
2.5:主語とは領域名に属す実体化された状態である。
2.6:例えば、条件文の判定式A=BのA並びにBは変数主語名である。
2.7:例えば、A=7のAは主語名、7はAの主語である。この場合7は「定数」「直値」「定値」などと記される。
2.8:A(XYZ)のAは主語名、文字列XYZはAの主語で定値と記される。この場合、文字列XYZは「定置」と記される。
3.(主語ベクトル)(図9参照)
3.1:主語ベクトルはSFで用いられる構文を律する仕組である。本願はその転用である。主語ベクトルはLCPSの部品に当たるが、その構造はLYEE理論により求められた究極の普遍部品として位置づけられている。図9はその構造である。主語ベクトルは律する構文を自分の第2規約で統治する。そして、律する構文の種別により、主語ベクトルは5種に仕分けされる。
3.2:入力文を律する主語ベクトルは「R2,主語名」と表記される。この主語名は入力領域を代表する主語名である。R2の2は入力文が時制上の過去として位置づけられることを示す。
3.3:出力文を律する主語ベクトルは「W4,主語名」と表記される。この主語名は出力領域を代表する主語名である。W4の4は出力文が時制上の今として位置づけられることを示す。
3.4:算術文で代表される構文を律する主語ベクトルは「L4,主語名」と表記される。この主語名は算術式左辺の主語名を指す。
3.5:定値式を律する主語ベクトルは「L2,主語名」と表記される。この主語名は定値の主語名である。この主語名が存在しなければ、直接定値が記される。L2の2は定値式が時制上の過去として位置づけられることを示す。
3.6:判定式を含む条件文を律する主語ベクトルは「L3,主語名」と表記される。この主語名はL3が制御する「L4,主語名」、「W4,主語名」、「R2,主語名」「L2、主語名」の主語名を基に付与する。L3の3は条件文が時制上の未来として位置づけられることを示す。
3.7:主語ベクトルL4、W4の主語名は超言語脈絡の発端候補となる。
3.8:発端となる主語ベクトル以外の主語ベクトルL4、W4、L3は脈絡上の節点となる。
3.9:主語ベクトルL2、R2は脈絡の終端となる。
3.10:主語ベクトルの第2規約で統治される条件文は調和座標(TCY,TCZ1,2,3,4)で律される。
3.11:言葉的に時制とは所謂動詞の属性概念で、故に名詞に時制はない。しかし、名詞は実体化されることに於いて背景には動詞性を含意している。実体化された主語名を本願では主語と記すので、故に、主語名には時制があると考える。この為に主語ベクトルでは実体化される構文の主語名に時制が付与される。これは実体化で成立する主語達の同期状態をプログラムの存在性とするSFでは必然の措置となるためである。主語達の同期様相では時制の異なる主語は区別される必要があるからである。入力される名詞の主語、出力される名詞の主語と同期様相を成立させる主語は区別されなければならないからである。この原理はLCPSの主語の不正値をLCPSの脈絡を用いて捉える場合にも脈絡の跡切れを行う構文を特定する上で必要になる。
3.12:動化パラメータとは、LCPSに動性を付与するために課す以下の情報のことである。即ち、主語名、変数主語名、調和座標、超言語座標、11種の構文種別、5種の主語ベクトル(図2参照)。
4.(LCPSの十分条件の全体)
LCPSの十分条件の全体は実行時のLCPSの動的様相の基で捉えることが出来る。
4.1(LCPSの十分条件の部分)
LCPSの十分条件の部分は実行時のLCPSの静的で捉えることが出来る。
4.2:(LCPSの超言語脈絡の存在性)
LCPSの超言語脈絡はLCPSの十分条件の全体を捉えるための仕組である。
4.3:(図2の情報)
LCPSから求められる図2の情報1はLCPSの超言語脈絡を捉えるための情報である。故に、図2の情報の為にLCPSには動化パラメータが課される。
5.(調和座標)
5.1:調和座標とは、本願発明者により発案された6種の座標系である。6種の座標とは、TCX、TCY、TCZ1、TCZ2、TCZ3、TCZ4である。
5.2:本発明では全LCPSの全構文に対して1組の調和座標系が付与される。
5.3:6種の調和座標の意味を以下に記す。
(1)TCXは構文のプログラム上の位置を1から始まる連続する自然数で示す。
(2)TCYはTCXの構文から見て次に実行される構文のTCXの位置を指す。
(3)TCZ1はTCXの構文から見てTCXの構文に真偽の真が成立する場合に実行される構文のTCXの位置を指す。
(4)TCZ2はTCXの構文から見てTCXの構文に真偽の偽が成立する場合に実行される構文のTCXの位置を指す。
(5)TCZ3はTCXの構文から見てTCXの構文の真偽評価の終了点に位置する構文のTCXを指す。
(6)TCZ4はTCXの構文から見てTCXの構文の真偽評価の終了点の次に位置する構文のTCXを指す。
6.(超言語座標)
LCPSの超言語脈絡を参照。
7.(LCPSの十分条件の全体の補記)
7.1:例えば、算術式A=B+Cに於いて、本願ではAを主語名、B、Cを変数主語名と記す。主語名、変数主語名は共に領域の名称(領域名)であるが、本願では算術式左辺のAを特に主語名と総称する。故にB、Cは別の算術式では、可能的に主語名となる関係にある。
7.2:本願では領域名の実体は主語と総称される。領域名の主語を想定する必要がある場合には主語名の後に領域定義文のTCXが付与される。A=B+Cの意味は、A(TCX)=B(TCX)+C(TCX)である。
7.3:主語名A()は変数主語名B()、C()の主語が既に成立し、且つこのA()の算定を許可する条件が充足されていることに於いて成立する。もし、その条件をX()=Y()とすれば、X()、Y()が既に成立しており、且つX()=Y()なら、このA()の算定(+)が許可されるということである。つまり、B()、C()、並びにX()=Y()となるX()、Y()が成立していることに於いて、このA()は成立する。しかし、これらはこのA()が成立するに足りる十分条件の部分に過ぎない。なぜなら、B()、C()、X()、Y()達だけでA()を成立させるに適うかどうかの判定は不十分だからである。
7.4:これら主語名達は更に脈絡の歩を進めて脈絡関係が全て完結する迄、即ち、この脈絡の終端となる構文の主語名に至る迄、辿り尽くさなければA()の成立は保証することが出来ない。特に論理結合型のプログラム、即ち、LCPSにはこのことは不可欠である。付言すれば、ここまで辿れる脈絡がA()の十分条件の全体である。
7.5:終端となる構文とはREAD文、定値文である。
8.(LCPSの超言語脈絡)
8.1:LCPSの脈絡とは図2の情報のことである。
8.2:図2の情報を絵的化すれば、図4である。図4は図2の情報から本発明者がスケッチしたものである。
8.3:LCPSの脈絡は図4で明らかな様に調和脈絡と超言語脈絡で構成される。しかし、単にLCPSの脈絡と記す場合は超言語脈絡を指す。
8.4:調和脈絡とは調和座標を用いてLCPSの全構文の実行順位を示すための構文の脈絡である(図4の点線矢線参照)。
8.5:超言語脈絡とはLCPSに属す構文の主語名、変数主語名に付与される超言語座標のTCX2を同じ主語名の関係で結ぶ脈絡の事である。図4の実線矢線のことである。
8.6:超言語座標とは全構文の主語名、変数数主語名に付与される座標の対(TCX1,TCX2)のことである。TCX1とは主語名、変数主語名の領域を定義する領域定義文の調和座標TCXのことである。そして、TCX2とはTCX1で示される領域に主語(値)を設定する構文のTCXのことである。
8.7:超言語脈絡に於ける発端主語名とはLCPSの全構文に付与される唯一の調和座標に於ける最小のTCXを有する主語ベクトルL4、またはW4の第2規約で統治される構文の主語名のことである。
8.8:同様に、超言語脈絡に於ける終端主語名とは主語ベクトルR2の第2規約で統治される入力構文の主語名、並びに主語ベクトルL2の第2規約で統治される定値文の主語名の主語のことである。
8.9:超言語脈絡の発端、終端以外の構文は発端と終端を結ぶ超言語脈絡の節点の役割を担う(図4参照)。
8.10:超言語座標とはTCXの対のことである。上記7の変数主語名を実体化する構文2のTCXは構文1の可能的直近、且つその過去に位置しなければならない(詳細は図2の情報、及び、図4を参照)。
8.11:変数主語名の超言語座標は変数主語名を実体化させる主語名に向かう矢線で結ばれる。超言語脈絡とはこの矢線の全体である(図4参照)。
8.12:LCPSの脈絡は構文に係る十分条件の全体を内包して、且つLCPSの十分条件の全体を捉える仕組になっている。LCPSの脈絡の発端主語名が唯1個となるのはこのためである(図4参照)。
8.13:LCPSの調和脈絡は1個のLCPSとして編集される。そして、このLCPSに属す全構文に対して、調和座標を基に実行順序は付与される。LCPSの調和脈絡とはこのTCXによる実行順位のことである(図4の点線矢線参照)。
8.14:調和脈絡を基に、全構文の主語名、変数主語名に超言語座標が付与される。
8.15:超言語脈絡の終端に至る過程で節点(ノード)となる構文が存在しなければ、超言語脈絡の経路は途切れる。つまり、節点となる構文を持たない構文は超言語脈絡の途切れとして、その構文のTCXは図3の情報3の左欄に記される。この構文は図2の情報1、図4並びに図5でみることが出来る。
8.16:超言語脈絡の途切れを生じさせる構文はLCPSの宿命的な構造欠陥が背因となり生じるTCXの乱れ、超言語座標の乱れにより発症している。しかし、LCPSに棲息するこの仕組をLCPSの作成者が従来の検証法で事前に捉え且つ認識することは不可能である。LCPSを部品化して構築されるシステムはバベル塔の様な話になる。この様なシステムが横行する世界ではLCPSに棲息するこの仕組が今後、間違いなく目覚め始めることになる。
8.17:超言語脈絡を途切れさせる構文が存在することは本来的にはあり得ないと考えられている。しかし、その思いはどうであれ、存在していれば、この場合、超言語脈絡の発端となる構文の主語名の主語は不正値となる。本願ではこの場合のこの発端主語名をバグの起因と記し、そのTCXを図3の情報3の右欄に記す。そして、この発端となる構文の主語名を変数主語名とする構文の主語名の主語も不正値となるので、その様な構文を、本願はバグ事象を発症させる構文として、それらのTCXを図3の情報4の左欄に記す。
8.18:発端主語名から図2を用いて超言語脈絡を辿ることが出来る。この過程で超言語脈絡を途切れさせる構文が存在すれば捉えることが出来る。因みにデータ揺動を発症させる構文は超言語脈絡を途切れさせる構文となる。この構文は図2の情報で発見することが出来る。これら構文のTCXは図3の情報6に記される。
8.19:バグ事象の区分1の構文の不正値の修正はそのマナーを心得ている技術者なら正統な対応は可能である。バグ事象の区分2の場合の対応はバグ事象とは何かを会得していなければ正統な対応は不可能である。
8.20:LCPSは不正値の問題を問題として会得していない人々に因り作成されている現実がある。また、LCPSにはその様な構文が内包されていても稼働が続けられるという構造欠陥がある。本願発明のLCPSの脈絡はその様な構文の存在を明らかにすることが出来る。
9.(平文法の要旨)
平文法と総称される平文法の作業手続の要旨を以下に記す(図1参照)。
9.1:LCPSから図2の情報を生成すること。
9.2:図2の情報から脈絡の発端となる1個の主語名をその定義規約に従い決めること。
9.3:図2の情報から脈絡の終端となる全主語名をその定義規約に従い決めること。
9.4:発端主語名から超言語脈絡を辿り、脈絡の途切れ点となる構文を探すこと。脈絡の途切れ点となる構文が存在すれば、脈絡の正統性は成立しない。
9.5:脈絡の正統性が成立しない場合、脈絡の発端となる主語名はバグの起因となる。
9.6:バグの起因となる構文の主語名が変数主語となる脈絡上の構文を図2の情報から抽出すればバグ事象となるバグ構文である。
9.7:図2の情報からデータ揺動の規約に従いその構文が存在すればそれがデータ揺動構文である。
9.8:図2の情報から図3の情報2、3、4、5、6の情報をそれぞれの規約に従い決定すること。
9.9:図4を描くための情報を図2の情報から編集すること。
(図の補足説明)
以下に図の補足説明を行う。
(図1の補足)
平文法とは、入力側情報から出力側情報を生成するための機械的作業手続きの総称である。
平文法4はグラフ化ツールに置き換えることも可能である。
図2は図4を描くためのパラメータ情報である。図7は発端主語名から超言語脈絡を導出するためのパラメータ情報である。
(平文法の補記)
平文法1は2種の入力側情報、即ち、1.LCPSと2.LCPSの7種の動化パラメータから図2を生成するための機械的手続きの事である。
平文法2は図2から図7の情報の編集、並びに図3の情報3、4、5を捉えるための機械的手続き事である。
図7はLCPSの発端主語名から超言語脈絡を辿るためのパラメータ情報である。図2は図4の2種の脈絡、即ち、調和脈絡、超言語脈絡を導くためのパラメータ情報である。
平文法3は図7の超言語脈絡の情報から図1の情報6、7、8、9を求めるための機械的手続きのことである。
平文法4は図2の情報から図4を描くための機械的手続きの事である。
(図6の補足)
11.超言語脈絡に途切れを発症させる構文が存在すれば、発端構文の主語名の主語には十分条件の全体が成立しないので、発端主語名の主語は、結果的に不正値である。
12.途切れ構文の存在条件は発端構文の主語名の主語を変数主語とする構文数を最大にする超言語脈絡上の構文である(図6参照)。
13.上記12.で決まる構文の主語名の主語は結果的に不正値となる。
14.本願発明のLCPSの脈絡を用いれば、主語名の主語の判定は実値を求める必要がない。これがテストデータによる従来的な実行検証法との基本的な違いである。
(図2の補足)
情報1:7種の動化パラメータを課せばLCPSから求められる「LCPSの脈絡」を捉えるための情報。
(図3の補足)
情報2: 「LCPSの脈絡」の発端、終端となる主語名のTCX。情報1から求められる。
情報3:「LCPSの脈絡」から導出される情報のTCX。
情報4:「LCPSの脈絡」から導出される情報のTCX。
情報5:「LCPSの脈絡」から導出される情報のTCX。
情報6:情報1から導出される情報のTCX。
(図4の補足)
(1)図2、図7の情報はLCPSの脈絡をグラフ化ツールで図表現する時のパラメータ。
(2)図4はLCPS例の脈絡を図化したものである。図4はLCPSの脈絡の定義通りに描かれているが、図の概要を容易に理解できるように全ての超言語座標が記されているわけではない。敢えて省略してある。また、図4ではデータ揺動箇所が3か所出現しているが、これはLCPS例の脈絡の概念を分かり易くするためにLCPSの部分を対象としたことに因る。実際に本願発明者が捉えたデータ揺動は25年余の調査の中では3件である。また、本例のLCPS例ではデータ揺動(図3の情報6)しか発症していない。そして、図3の情報3、情報4の左欄は空白である。
(3)点線は調和脈絡。調和脈絡ではLCPSの全実行構文がカバーされていれば調和脈絡は成立する。
(4)実線は超言語脈絡。超言語脈絡では主語名または変数主語名の成立関係が捉えられている。
(5)例えば、F=R−Fの左辺のFを主語名Fと呼ぶ。
(6)右辺のR、Fを変数主語名R、Fと呼ぶ。
(7)図中の「?」について、変数主語Bの超言語脈絡は成立させられない。変数主語Bの主語値は不定。ゆえに、以降の実行構文は成立しないことになる。このことはプログラムの部分破壊が生じているとみなされる(バグ事象2)。
(図7の補足)
1.超言語座標付LCPSの全構文(含む領域定義文):図2を複写
2.構文の主語名
3.構文の変数主語名
4.変数主語名を起点として超言語脈絡を成立させる主語名を脈絡主語名と記す(図4参照)。
5.超言語脈絡が終端に至ればこの超言語脈絡は成立する。
6.超言語脈絡が終端に至らなければこの超言語脈絡は本図を用いて連接される。
7.超言語脈絡を連接する主語名が見つからなければこの超言語脈絡は途切れる。
8.その実行構文のTCXは図3の情報3の左欄に登録される。
(図8の補足)
2.において、主語名の主語の脈絡の発端主語名を決定するために必要な情報は、以下の通り。
1:調和座標
2:超言語座標
3:構文種別
4:構文種別と主語ベクトルの関係
(図9の補足)
主語ベクトルはLCPSの動的アルゴリズムを捉えるパラメータのひとつである。主語ベクトルの構造概念はLYEE理論の要約で公開されている。主語ベクトルのプログラム例はSFの学習要領で公開されている。
第1規約の「第4領域は成立済か」という1文がベクトルの構造を決める命題になっている。
全ベクトルに同期を成立させるために、第2、3規約は不可欠。
第5規約は生命作用ができる範囲の予知の規約である。因みに、シナリオ関数ではこの規約は実体(主語)のスタックを用いて予知される仕組になっている。この規約を前提として成立するプログラムがAIである。ベクトルの基で成立する予知の仕組みは重要である。
第4規約における記憶は全ベクトルの第3規約を成立させるために不可欠である。
第5、6、7規約は可能的に成立する第3規約のために不可欠である。
(発明の狙点)
本発明はLCPSの伝統的な検証法に替わる検証法である。LCPSから機械的手続きで求められる「LCPSの脈絡」(図4参照)を用いて、LCPSが実行時にLCPSの宿命的な構造欠陥を遠因として、構文の主語名にLCPSの意図に沿わない不正値を発症させるその様な全ての構文を本作業者が従来の検証法の様なLCPSに掛る知見を必要とせずにLCPSの脈絡に対する作業の仕方の指示を受ければ、作業者は机上で捉えることが出来る方法である。この作業者の作業手続きはツール化することも可能である。
(発明の仕組)
本発明は、LCPSの意図に沿わない不正値を発症させる構文とこの構文の不正値に関わる構文をLCPSの編集により求められるLCPSの超言語脈絡を捉える情報(図2)を用いて図3の形式で特定する方法である。
(本発明の意義)
本発明のLCPSから機械的に求められる「図2の内容」(図2参照)、またはこの内容と等価な「LCPSの脈絡」(図4参照)はLCPSが実行時に構文の主語名に不正値を発症させる構文を捉える為の仕組として用いられる。これはLCPSの十分条件の全体を捉える仕組の応用である。そして、LCPSの十分条件の全体はLCPSの実行時の様相である。故にこれはこれ迄誰も捉えることはできなかった様相である。順序は逆になるが、これを動性アルゴリズムで観察可能にしたプログラムがSFである。そして、これを具体的に捉えてみせたのが本願発明の図4であり図2である。
LCPSの全体とその部分の関係が曖昧になるのはLCPSの解が求められないことが原因である。故に、LCPSの脈絡ではLCPSの全体に対して1組の調和座標を付与することが求められる。そして、LCPSの脈絡の発端となる構文は、LCPSの中から脈絡の規則に基づいて選ばれる。
LCPSのこの曖昧さが調和座標の付与をLCPS関係者達に無意識的な、それでいて共通の誤りを、換言すれば、あいまいにさせる原因になっている。結果的に、この原因がLCPSの脈絡に途切れを生じさせる構文を発症させている。この構文の存在をLCPSの開発担当者の経験的知見によって説明することは困難である。
本発明の構想図 LCPSの超言語脈絡を捉える為の情報(例) 図2から捉えられるLCPSの解析情報(例) 図2の図化された様相(例) 超言語脈絡に係る概念 LCPSのアルゴリズムの全体と部分の関係 本発明の実施手順 本発明に係る定義概念 主語ベクトルの構造
本発明が対象とするプログラムは実行時に非同期型アルゴリズムの全体(NSA)を発生させるコンパイル済の実行可能な論理結合型プログラム(LCPS)のソース(LCPS)である。
本発明は「LCPSの超言語脈絡」を捉えるための情報を上記(01)のLCPSから図2の形式で生成する方法のことである。LCPSの超言語脈絡の定義は該当項で示されている。
LCPSの超言語脈絡とは上記(01)のLCPSが実行時に発生させる非同期型アルゴリズム(NSA)の成否を判定するための仕組である。
LCPSの超言語脈絡をLCPSから求める手続を以下に示す(図7参照)。
LCPSの全構文に構文の実行順位を示す1組の「調和座標」を付与する。これにより、「LCPSの調和脈絡」が決定される。
LCPSの全構文に「動化パラメータ」を付与する。
構文の主語名、変数主語名に「超言語座標」を付与する。
以上の手続きにより、「LCPSの超言語脈絡」を捉える情報図2が決定される。
調和座標、LCPSの調和脈絡、動化パラメータ、超言語座標、LCPSの超言語脈絡の定義は該当項で示されている(図2参照)。
LCPSの超言語脈絡に「脈絡の途切れ」、「脈絡の誤記」が生じていればLCPSの正統性は成立しない。LCPSの超言語脈絡に於ける「脈絡の途切れ」、「脈絡の誤記」の見つけ方は該当項で示されている。
LCPSの超言語脈絡に脈絡の途切れ、脈絡の誤記が生じていなければ、LCPSの正統性は成立している。
脈絡の途切れ、脈絡の誤記が生じれば、LCPSの超言語脈絡には「バグ構文を捉える仕組」が成立する。この仕組で捉えられる情報は図3の形式で示される。
「バグ構文を捉える仕組」は該当項で示される。
明らかなことは、人工物であり且つ機械物と異なるプログラムの完成度は、プログラムが実行時に発生させるアルゴリズム全体の正統性により決まる。しかし、ここ30年を振り返れば、アルゴリズム的には二次三次的問題の処理時間の早い遅い問題がもっともらしく語られる傾向にある。アルゴリズムの基本問題はその正統性にある。
しかし、この問題は棚上げされている。バグだらけのプログラムが迅速に処理結果を出したところで誇れるほどの意義はないからである。そして、処理時間問題は対人間関係に帰着する問題である。故に、その解決法はプログラム問題として解決されるべきが正統である。対人間関係を超える手段で解決されるべき問題ではない。そして、そのプログラム的解決手段はほかにいくらでもあるからである。故に、プログラムにとり、重要なことは、本発明が行う様に、アルゴリズムの正統性診断を可能にすることである。現行のプログラムがバグだらけであるとはこの問題が放棄されていることが背景にある。せめて、プログラム提供側には稼働中のプログラムに内在するバグ事象リストぐらいは利用者に対し公開する義務がある。因みに、本発明を用いれば、稼働中のプログラムのバグ事象リストは図3の形式で明らかにすることが出来る。
SFでは事前に意図的に特別な学習を行わせるわけではない。SFは実行時に発生する同期アルゴリズム(SA)の仕組が、(1)バグ事象を自律的に回避し、(2)ウイルス情報を自律的に無力化して正統なアルゴリズムをその同期アルゴリズムの中に自律的に成立させる方式である。人間関係的な次元を超える処理時間の高速性問題が、もし、SFにあるのだとすれば、その解法のためにSFが処理時間の高速性環境を利用する意義はある。他方、LCPSが上記(1)(2)の問題が未解決である限り、そして、アルゴリズムがNSAである限り、LCPSには処理時間の高速性問題を議論する立場にはない。AIもLCPSで作成されている限り、課題はLCPSと同じ立場である。プログラムSFを超える世界に位置し、且つ学習を実行時のアルゴリズムが必要としないプログラムでなければAIなどとのたまうべきではない。アルゴリズム的には今風のAIは同期アルゴリズムを発生させるSF以下のLCPSに過ぎない。
この分野の始祖的立場におられたマッサーニ先生が指摘された専門性の空洞化、空洞化の独占化が始まるとの指摘は20年前の話ではあるが、現実はまさにご指摘のとおりの状況である。
LCPSが発生させる非同期型アルゴリズムが同期型アルゴリズムに転換されない限り、プログラム世界には技術的にも思想性に於いても自動運転、ロボットに見られる様に特別な進歩の形跡はどこにもない。本発明はLCPSから求められる超言語脈絡の発見である。
そして、これを用いて、LCPSが発生させるNSAの正統性を検証可能にする。

Claims (6)

  1. コンピュータに、
    論理結合型プログラムのソースから超言語脈絡を求めるステップと、
    前記超言語脈絡を用いて前記論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性を検証するステップと
    を実行させるためのプログラム
  2. 前記超言語脈絡を求めるステップは、前記論理結合型プログラムのソースの構文毎に行番号を付与し、前記行番号で識別される構文毎に、超言語座標、調和座標、構文種別、及び、主語ベクトル種別を特定するステップを含む
    請求項1に記載のプログラム
  3. 前記コンピュータに、
    前記超言語座標、前記調和座標、前記構文種別、及び、前記主語ベクトル種別により特定される、前記行番号で識別される構文間の関係を図に表すステップ
    を実行させるための請求項2に記載のプログラム
  4. 前記コンピュータに、
    前記超言語脈絡を用いて、前記非同期型アルゴリズムに不正値を発症させる前記論理結合型プログラムのソースの構文を特定するステップ
    を実行させるための請求項1に記載のプログラム
  5. 前記構文を特定するステップは、途切れ構文又は不正構文よりも発端主語名に近い条件文が存在する場合、バク構文の修正が不可能と判定するステップを含む
    請求項4に記載のプログラム
  6. 前記超言語脈絡を求めるステップは、前記論理結合型プログラムのソースの構文毎に行番号を付与し、前記行番号で識別される構文毎に、超言語座標、調和座標、構文種別、及び、主語ベクトル種別を特定するステップを含み、
    前記構文を特定するステップは、前記論理結合型プログラムのソースの前記行番号で識別される構文毎に、発端主語名、終端主語名、脈絡の途切れ又は錯誤の有無、発端主語名がバグの起因となっているか否か、バグ事象を構成するバグ構文、バグ事象仕分けコード、部分破壊範囲、及び、データ揺動構文を特定するステップを含む
    請求項5に記載のプログラム
JP2020512753A 2019-12-16 2019-12-16 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム Active JP6719798B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/049213 WO2021124411A1 (ja) 2019-12-16 2019-12-16 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にする方法

Publications (2)

Publication Number Publication Date
JP6719798B1 true JP6719798B1 (ja) 2020-07-08
JPWO2021124411A1 JPWO2021124411A1 (ja) 2021-12-23

Family

ID=71402380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020512753A Active JP6719798B1 (ja) 2019-12-16 2019-12-16 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム

Country Status (5)

Country Link
US (1) US11768756B2 (ja)
EP (1) EP4080369A4 (ja)
JP (1) JP6719798B1 (ja)
CN (1) CN115039083A (ja)
WO (1) WO2021124411A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672933B (zh) * 2021-08-06 2023-06-20 中国科学院软件研究所 一种鸿蒙安全漏洞检测方法和系统
CN113761539B (zh) * 2021-08-06 2023-10-17 中国科学院软件研究所 一种鸿蒙安全漏洞防御方法和系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532586B1 (en) 1995-10-30 2003-03-11 Information System Development Institute Software producing method, processor, processing method and recording medium
JP3133343B2 (ja) 1996-10-30 2001-02-05 株式会社アイエスデー研究所 ソフトウェアの生産方法、処理装置、処理方法及び記録媒体
US8539443B2 (en) * 2008-05-13 2013-09-17 National Instruments Corporation Edit time analyzer in a loosely typed textual language
JP2013058127A (ja) * 2011-09-09 2013-03-28 Lyee Co Ltd コンピュータプログラムの実行障害の解法
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications
JP2015215649A (ja) * 2014-05-07 2015-12-03 根来 文生 情報処理装置
JP6086977B2 (ja) 2014-08-04 2017-03-01 根来 文生 本来の業務処理を正統な主語の脈略として成立させるための手順をコンピュータに実行させるシナリオ関数として規定されるプログラム
US9792443B1 (en) * 2015-03-12 2017-10-17 Whitehat Security, Inc. Position analysis of source code vulnerabilities
US10210240B2 (en) * 2017-06-30 2019-02-19 Capital One Services, Llc Systems and methods for code parsing and lineage detection
GB201716173D0 (en) * 2017-10-04 2017-11-15 Palantir Technologies Inc Creation and execution of customised code for a data processing platform

Also Published As

Publication number Publication date
WO2021124411A1 (ja) 2021-06-24
JPWO2021124411A1 (ja) 2021-12-23
US20220245053A1 (en) 2022-08-04
CN115039083A (zh) 2022-09-09
EP4080369A4 (en) 2023-08-30
EP4080369A1 (en) 2022-10-26
US11768756B2 (en) 2023-09-26

Similar Documents

Publication Publication Date Title
Baudry et al. Barriers to systematic model transformation testing
Brottier et al. Metamodel-based test generation for model transformations: an algorithm and a tool
CN103955426B (zh) 一种检测c代码空指针引用的方法及系统
Ziadi et al. A fully dynamic approach to the reverse engineering of UML sequence diagrams
Bloom Ready simulation, bisimulation, and the semantics of CCS-like languages
van Amstel et al. An exercise in iterative domain-specific language design
JP6719798B1 (ja) 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム
JP5807831B2 (ja) 自律型問題解決機
Bandener et al. Extending DMM behavior specifications for visual execution and debugging
WO2016163039A1 (ja) 自律型知識抽出機
Rakić Extendable and adaptable framework for input language independent static analysis
Xu et al. AJANA: a general framework for source-code-level interprocedural dataflow analysis of AspectJ software
Bernardi et al. Model checking to improve precision of design pattern instances identification in OO systems
Bouajjani et al. Widening techniques for regular tree model checking
RU2364930C2 (ru) Способ генерации баз знаний для систем верификации программного обеспечения распределенных вычислительных комплексов и устройство для его реализации
JP5828437B2 (ja) 自律型処理手順生成および実行機
JP5828438B2 (ja) 自律型知識体系構築機
Schöpp et al. Requirements-based code model checking
Jnanamurthy et al. Multi-level analysis of IEC 61131-3 languages to detect clones
Jones Turing and software verification
Ebert Experiences with colored predicate-transition nets for specifying and prototyping embedded systems
Pilbrow Characterising sound visualisations of specifications using refinement
Subburaj et al. An agent-based formal specification language processor
JP2015215649A (ja) 情報処理装置
Aoki et al. Verification of embedded system by a method for detecting defects in source codes using model checking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200302

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200302

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200610

R150 Certificate of patent or registration of utility model

Ref document number: 6719798

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S201 Request for registration of exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R314201

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350