JP6719798B1 - 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム - Google Patents
論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software 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
Description
SFの研究課程の中で、SFのSAの正統性をSAに恒常的に維持させるために、LCPSが発生させる非同期型アルゴリズム(NSA)の正統性診断を可能にする仕組が論考された。そして、求められた仕組が、本発明の「LCPSの超言語脈絡」である。
プログラムが実行時に発生させるアルゴリズムにはNSA(非同期型)とSA(同期型)がある。後者は1986年に本発明者がその存在を予告し、2008年にSAを発生させるプログラムであるSFの静的構造のソース(SFS)とそのためのLYEE理論の最終版に到達している。実行時にNSAを発生させるLCPSが論理結合型と呼ばれる構造になるのに対し、SFSはデータ結合型構造に帰着する。SFSが実行時に発生させるSAは世界で最初であることに於いて、SFSは世界で最初で唯一の静的構造になっている。SFSのコードは既に公開されている(「SFSの全景」を参照)。既述の様にSFSは体系化されたLYEE理論に因り成立するのに対し、既に、伝統的様相として普及しているLCPSには体系化されたLYEE理論の様な論拠はない。NSA、SAの認識の仕方はそれぞれの定義法として後述されている。
ここでは、プログラムとして成立する応用アルゴリズム(AA)、LCPS、SFSを総称して「AA」と記す。AAの成立を阻害する構文の主語名の主語(最終情報)を発症させる構文を本発明では論考の結果、バグ構文と呼ぶことにする。構文が生成する主語を保持する記憶領域は習慣的に構文ごとに特定されている。LYEE理論の研究ではLCPSを解析的に考察する上で、曖昧さを除くために、構文が生成する情報を主語、主語を保持する構文ごとに特定される記憶領域を主語名として捉える。本発明はこの命名法を踏襲している。例えば、LCPSで生成されるAAが実行時に発生させる情報が主語名の主語となるとき、この主語名の主語は構文が生成している。そして、この主語を発生させる構文(必要条件)に係る十分条件の全体をNSAが満たしていなければ、本発明ではこの主語を生成する構文を「バグ構文」と定義する。そして、この様な主語は不正値と総称される。この観点に立てば、例えば、ウイルス情報、バグ情報が構文の主語名の主語として捉えられれば、本発明ではおのずとこの主語名の主語は不正値となる。
LCPSを分析するとAAが占める構文数の割合は平均的にLCPS(全体)の約90%で、それら構文には論理結合のために実施時に於ける順序性が不可欠になる。
NSAの正統性診断とは1個の主語名とそれ以外の主語名の脈絡関係の成否が全主語名について求められれば、NSAの正統性診断は可能になる。しかし、この仕組をNSAに求めることは現実的ではない。ここでする話はLCPSから全主語名について正統性診断を可能にする仕組(LCPSの超言語脈絡)のことである。不可能を可能にする話である。
LCPSが実行時に発生させるアルゴリズムはLCPSに属す全主語名を複数個の部分集合に分け、それぞれを単元として、それらの単元を論理的に網羅し、全主語名の主語を捉えるためのアルゴリズムのことである。このアルゴリズムは非同期型アルゴリズム(NSA)と呼ばれる。SFが実行時に発生させるアルゴリズムはSFに属す全主語名を唯一の単元とし、全主語名の主語が成立する迄、この唯一の単元を繰り返す仕組のアルゴリズムのことである。このアルゴリズムは同期型アルゴリズム(SA)と呼ばれる。
SAを捉えるためには、「主語ベクトル」が不可欠となる。主語ベクトルはLYEE理論で発見されSFの構成素子となっている。図8参照。
プログラムの解とは、プログラムが実行時に発生させるアルゴリズムで、プログラムに属す全主語名の主語が成立する状態として定義される。この定義はLYEE理論により明らかにされたものである。この定義によれば、LCPSの解は不明であるが、SFの解は存在する。SFの解は「主語系譜」と名付けられている。
LCPSの部分分割をLCPSに属す全主語名の部分分割として捉えれば、部分分割は可能である。しかし、部分分割をアルゴリズムの部分分割として捉えると、アルゴリズムは部分分割を不可能として成立するので、この部分分割は不可能である。もし、プログラムの解が成立すればアルゴリズムの部分分割は可能になる。通常、LCPSの解は成立しないので、LCPSのアルゴリズムの部分分割は不可能である。プログラムの解の成否はアルゴリズムの部分分割が可能か否やを判定するパラメータになっている。LCPSのNSAが発症させるバグ事象はこの問題に起因するLCPS部分化問題に因り発症している。コンパイルが完結していても、LCPSの必要条件である仕様の妥当性の確認しか果たせない伝統的なLCPSの検証法でこの起因を捉えることは不可能である。故に、バグ事象問題は実質的には未解決のまま放置されている状況にある。因みに、プログラムの解をもつSFでは部分化されるアルゴリズムの構造欠陥問題は主語ベクトルと実行時に発生するSAを用いて実行時に解決される。公開されているシナリオ関数の全景図、SFの解である主語系譜を熟視すれば、このことが理解できる様になっている。
LCPSのNSAはLCPSに属す全主語名の主語を論理結合的に成立させることに因りLCPSのAAを成立させる。SFのSAはSFに属す全主語名の主語を同期的に成立させることに因りSFのAAを成立させている。
SFのAAは不正値を排除しながら正統なAAを成立させるためのアルゴリズムを成立させている。他方、LCPSのAAは本来的に正統なAAを成立させるためのアルゴリズムを成立させる構造にはなっていない
調和座標とはLCPSの全構文に付与される構文の実行順位のことである。調和座標は本研究の中で定義された座標系である。図4の点線で示される構文の実行順位は調和脈絡と呼ぶ。重要なことは超言語座標は付与された調和脈絡の基で成立するという点である。
超言語座標とはLCPSの全構文の主語名、変数主語名それぞれに付与される二つの調和座標の対(TCX1,TCX2)である。
(a)超言語脈絡の発端主語名とは、LCPSに属し、且つ主語ベクトル種別がL4、W4で統治され、且つその構文のTCXがLCPSの最小の構文の主語名である。
(b)超言語脈絡の終端主語名とは、LCPSに属し、且つ主語ベクトル種別がR2、L2で統治される構文の主語名の全てである。
(c)LCPSの超言語脈絡とは、二つの超言語座標を結ぶ経路が終端主語名から発端主語名に収斂す経路のことである。
(d)発端主語名が属す構文、終端主語名が属す構文以外の構文は終端主語名と発端主語名を結ぶ脈絡の節点となる。
(e)超言語座標1と超言語座標1を受容する側(発端主語名に近い側)の超言語座標2の関係は構文の位置座標TCXは異なっていても超言語座標が同じになる。
LCPSのNSAの正統性診断を可能にするLCPSの超言語脈絡を成立させるための情報には、LCPSの情報と、SAを成立させるSFの情報から「動化パラメータ」として求められているLCPSには存在していない情報がある。
図2から図3に掛かる情報が抽出できなければ、LCPSが実行時に発生するNSAは正統である。
LCPSの超言語脈絡を用いれば、構文をバグ構文に変える起因は以下の二つに特定することが出来る。
(a)LCPSの超言語脈絡に途切れを発症させる構文の存在。
(b)LCPSの超言語脈絡に錯誤を発症させる構文の存在。
LCPSの超言語脈絡でバグ構文を発症させる起因が特定できれば、不正値を具体値で特定しなくても、LCPSの超言語脈絡の構造から、その発端主語名の主語は不正値となることは明らかである。そして、発端主語名の主語が不正値になれば、発端主語名の配下の発端主語名を変数主語名とする構文はその影響を受けることに於いて、バグ事象を発症させる構文に変わることになる(図5、図4を参照)。これは、LCPSをテストデータを用いて電算機で処理しなくても、バグ構文に変わるLCPSの構文を特定できることを意味する。
LCPSの超言語脈絡に於いて、起因(a)(b)の構文位置と発端主語名が属す構文位置の脈絡の間でバグ構文は発症する(図5参照)。そして、この脈絡の間に1個以上の主語ベクトルL3で統治される条件文が存在し、その内の条件文の判定式が発端主語名の主語の不正値の影響を受けていれば、発端主語名から最遠の位置のこの条件文と起因(a)(b)の構文位置の間の全構文は部分破壊される。部分破壊を伴なうバグ構文は図3のバグ事象区分では「2」と記される。
コンパイル済のLCPSの構文が実行時バグ構文に変わるのはNSAの仕儀である。このNSAの仕儀が生じるのは以下の理由である。即ち、LCPSにはプログラムの解が成立しない。これは実行時のLCPSでは部分と全体のアルゴリズムの関係を曖昧にする原因になることを示唆する(図7参照)。
OSの仕事はプログラムの実行生産性の向上に止まる。以下の課題はOSでは解決できない。
(ア)LCPSの生産性
(イ)LCPSの保守生産性
(ウ)プログラム言語問題
(エ)コンパイラ問題
(オ)バグ構文の排除
(カ)ウイルスの排除
本発明者のSF、LYEE理論の研究課程の中で、LCPSに属す主語名数とLCPSが実行時に発生するアルゴリズム(NSA)の錯誤の関係が論考されている。この論考の中で同じ名詞が重複している場合にNSAを錯誤させる原因(前記(16))が生じていることが明らかにされたのである。本発明では同じ名詞が重複して用いられている状態を主語名の臨界状態と呼ぶ。
(1)(無限象)
LYEE理論では、生命作用が認識を行うとき、その瞬前に生命作用は正統な認識を成立させるための「全貌」を受容していると仮説する。LYEE理論ではこの全貌を「無限象」と呼ぶ。LYEE理論はこの無限象を捉える仕組の論考である。この仕組はLYEE理論では「意識関数」と呼ばれる。そして、意識関数の意味をプログラム世界の用語に写し替えられた意識関数がシナリオ関数(SF)である。
無限象の全貌を捉える仕組は、部分を極限まで全体化する仕組として成立する。部分とは動性様相であり、全体とはその動性が静性に遷移した様相である。換言すれば、部分を極限まで全体化するとは部分の動性を同期化することである。何故なら、同期化された様相は静的様相に帰着するからである。因みに、同期化が成立しないプログラムは部分である。故に、構文数の規模に関係なく、LCPSの部分プログラム、並びにLCPSの全体は恒常的に部分である。即ち、それらの様相は動性である。故に、SFではプログラムの解は特定されても、同期化が成立しないLCPSのプログラムの解は不明のままである。部分を極限まで全体化するための仕組はLYEE理論により求められた。即ち、無現象の単元(フラクタル)の内容を認識可能にする仕組1(ベクトル)と、仕組1の全集合を同期化させる仕組2が求められた。無現象の単元は主語名に置き換えられている。SFとはLCPSを極限まで全体化するための仕組のプログラムである。
ラバール大学による可視化された「NSAの全景」はトウモロコシ型の混沌たる脈絡に、そして、「SAの全景」は整然とした繰り返し型の脈絡に治まっている。
本来的に正統性を捉えているSAをNSAに写し両者の差分を論考する。その差分がバグ事象を発症させNSAの原因である。正統性が成立しないNSAにバグ事象が発症するのは必然である。そのバグ事象をNSAで捉えようとするのは言を待つまでもなく矛盾である。LCPSを基にLCPSの超言語脈絡を求め、それを解析するのでなければ、バグ事象は捉えられない。LCPSの超言語脈絡とはLCPSから求められる最後の同期構造の様相である。
LCPSの完成度は他の分野の製品なら返品レベルにある。かつIT業界のビジネス第一主義はNSAに係る技術、そして、その知性(良心)の空洞化はとめどなく加速している様に思われる。本発明はNSAの成否判定を行う方法である。アルゴリズムの性質からLCPS仕様の成否判定を行う伝統的な検証法と本発明の検証法では以下の理由で異なる。
(i)LCPSの仕様情報はLCPSの手続きを決めるための必要条件の部分である。
(ii)LCPSのアルゴリズムは必要条件が発生させる動性様相である。
(iii)アルゴリズムは部分では成立しない。
(iv)アルゴリズムは必要条件に係る十分条件の全体である。
(v)アルゴリズムの全体はプログラムの実行時に特定される。
(vi)SFのソース構造は実行時に十分条件の全体を捉える。
(vii)NSAはLCPSが発生させるアルゴリズムである。
(viii)SAはSFが発生させるアルゴリズムである。
上記アルゴリズムに係る8項目は、仕様の検証法に帰着している伝統的な検証法では、NSAの正統性の成否が十分に判定できないことを示唆している。付言すれば、LCPSの伝統的な検証法をいくら山積みしてもNSAの完全な正統性判定には至らないことを示唆している。故に、このことを前提に稼働中のNSAを調査するとNSAの欠陥を明らかにすることができる。NSAが成立させるAAは不完全であることが明らかになる。結果、すべてのLCPSは不完全の状態で稼働していることも明らかになる。故に、LCPSにシステム事故が発症するのは回避不可能なLCPSの必然性だということである。既述のラバール大学での可視化されたLCPSのNSAはこのことを示唆するに足りるものになっている。
コンパイル過程が完了しているLCPが実行時に発生するNSAは正統である。そして、NSAが正統ならバグ構文は発症しないのがプログラムの道理である。故に、SFではコンパイル過程が完了すれば、LCPSに対して行われる様な伝統的なLCPSの検証過程は不要である。SFではコンパイル過程が完了すれば、稼働過程に入ることが出来る。
NSAの正統性を検証するデータは、AAの成否を問う伝統的な検証法で用いられるデータ(仕様情報)ではなく、NSAを発生させる実行可能なLCPSである。本発明ではNSAを検証するとは、LCPSの全構文を用いてNSAの様相を捉えることである。この様相を本発明ではLCPSの超言語脈絡と呼ぶ。図2または図4はLCPSから求められる超言語脈絡のための情報である。
LCPSの伝統的な検証法をよく理解できれば、システムの処理時間測定程度にとどまる。もし、それ以外の意義をこの検証法に求めるのであれば、伝統的な検証法にこだわらずに、プログラムの検証法とは何かを考えることを勧めたい。本発明は新たな検証法の指針になるであろう。
SFではコンパイルが済めばSAの正統性が保証される。故に、SAは本発明を必要としない。本発明の診断対象は成否が不明なNSAの原因を明らかにすることである。
SFがデータ結合型プログラム故に実行時のアルゴリズムはSAとなる。他方、LCPSは論理結合型、換言すれば、人工的プログラム故にその実行時のアルゴリズムはNSAとなる。そして、NSAが発症させるプログラム問題に気付いたとしてもそれをそのLCPS上で、あるいは別のLCPSで解決しようとしても、それは不可能である。ウイルス対応のLCPSで明らかな様に、ただプログラム問題の屋上屋を重ねるだけである。NSAの課題はLCPSの構造問題に起因するので、LCPSの構造を変えない限り、普遍的な解法(例外のない解決)には至らない。
本発明者の調査では、残存バグが占める割合は全体の約30%である。そして、稼働中この残存バグが目覚めればシステム事故を発症させる。事故後、このバグ構文の発症の仕組は誰も解らない故に、関係者は仕組の一部を原因として、結果的に屋上屋を重ねるしか途のないLCPSの改修を実施している。
本発明はLCPSの超言語脈絡を用いてバグ構文の全てを捉える方法である。
実行時不要情報から解法されるSFの開発作業は、作業量的な意味で、学習要領で明記されている通りの内容の作業をその明記どおりに果たす気質(新人)のプログラマであれば実施可能である。例えば、401Kシステムは世間的には知る人は知るものであるが、2003年当時、本発明者はまだSFの使用許可を与えていなかったので、LYEE理論を用いて、約200万個の構文でなるプログラムを新人勢力が約10か月で納品している。これは想定されるSFの生産性パラメータ(コード化率、テストレス率、全作業工数、作業工数の工程配分率、作業自動化率、開発作業難度、業務難度)にもっとも合致する典型例となった。因みに、LYEE理論で1993年以降2006年までに開発されたシステムはいずれも大型で36個である。
実行時にバグ構文が発症しなければ、NSA、LCPSには正統性が成立する。しかし、この様なことは、システムの規模にもよるが、LCPSでは万にひとつもありえないのである。本発明者の調査では、稼働中の300個の構文のLCPSですらバグ構文が発見されている。しかしLCPSだと稼働を続けるしか方法のない宿命的なプログラムである。
バグ構文を発症させる原因を要約すれば、以下の5点である。
(ア)LCPは解が不定であること。
(イ)結果、部分と全体の意味があいまいになること。
(ウ)故にLCPSの全構文の実行順番の付与規則が決定的にはならないこと。このことが付与者がコンパイラであれ、人であれ、誤記を生じさせる。
(エ)実行順番の誤記が「超言語座標」の付与に誤記を生じさせること。
(オ)結果、「超言語脈絡」に途切れを生じさせること。
1972年から2008年迄、本発明者が進めて来た研究は次の様に要約される。
(1)論理結合型プログラムが実行時に創出する非同期アルゴリズムの課題に関する研究
(2)上記課題を解法するためのプログラム(SF)の存在性に関する研究
本発明の動機はプログラムの完全体を志向するプログラム(SF)の静的構造を理論的に求める研究の過程で、LCPSが発症させるバグ事象の起因を明らかにする必要があり、バグ事象が1986年から2000年にわたり観察された。そして、その起因には(ア)LCPSに紐づけられるもの、(イ)起因が不明のものとに仕分けされる。本発明では(ア)のバグ事象は、後述される図3のバグ事象区分1、そして、(イ)のバグ事象は図3のバグ事象区分2に反映されている。そして、区分2はLCPSの部分破壊を伴うバグ事象、区分1はLCPSの部分破壊を伴わないバグ事象である。これらも本発明では図3に反映されている。
この研究は「ソフト危機の警告」に端を発して1972年に開始される。因みに、この警告はプログラム規模が150万ラインを超えると所謂バグ問題を解決することが誰にも出来なくなり、プログラマのコード化率(プログラマが1日に決定可能なコード数)がゼロに至るとの予告のことである。因みに、原理的に好ましくないプログラムの部分化が積極的に進められる様になるのは、プログラムの開発方法論、自動プログラミングが望めなくなるとの研究不足の人々が大勢を成す1990年初頭からである。この警告がその背景にある。そして、原理的に好ましくないプログラムの部分化がIT業界の潮流となる。
本発明者は約50万個の構文で構成される制御プログラムが実行時に発症させるバグ構文を捉えるために本発明の考えを用いて実証検証を行っている。この検証で捉えられたバグ構文に変わる構文は複数個所で共通に使用される部分プログラムに属す構文のひとつであった。本発明の成立性はこの検証で証明されている。
(1)(十分条件の全体)
LCPSに属す構文、例えば構文1の主語名1の主語が実行時に成立するには、主語名1に掛る全変数名がそれぞれ別の構文の主語名となる関係から、構文1が実行される以前にそれら主語名の主語は既に成立していなければならない。そして、変数主語名の主語を成立させるこの関係が、LCPSの始祖となる主語迄達していれば、この関係は主語名1の主語の正統性が成立する十分条件の全体と呼ばれる。
該当項を参照
上記(2)の現象を捉えるための情報が「図2」である。
図2の情報を絵解きすれば図4となる。図4は図2の情報から人的に、または図2の情報をパラメータとして市販されている絵解きツールで描くことが出来る。
図2の情報を機械的手続きで解析すれば、図3の情報が求められる。これは図3の情報は人的に、または作成可能な専用プログラムで図2から求められることを意味する。
LCPSに属す全構文に掛る全主語名それぞれの主語名の主語の正統性を判定するためには主語名の主語に掛る十分条件の全体をLCPSに属す全主語名ごとに捉える必要がある。しかし、論理結合型であるLCPSは十文条件の全体を捉えるために必要な情報は持ち得ていないのである。つまり、十文条件の全体を捉えることはLCPSでは不可能である。換言すれば、これはLCPSの実行時の正統性検証は原理的には不可能であることを意味する。
主語名
変数主語名
主語ベクトル
構文種別
多重構造化される調和座標
調和脈絡
超言語座標
超言語脈絡
発端主語名
終端主語名
(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.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.1:主語ベクトルはSFで用いられる構文を律する仕組である。本願はその転用である。主語ベクトルはLCPSの部品に当たるが、その構造はLYEE理論により求められた究極の普遍部品として位置づけられている。図9はその構造である。主語ベクトルは律する構文を自分の第2規約で統治する。そして、律する構文の種別により、主語ベクトルは5種に仕分けされる。
LCPSの十分条件の全体は実行時のLCPSの動的様相の基で捉えることが出来る。
LCPSの十分条件の部分は実行時のLCPSの静的で捉えることが出来る。
LCPSの超言語脈絡はLCPSの十分条件の全体を捉えるための仕組である。
LCPSから求められる図2の情報1はLCPSの超言語脈絡を捉えるための情報である。故に、図2の情報の為にLCPSには動化パラメータが課される。
5.1:調和座標とは、本願発明者により発案された6種の座標系である。6種の座標とは、TCX、TCY、TCZ1、TCZ2、TCZ3、TCZ4である。
(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を指す。
LCPSの超言語脈絡を参照。
7.1:例えば、算術式A=B+Cに於いて、本願ではAを主語名、B、Cを変数主語名と記す。主語名、変数主語名は共に領域の名称(領域名)であるが、本願では算術式左辺のAを特に主語名と総称する。故にB、Cは別の算術式では、可能的に主語名となる関係にある。
8.1:LCPSの脈絡とは図2の情報のことである。
平文法と総称される平文法の作業手続の要旨を以下に記す(図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の情報から編集すること。
以下に図の補足説明を行う。
平文法とは、入力側情報から出力側情報を生成するための機械的作業手続きの総称である。
平文法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を描くための機械的手続きの事である。
11.超言語脈絡に途切れを発症させる構文が存在すれば、発端構文の主語名の主語には十分条件の全体が成立しないので、発端主語名の主語は、結果的に不正値である。
12.途切れ構文の存在条件は発端構文の主語名の主語を変数主語とする構文数を最大にする超言語脈絡上の構文である(図6参照)。
13.上記12.で決まる構文の主語名の主語は結果的に不正値となる。
14.本願発明のLCPSの脈絡を用いれば、主語名の主語の判定は実値を求める必要がない。これがテストデータによる従来的な実行検証法との基本的な違いである。
情報1:7種の動化パラメータを課せばLCPSから求められる「LCPSの脈絡」を捉えるための情報。
情報2: 「LCPSの脈絡」の発端、終端となる主語名のTCX。情報1から求められる。
情報3:「LCPSの脈絡」から導出される情報のTCX。
情報4:「LCPSの脈絡」から導出される情報のTCX。
情報5:「LCPSの脈絡」から導出される情報のTCX。
情報6:情報1から導出される情報のTCX。
(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)。
1.超言語座標付LCPSの全構文(含む領域定義文):図2を複写
2.構文の主語名
3.構文の変数主語名
4.変数主語名を起点として超言語脈絡を成立させる主語名を脈絡主語名と記す(図4参照)。
5.超言語脈絡が終端に至ればこの超言語脈絡は成立する。
6.超言語脈絡が終端に至らなければこの超言語脈絡は本図を用いて連接される。
7.超言語脈絡を連接する主語名が見つからなければこの超言語脈絡は途切れる。
8.その実行構文のTCXは図3の情報3の左欄に登録される。
2.において、主語名の主語の脈絡の発端主語名を決定するために必要な情報は、以下の通り。
1:調和座標
2:超言語座標
3:構文種別
4:構文種別と主語ベクトルの関係
主語ベクトルは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の全構文に構文の実行順位を示す1組の「調和座標」を付与する。これにより、「LCPSの調和脈絡」が決定される。
LCPSの全構文に「動化パラメータ」を付与する。
構文の主語名、変数主語名に「超言語座標」を付与する。
以上の手続きにより、「LCPSの超言語脈絡」を捉える情報図2が決定される。
調和座標、LCPSの調和脈絡、動化パラメータ、超言語座標、LCPSの超言語脈絡の定義は該当項で示されている(図2参照)。
そして、これを用いて、LCPSが発生させるNSAの正統性を検証可能にする。
Claims (6)
- コンピュータに、
論理結合型プログラムのソースから超言語脈絡を求めるステップと、
前記超言語脈絡を用いて前記論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性を検証するステップと
を実行させるためのプログラム。 - 前記超言語脈絡を求めるステップは、前記論理結合型プログラムのソースの構文毎に行番号を付与し、前記行番号で識別される構文毎に、超言語座標、調和座標、構文種別、及び、主語ベクトル種別を特定するステップを含む
請求項1に記載のプログラム。 - 前記コンピュータに、
前記超言語座標、前記調和座標、前記構文種別、及び、前記主語ベクトル種別により特定される、前記行番号で識別される構文間の関係を図に表すステップ
を実行させるための請求項2に記載のプログラム。 - 前記コンピュータに、
前記超言語脈絡を用いて、前記非同期型アルゴリズムに不正値を発症させる前記論理結合型プログラムのソースの構文を特定するステップ
を実行させるための請求項1に記載のプログラム。 - 前記構文を特定するステップは、途切れ構文又は不正構文よりも発端主語名に近い条件文が存在する場合、バク構文の修正が不可能と判定するステップを含む
請求項4に記載のプログラム。 - 前記超言語脈絡を求めるステップは、前記論理結合型プログラムのソースの構文毎に行番号を付与し、前記行番号で識別される構文毎に、超言語座標、調和座標、構文種別、及び、主語ベクトル種別を特定するステップを含み、
前記構文を特定するステップは、前記論理結合型プログラムのソースの前記行番号で識別される構文毎に、発端主語名、終端主語名、脈絡の途切れ又は錯誤の有無、発端主語名がバグの起因となっているか否か、バグ事象を構成するバグ構文、バグ事象仕分けコード、部分破壊範囲、及び、データ揺動構文を特定するステップを含む
請求項5に記載のプログラム。
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)
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)
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 |
-
2019
- 2019-12-16 EP EP19956278.6A patent/EP4080369A4/en not_active Withdrawn
- 2019-12-16 WO PCT/JP2019/049213 patent/WO2021124411A1/ja unknown
- 2019-12-16 US US16/955,320 patent/US11768756B2/en active Active
- 2019-12-16 CN CN201980103520.6A patent/CN115039083A/zh active Pending
- 2019-12-16 JP JP2020512753A patent/JP6719798B1/ja active Active
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 |