(57)【要約】      （修正有）【課題】「意味の仕組」を求め、プログラム課題を発症しない情報処理装置を提供する。【解決手段】プログラム構文を、条件文、入力文、出力文、定値文、制御文を少なくとも含む単元文に還元する単元文化手段と、前記単元文化手段によって得られた単元文のそれぞれについて、文種、ベクトル種別、連動文、行番号、調和座標、超言語化された単元文、主語、変数主語、指標、定値、定置名刺のうち該当する要素を設定するＬＹＥＥ空間展開手段と、すべての単元文について前記ＬＹＥＥ空間展開手段によって得られた要素に基づいてプログラムを編集するプログラム編集手段とを具備して構成される。【選択図】図１４
2015215649.tif 000002
【特許請求の範囲】
【請求項１】
プログラム構文を、条件文、入力文、出力文、定値文、制御文を少なくとも含む単元文に還元する単元文化手段と、
前記単元文化手段によって得られた単元文のそれぞれについて、文種、ベクトル種別、連動文、行番号、調和座標、超言語化された単元文、主語、変数主語、指標、定値、定置名刺のうち該当する要素を設定するＬＹＥＥ空間展開手段と、
すべての単元文について前記ＬＹＥＥ空間展開手段によって得られた要素に基づいてプログラムを編集するプログラム編集手段と
を具備することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に係り、特に、プログラムの意味を人が自覚出来る形式の情報に生成する方法論を具現化しつつプログラムのソ−スを生成する情報処理装置に関する。
【背景技術】
【０００２】
第1章  本研究の外郭
1  研究の動機
本発明者がプログラムの方法論の研究を本格的に始めたのは、1972年の暮れである。世界で「ソフト危機」が警告され始めた頃であった。本発明者はある大手商社が情報システムを統合化するプロジェクト計画の検討の場に、システム開発の専門家としてIBM社の人達と共に招かれた。会議には30名程の人たちが出席し、社長も同席されていた。幾人かが資料の内容を説明し質疑が進められた。終わり頃、社長が著者に資料で示されている作業期間、作業工数について、理想的に進めれば、どの様に変わるかの意見を述べてほしいと云う主旨の質問があった。当時は著者にも何が理想的かさえわからなかった。
【０００３】
電算機システムがあらゆる分野に普及しその重要性、規模が増すと、方法論がないので、作業上の失敗を過度に恐れ、失敗時の弁明が出来る様に開発計画が立てられる傾向がある。方法論を用いない限り、システム構築の在り方が混沌となるのは止むを得ない。これは方法論を持たないこの分野の世界的な傾向である。この様になると其処には進取の気性は生まれない。また改善策や方法論を受け入れない世界が成立する。その結果、開発上の様々な課題は棚上げされ、電算機システムの利便性の華美さで補う事になる。
【０００４】
電算機システムによる有効な利便性は多い事は確かだが、方法論がないので技術力と云うよりも目先の思い付きで実現されている状態である。本発明者が調査した限りではその様なものである。この様な世界は他の分野で見る事が出来ない。
【０００５】
会議が終わった後、その会議に本発明者を呼んでくれた財務部長に夕飯をご馳走になり、「現実を改善するためには理想論が必要なのです。理想論とは方法論です」と教えられて家に帰った。本発明者が、研究を本格的に始める事を決意したのはこれがきっかけである。
【０００６】
2  問題意識の醸成
1985年頃までは、プログラムに関する知識を整理する時期だった。この為に研究者として以下の様な仕事を行っていた。
１．プログラムに関する論文を集められる限り集めて内容を整理する。
２． プログラム作成者のプログラム作成の現実的考えを教わる。
３． パッケージ・プログラムの機能の仕組を調査する。
４． プログラムの使用領域の動的関連図を作成して動的構造の特徴を調べる。
後日、４．はプログラムの「意味の仕組」の原型となった。
【０００７】
この様な作業を１０年以上も続ければ、誰でもプログラムについて詳しくなれる。本発明者も結構詳しくなった。当時は知人などを介して、講演会に呼ばれてプログラムの解説をしていた。特に、当時は銀行関係の人達にオンラインシステムのプログラムの構成、機能を解説したりしていた。複写性プログラムを作る方法を夢見ながら、特に、本発明者が注目したプログラム作成者は新聞を読む様にプログラムを速読し、プログラムを作りながら、業務知識を整理しプログラム設計作業を行う人達だった。そして、その人達のプログラムを分析する為に次の様な質問を行っていた。
１． プログラムを作る考え方。
２． 経験で改善出来ること。
３． 品質を維持する為のコーデング法。
４． テストの為のコーデング法。
５． プログラム保守の為のコーデング法。
【０００８】
当時の人達はプログラムに３．４．５．の為のコーデングを組み込むことがプログラム作成者の仕事で、経験はその為に必要だと答えている。その人達とプログラムの議論をすると、本発明者はその人達が、心の中に複写性プログラムの構造模型の様なものを既に持っている様に気付き始める。そして、その人達の話やプログラムから、複写性プログラムの模型を求めようとするのだが、研究を始めて既に１０年が経過していたが、到達する事はできなかった。
【０００９】
3  発想の転換
（１）  ある予感
様々な試行を繰り返す中で、複写性プログラムに辿りつけず、挫折感が続く中で、上手く行かない原因は、機能的知見を拠り所とする考え方に問題があると気付き始める。その頃、数値解析が専門の知人が進めてくれた会社を尋ねた。その会社ではFORTRANを使って、仕様メモから独りが1日に1500ステップのプログラムを完成させると言われていた。プログラムの作り方を教わる為である。作業の進め方を見学させて戴いた。仕様メモを基に、部品コーデングをし、次にはそれを全体として、補正しつつ紐付ける方法である。20名ぐらいの人達が同じ方法でプログラムを作っていた。タイプライターの音が夕立の雨音の様に聞こえていた。本発明者が複写性プログラムの構想を説明すると、「面白い研究をしているのですね」と言い著者の質問に丁寧に答えてくれた。今もプログラムを作っているというその人は既に６０歳を過ぎていると言う事だった。「時々どのプログラムも気持ちの中では同じ構造だと感じる事がある」「ひとから経験を消す方法が解かれば、誰もが複写性プログラムを取り出す事が出来るかも知れない」「社員を見ていると人間は悪しき経験程、固執する傾向がある様に思う」など多くの有意義な示唆を得る話を伺う事が出来た。
【００１０】
（２）発想の転換
われわれのものの見方はわれわれの知見である。知見とは、先入観である。しかし、それは生命作用により成立するアルゴリズムである。複写性プログラムは様相を機能的に叙述する従来のプログラムの在り方ではなく様相の全体を全景として同期的に成立させる仕組となる筈だと気付き始める。著者は生命作用を形而上学的に模型化して、その模型にこの着想を実現させる公理的なアルゴリズムを求める為の論考を始める。
【００１１】
われわれは様相の部分しか捉える事が出来ない。本研究ではこの事を外延的と記す。そして、その様相は機能的になる。もし、われわれが様相の全体を捉える事が出来れば、それを内包的と記す。図２−１参照。生命作用は様相の全体を外延的に全景として捉えようしている。この事が様相を複雑化させ、其れが混沌を生じさせ誤りを生じさせる起因になっている。図２−２参照。
【００１２】
生命作用を導入する事により、われわれのものの見方に「複雑度」「混沌」、「誤り」の起因が解説できる。そして、様相の中の複写性プログラムを取り出すアルゴリズムから「複雑度」「混沌」、「誤り」を介在させない仕組を求める事が出来る。機能的な観点だけにとどまりその様な仕組を求めようとしても求められるものではない。様々なプログラムを基に複写性プログラムを求めようとしても求められなかった理由である。
【００１３】
後日ある大学の責任者とこの研究について話し合った事がある。教授が云うには「最も危ういのは専門性だ」「長くそこに居れば誰でも専門家には成れるが、いつの間にかその虜になって発想が枯渇している。研究の第一線に立つには発想の転換が必要で、専門家には専門性を否定する勇気と反省がなければ本物とは言えない。ましてや、徒党を組む専門家達には問題が多い。君は何時も一人だからうらやましい」と、多分著者を励ましてくれたのだと思う。生命作用の形而上学的模型はギリシャ時代に始まる「存在論」にある。この方針が見えたのは1985年の春である。その夏には研究の目途が立ったという事で、縁のある人たちが、私を銀座のライオンで祝ってくれた思い出がある。
【００１４】
4  研究の経過（プログラム構造のモデル化）
研究の後段は1988年以降である。多くの準備ができたので、複写性プログラムの為の方法論の構築が開始される。
1)  ＶＯＣＪＵ
ＬＹＥＥは生命作用を形而上学的に模型化しそのアルゴリズムでプログラムの構造とそれを規約する方法論が論考されるのに対し、
ＶＯＣＪＵは機能的アプローチでＬＹＥＥが求めようとする複写性プログラムに何処まで迫れるかを観察する為に
並行して行われた論考である。１９９０年ＬＹＥＥに先行してそのプログラム構造が求められ、規約化される。このプログラム構造を律するプログラムの骨組はFAL（frame of
applicational logic）、ＦＡＬの変数となる要件の様相は「ASL（application segment
of logic）」と記された。そして、この技法はVOCJUと名付けられた。ＡＳＬはロジックの最少クラスの構造でありながら、ロジックの変化を単独で最大限吸収する構造である。
ＡＳＬ間の論理関係はＦＡＬで治要される。ＶＯＣＪＵは大手の鉄道会社で導入され、幾つかのシステムが開発されている。
【００１５】
ＶＯＣＪＵの導入先の企業によれば開発実績は５年間で１８０億円ぐらいである。開発効率は、訓練されたリーダが居れば、従前の開発費用の３０〜４０％減になっているとの報告を受けた。しかし、改善すべきことが改善出来ても全てのシステムがＶＯＣＪＵで開発されるのでなければ従前の開発技法の関係者には不都合が生じる。それが組織の特長かも知れない。そして、ＶＯＣＪＵの推進リーダが居なくなると組織は忽ちまち先祖返りをする。技術立国でも改善を推進するリーダはなかなか育つものではない。故に大きな組織では革新的な改善策を導入する事は容易ではないのである。
【００１６】
2)  ＬＹＥＥ
研究を始めて２３年目の1996年、遂に複写プログラムの構造とそれを決定する為の方法論が捉えられる。ＬＹＥＥはその総称で、Metaphysical  Methodology  for software architectureの後ろ文字を並べたものである。本発明者はソフトウエアの統一理論として位置付けている。これは2001年に特許として登録された。ＬＹＥＥによる実績は開発が３１システム、プログラム言語変換が５システム、プログラムの観察ツールが１システムである。開発効率はＶＯＣＪＵを凌ぎ従前の予算の平均で６０％減となっている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００８−００３６４１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
本発明は、上記のこれまでの本発明者の開発技術をさらに発展させ、「意味の仕組」を求め、プログラム課題を発症しない情報処理装置を提供することにある。
【課題を解決するための手段】
【００１９】
上記のような課題を解決するために、本発明は、プログラム構文を、条件文、入力文、出力文、定値文、制御文を少なくとも含む単元文に還元する単元文化手段と、前記単元文化手段によって得られた単元文のそれぞれについて、文種、ベクトル種別、連動文、行番号、調和座標、超言語化された単元文、主語、変数主語、指標、定値、定置名刺のうち該当する要素を設定するＬＹＥＥ空間展開手段と、すべての単元文について前記ＬＹＥＥ空間展開手段によって得られた要素に基づいてプログラムを編集するプログラム編集手段とを具備して構成される。
【発明の効果】
【００２０】
上記構成を備える本発明によれば、プログラム仕様で定義されるアルゴリズムをプログラム言語で原始プログラムに置き換える為の普遍的な叙述法としてのプログラムの方法論が確立される。方法論で成立する原始プログラムはプログラム言語の文法で成立する原始プログラムと同じ構造ではない。方法論で成立する原始プログラムはプログラム言語と仕様書が同じであれば、作成者が誰であってもその個人的な影響を超越して複写された様に完全に一致する。これを原始プログラムの複写性（以下単に複写性と記す）と記す。
【００２１】
本発明によれば複写性が成立することから、原始プログラムはさまざまな効果を齎す。例えばプログラムの開発生産性を向上させる。理由はその叙述法には普遍的で原始プログラムの自動生成を成立させるアルゴリズムが必然的に含意しているからである。その原始プログラムの構造の解釈は複写性が成立するのと同じ様に解釈者が誰であってもその個人的な影響を受けずに心の中で完全に合意する。故に、原始プログラムの構造の解釈を不可欠とするプログラムの保守作業はこの事により必然的に能率化される。プログラム化されるアルゴリズムが複雑でも方法論で成立する原始プログラムはその複雑さから回避する事が出来る。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態を表した図
【図２】本発明の一実施形態を表した図
【図３】本発明の一実施形態を表した図
【図４】本発明の一実施形態を表した図
【図５】本発明の一実施形態を表した図
【図６】本発明の一実施形態を表した図
【図７】本発明の一実施形態を表した図
【図８】本発明の一実施形態を表した図
【図９】本発明の一実施形態を表した図
【図１０】本発明の一実施形態を表した図
【図１１】本発明の一実施形態を表した図
【図１２】本発明の一実施形態を表した図
【図１３】本発明の一実施形態を表した図
【図１４】本発明の一実施形態を表した図
【図１５】本発明の一実施形態を表した図
【図１６】本発明の一実施形態を表した図
【図１７】本発明の一実施形態を表した図
【図１８】本発明の一実施形態を表した図
【図１９】本発明の一実施形態を表した図
【図２０】本発明の一実施形態を表した図
【図２１】本発明の一実施形態を表した図
【図２２】本発明の一実施形態を表した図
【図２３】本発明の一実施形態を表した図
【図２４】本発明の一実施形態を表した図
【図２５】本発明の一実施形態を表した図
【図２６】本発明の一実施形態を表した図
【図２７】本発明の一実施形態を表した図
【図２８】本発明の一実施形態を表した図
【図２９】本発明の一実施形態を表した図
【図３０】本発明の一実施形態を表した図
【図３１】本発明の一実施形態を表した図
【図３２】本発明の一実施形態を表した図
【図３３】本発明の一実施形態を表した図
【図３４】本発明の一実施形態を表した図
【図３５】本発明の一実施形態を表した図
【図３６】本発明の一実施形態を表した図
【発明を実施するための形態】
【００２３】
プログラム開発方法論の新秩序（ＬＹＥＥ）
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
序章
第１章：プログラム開発方法論の新秩序（本章）
第２章：研究の途（プログラムの課題と方法論）
第２章：自覚関数
第３章：自覚関数
第４章  シナリオ関数
第５章：ＬＹＥＥ空間の展開
第６章：意味の仕組
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
第１章：プログラム開発方法論の新秩序
本研究を新秩序と記す所以を要約的に総論する。
１．新秩序の所以
１．１  複写性プログラム
発明者が１９７３年から始める本研究は、仕様書とプログラム言語が同じであれば、ソースプログラムは誰が作っても、複写機で複写された様に同じになる方法論を求めることである。本研究ではこの様なプログラムを複写性プログラムと記す。
１．２  ＬＹＥＥ
ＬＹＥＥとは複写性プログラムを成立させる方法論の総称である。ＬＹＥＥは１９７３年に始まる研究で１９８５年に方向付けが成され、１９９５年に完成する。
１．３  複写性プログラムの基本的な効果
・複写性プログラムは仕様書の定義通りに作成される。
・複写性プログラムの観察、解釈の内容はひとにより違わない。
・複写性プログラムにはプログラム課題は生じない。
・複写性プログラムには品質的なムラがない。
１．４  プログラム課題
プログラム課題が生じる起因はわれわれの叙述法が起因となっている。プログラム課題とはプログラムに関する以下の様相である。
・コード化率が経時的に低下する。
・プログラムが経時的に複雑化する。
・プログラムの叙述にはムラがある。プログラムの品質とはこのムラの事である。
１．４  ＬＹＥＥが齎すアルゴリズムの応用効果
・複写性プログラム作成の人的作業は単純化される。
・複写性プログラムは自動生成する事が出来る。
・複写性プログラムのテストは従来プログラムのテスト作業量の８０％を削除することができる。
・複写性プログラムにはプログラムに侵入するウイルスを受け入れて自律的に無効化する仕組が成立する。
・複写性プログラムにはサイバー情報を排除する仕組を組込む事が出来る。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
２．論理結合型叙述
本研究によりわれわれの叙述法は「論理結合型」として捉えられる。この叙述法は例えば異なる事象Ａ，Ｂを「ＡならばＢである」と結びつける生命作用である。
換言すれば、事象Ａ，Ｂが同等であるとの主張である。
他方、叙述を行うわれわれは部分である。故に、われわれが叙述する事象Ａ，Ｂの様相もおのずと部分に帰着する。部分であるわれわれが事象Ａ，Ｂの全景を叙述出来る筈はないからである。因みに、われわれは、譬え、掌の林檎でさえその全景を叙述する事が出来ないのである。言語、文法は様々であるが、いかなる手立てを講じても、落語の蒟蒻問答の通り、われわれが行う叙述が完結する事はない。それが論理結合型叙述法の特徴である。
われわれは何時ごろからか証明、実証と云う叙述を用いて完結しない叙述を完結する叙述に工夫し、それを論理と記すことになった。
しかし、様相の全景が解からない限り、其処にはおのずと限界がある。もし、この叙述法で、全景を叙述しようとすれば、その叙述は複雑化し、其れが起因となって叙述そのものに混沌が生じる。これはラッセルの逆説で示唆される所である。科学的、哲学的の叙述、われわれの日常的な会話、法律文、そして、本書で述べるこれ迄のプログラムもこの叙述法で行われている限り、いかなる論理もこの限界から逃れることはできないのである。故に、われわれの論理には必ず課題が潜むことになる。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【００２４】
３．データ結合型叙述
本研究では、プログラム課題をプログラムの構造で解法させようとして始められた。２０年余に渡る既存プログラムの解析を通じて、プログラム課題は論理結合型叙述法を根本原因として生じている事が明らかにされた。結論的に、求めるべきプログラムの構造は複写性プログラムでなければならなかった。そして、プログラム課題を無くし複写性プログラムを成立させる叙述法は論理結合型叙述法ではなく、データ結合型叙述法である事に辿りつくのである。１９９５年である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
１９７０年初頭にソフト危機の予見が警鐘された。常識的な感覚でプログラムが作れなくなるという指摘である。今日、この警鐘は現実のものとなっている。例えば、プログラムの保守が困難となり、品質が劣化して、開発維持の価格が異常に迄高騰化している。そして、この問題の解法を求められず唯手をこまねいているという実状である。更に、今日的にはウイルス、サイバー攻撃などと云った問題が加わり状況を更に複雑化させている。情報システムは利便性の裏面に潜む破滅的な実状を見直すルネサッンス的革命が必要な時に来ている。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
本発明者は本研究の為に既述の通り、２０年程の間に様々な分野のプログラム約５００本程の構造が以下の観点から徹底的に解析された。
・その命令がそこに置かれる理由
・余分な命令がそこに置かれる理由
・解読の容易さや難しさの理由
・解読の限界
そして、これら成果を基に複写性プログラムの構造と方法論を研究するがなかなかその目標に到達する事ができなかった。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
論理式の世界では不定性の回避を前提に叙述される。しかし、プログラムの世界は全てが論理式の世界ではない。故に、プログラムで扱う変数の種別が多くなると不定性の問題は完全に取り除く事が出来るとは限らない。この指摘はプログラムを認識する上で重要な観点である。複雑な数学問題を解くよりも日常的な簡単なプログラムでこの問題を解決する方が遥かに難題だったのである。複写性が成立する構造を求めようとすればこの不定性を完全に取り除く為の叙述法が必須になる。本発明者は先達者の支援を得てこの目標の為には論理結合型叙述叙の転換が必要だと気が付く。その叙述法がデータ結合型叙述法だったのである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
２０年余を経て、複写性プログラムを成立させる叙述法が形而上学的な存在論を基に求められた。本研究でその叙述法は「データ結合型叙述法」と記された。データ結合型叙述は、論理結合型叙述の最少クラスで例えば「ＡはＡである」、「ＢはＢである」として専用の叙述構造体で義される。この構造体はＬＹＥＥの研究で求められベクトルと名付けられた。そして、最少クラス以上の「ＡならばＢである」と云う論理結合型叙述はベクトル達が電算機の動性を用いてＡとＢのベクトルの間に論理結合を成立させる必然性が成立すれば成立する。即ち、「ＡならばＢである理由」は人間が関わるのではなく電算機でベクトル達が成立させるのがこの叙述法の特長である。ベクトル達を用いてプログラムの成立理由を成立させる仕組はＬＹＥＥの研究で求められ、シナリオ関数と名付けられた。
ベクトル、シナリオ関数は世界で最初に導出されたデータ結合型関数である。そして、ベクトル、シナリオ関数により、定義されるプログラム（シナリオ関数型プログラム）には複写性が成立することになったのである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
４．意味の仕組
論理結合型叙述のプログラム（これ迄のプログラム）では、プログラム課題、テストの為にプログラムをひとが観察する必要がある。しかし、論理結合型叙述は暗示的に叙述の意味を解釈できるとの錯覚を読者側に与えることが特徴であるが、例えば、論理結合型叙述のプログラムでは、その読者に限らずそれを作成した当事者ですら平均的にその動性の７０％以下しか解釈することができない。これはＬＹＥＥによる意味の仕組で証明されたのである。解釈を１００％にするのであれば、本研究で云う「意味の仕組」を求めて、それを観察する以外に手段はない。因みに、シナリオ型プログラムではプログラム課題は発症しない。テストの仕方もこれ迄の様に複雑にならないので、結果的にシナリオ関数型プログラムにはそのベクトル以外に解釈する必然性が生じない。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
第2章  プログラムと方法論
１９７０年代になると様々な分野で電算機システムが本格的に導入される様になる。応用プログラムは電算機システムごとに作成されるので、応用プログラムの作成の就業人口も急激に増加する。  しかし、プログラムの方法論は発見には至らない。故に、プログラムの開発は方法論に基づかない技法で行われる。其れでも電算機システムの利便性が次々と齎されれば、譬え目の前に、ソフト危機の予兆的現象が起きていても、関係者は次第に利便性の方に加担し、ソフト危機の事は次第に遠ざけられて行く事になる。１９９０年代はプログラムの世界からソフト危機が忘れ去られ、方法論と決別した時代である。そして、多くの研究者がこの分野から去っていった時代でもある。
【００２５】
方法論は見つけられなかったが方法論を求めていたそれ迄の時代には技法に対する関係者の反省があった。しかし、１９９０年以降の関係者に技法に対する反省を聞く事はなくなっている。その様な人達で埋め尽くされて無法世界以上の無法状態である。しかし、２０００年に入ると応用プログラムの開発が予定期間では作れない。開発費用が高騰化している。応用プログラムの事故が多すぎる。応用プログラムの保守、検証が難しいなどの現象が最早隠し通せる状況ではなくなった。
【００２６】
報道によれば、大型の電算機システムの開発費用は誰が見ても異常である。それらは想像を絶する未知の特別なものを開発しているわけではない。日常業務を管理操作するシステムに過ぎない。この状況は１９７０年代に予告されたソフト危機の光景である。方法論をすてた帰結である。方法論を登場させなければ、この状況から脱する事はできない。
【００２７】
本発明者はプログラムの方法論の研究の一環として継続的に応用プログラムを調査分析しているが、プログラムの完成度はこの２０年余の傾向として顕著に低下している、と考えている。因みに応用プログラムの完成度とは、仕様書で定義される利便性を実現させる為のロジックがプログラムの完成度に占める割合は３０％程度である。プログラムは稼動される間に改善される。この改善はプログラム保守と呼ばれる。保守はプログラムを解読しながら改善個所を探して改善される。しかし、プログラムが方法論で作成されていないので、解読は容易ではない。故に、応用プログラムには保守作業に備えて応用プログラムの解読の為の情報をメモとしてプログラムに組み込んで置く必要がある。このメモをプログラムに加える事により、プログラムの完成度は５０％に迄上がる。
【００２８】
利便性を実現させるロジックが意図した通りにアルゴリズムを成立させるか否やは応用プログラムを電算機システムで実際に稼働させて検証される。この作業はプログラム・テストと呼ばれる。プログラム・テストでは応用プログラムのどの箇所を検証するべきかを保守作業の為のメモと同じ様にプログラムの該当箇所に組み込んで置く必要がある。また、テスト結果の観察を容易にする為のロジックを応用プログラムに組み込んで置くことも必要である。方法論で作られないプログラムには以上の様な手が加えられてプログラムの完成度は使用に耐える最低の水準に達する。しかし、既に稼動中の応用プログラムを調査すると平均的にその完成度は７０％程度に止まっている。
【００２９】
本発明者はプログラムの方法論を研究する傍ら、プログラム開発現場に立って来た。そこでプログラムの方法論が如何に重要かを具体的に見てきている。本発明では方法論の観点で見たプログラムの基本事項、方法論がない時代の様相、方法論がない故に失われて来た事柄、そして方法論とは何かなどを述べる。
【００３０】
２．１  プログラム
電算機は「記憶装置を用いてプログラムでアルゴリズムを成立させる電気的な機械」である。故に、電算機はプログラムによってシステム的な利便性を成立させるのである。そして、その効果は狭義（導入費用対効果）、広義（維持費を含む総費用対効果）を問わず、アルゴリズムを成立させる為のプログラムの存在の仕方の影響を受けることになる。故にプログラムを作る為の方法論を持たずにプログラムを作る事は結果的に様々な課題を生じさせる行為となっているのである。
【００３１】
プログラムはその役割から本来的に方法論で作られるべきものなのである。ここで付言して置きたいことは、標準化と方法論は別物であると云うことである。方法論がないのに標準化はあり得ないと言う点である。
【００３２】
さて、現在の電算機のように計算のアルゴリズムをプログラムで定義する概念は1930年頃、チューリングによって提唱されたものである。その後、プログラムを記憶装置内に置き、それを実行させる方式は1956年にノイマンにより、提唱されたものである。プログラムは専用の言語（プログラム言語）で人によりつくられる。その状態のプログラムは原始プログラム（source program）と呼ばれる。原始プログラムは電算機システムを用いて電算機の言語（機械語と呼ばれる）に変換される。この為のプログラムは翻訳プログラムと呼ばれている。変換されたプログラムは目的プログラム（object program）と呼ばれる。更に目的プログラムが電算機システムで稼動できる様に電算機に写される。その状態は実行プログラムと呼ばれる。
【００３３】
１９５０年頃のプログラム言語はアッセンブラー言語と呼ばれ、電算機の方式に基づいて作成されたものであった。その後コンピュータが様々な分野で普及される様になるとさまざまなプログラム言語（コンパイラー言語）が登場する。自然言語が１０００種類ぐらいと云われるのに対し、１９８０年代にはプログラム言語３０００種類ぐらいもあると云われた。
【００３４】
ここで、留意しなければならないことは、プログラムで重要なのはプログラム言語よりもプログラムを作る為の方法論である。しかし、ＬＹＥＥの様な方法論が発見されなかったのでプログラム言語がその役割を代行する形でお茶を濁して来たのである。もし、応用プログラムの方法論が先行して発見されていればプログラム言語は今とは違うスマートな言語になっていた筈である。この事はプログラム言語の設計者が本書で述べるシナリオ関数のベクトルを理解すれば同意出来る筈である。
【００３５】
利用者の直接的な利便性を図るために作られるプログラムは応用プログラムと呼ばれる。応用プログラム、翻訳プログラムを電算機で実行させる為の支援専用プログラムは基本プログラムと呼ばれる。これは1960年前後からOSとも呼ばれる様になった。翻訳プログラム、基本プログラムは電算機と親密に機能しなければならないので通常、電算機の仕組に精通出来る環境にいる関係者によって作られる。これらプログラムも応用プログラムの方法論が先行して発見されていれば、プログラム言語と同じ様により洗練されたスマートなものに進化していた筈である。
【００３６】
プログラムを応用、基本に分けるのは電算機の普及を能率的に行わせる経営戦略上の考えから来ている。
ＩＢＭ社がこの考えを基に基本プログラムを苦難に苦難を重ね幾多の危機を乗り越えて進化させたことや日本のメインフレマーが横並びで盗用して自社開発にしようとしたが、それが露見し大変なぺナルテイを課せられたのは昔話である。
【００３７】
基本プログラムを起動させるプログラムはブーツ・ストラップ・ルーチンと呼ばれる。この語源は池に落ちた泳げない人が浮き上がろうとして、自分の靴ひもを引っ張ったと言う寓話から来ている。電算機、関連機器（hard ware）、基本プログラム、応用プログラム(soft
ware)を合わせて電算機システムと呼ぶ。電算機の使途が拡大されるにつれ、電算機システムの使途が分野で区別され、情報系、制御系、組込系などと呼ばれる様になる。本発明者のプログラム調査の経験からいえば、これはプログラムの作り方の悪しき習慣を正当化する為の主張である。プログラムを分析調査すると方法論で作られていない点で同じレベルであり、本質的な相違は何処にも見当たらない。方法論の観点ではこの区別化それ自体が既に方法論を阻害することになっている。方法論の観点ではプログラムは一様にプログラムなのである。
【００３８】
２．２  利便性
電算機の起源を辿るとすれば、1313年頃、英国人チャールス・バベッジによる「自動粉つき機」だと言われている。既述した電算機の定義に立てば算盤、歯車式計算機をその起源と見る向きもあるが、それらは電算機の起源には当たらない。これらの事もより正確な解説は既に本として出版されている。さて、電算機が齎す利便性はプログラムが成立させるアルゴリズムで成立する。ここでは利便性が電算機でどの様に成立するかの基本的な仕組を簡単に示す。電算機の特徴は人並み外れた早さで計算、情報処理が多量に可能となる事である。しかし、計算を行う為の計算式、情報を処理する仕方は電算機やプログラムが自動的に決めるのではなく、事前に人がプログラムで決めて置くのである。
【００３９】
故に、電算機システムがプログラムで決められている計算式や情報処理の仕組以外の計算をしたり、情報を編集したりする事は決してないのである。情報の時制、即ち、この情報は今の、この情報は過去の、この情報は未来のと云う仕分けもプログラムで事前に決め置くのである。即ち、電算機は自ら人の様に考え事を想像すると言う様な事は決してするわけではないのである。換言すれば、電算機システムは多量情報を駆使してもひとの様に意味を作り出すと言う事はできないのである。
【００４０】
２．３  アルゴリズム
プログラムは人間が考えるアルゴリズムを電算機に代行させる為の叙述である。この叙述を方法論で定義できるようにすることが必要なのである。アルゴリズムとは考え方、例えばロジックを手続き化（流れ図）したものである。アルゴリズムは以下のような特長をもっている。
・生命作用である。
・全体として成立する。
・分割ができない。
・利便性は分割されたアルゴリズムを用いて全景化することである。全景化は生命体の本能である。
・アルゴリズムの全景化はアルゴリズムを複雑化する。アルゴリズムの複雑度は其処に属す条件文の数で測ることができる。
・利便性は主観的でそれを測る絶対尺度はない。費用対効果は尺度の代弁である。
・アルゴリズムの複雑化は「不具合な意味」を可能的に生じさせる。本発明によれば、「不具合な意味」はアルゴリズムの総量の３０％ぐらいに発生する可能性がある。
・不具合な意味はわれわれに想定外の誤謬を生じさせる。プログラムからプログラムの「不具合な意味」を直接捉えることはできない。プログラムの「不具合な意味」は本発明による方法で「意味の仕組」を求め、それを観察すれば捉えられる。意味の仕組は後述される。
【００４１】
２．４  プログラムの世相
ここでは方法論を持たないプログラムがどの様な背景の基で作られて来たかを見てみる。方法論が何故発見出来なかったかを知る上で、この観点でプログラムを作る時代的背景を観察することは重要な研究の一環であった。
（１）黎明の時代
電算機が複雑な商材として世に出てからそれをどの様に普及させるかという問題は先覚者である米国のメインフレーマ企業の課題であった。基本プログラムの精神は応用プログラムの課題を支援する事にあった。実状は、電算機の処理能力を応用プログラムの為に有効活用する為のプログラムの方向に向かう。これは当時の電算機の限られた処理能力で電算機システムの形態が多様化し、それに応える為には必然の措置であった。
この方向性は今日のどの基本プログラムでも変わっていない。基本プログラムは方法論がなくても電算機の方式との間でこの要望に応えられる機能設計が出来れば、能率的でなくとも基本プログラムは開発できる。
【００４２】
他方、応用プログラムは利便性を実現させる事が第一義ではあるが、実現させる上で所謂、プログラム課題（生産性が低い、完成度が低い、実行障害を起こす原因等）が生じ、それを回避する事も利便性を実現させる事と同等に解決されなければならない問題だったのである。応用プログラムのこの課題は基本プログラム、プログラム言語では解決出来るものではないのである。その為には応用プログラムの方法論がどうしても必要だったのである。方法論がなければ応用プログラムの課題は将来深刻な問題になるとの予見が起きていた。しかし、プログラムの方法論は容易に求められるアイデアではなかったのである。
【００４３】
この世界は手っ取り早くプログラム言語にこの問題の解法を委ねて仕舞う。ＣＯＢＯＬは当時のこの流れをくむ言語である。他方、電算機の類まれなる処理能力の基で電算機システムは多様化し、応用プログラムは本能的に複雑化して行く。基本プログラムも入出力管理機能、プログラムの実行管理機能が複雑化して行く。応用プログラムの開発維持の為に利用者は全員ＳＥに成らなければならなくなると迄言われたのもこの頃である。応用プログラムの作り方が決まらなければ、基本プログラムの作り方も決める事が出来ない。初代ＩＢＭのワトソン会長が、「こんな複雑なものが商材にはならない」と云い、機推進プロゼクトの責任者であるご子息は辞表を胸に仕事をしていたとも伝わっている。米国勢のメインフレーマはＩＢＭを残し、次々とこの複雑な事業から撤退を余儀なくされる時代でもあった。プログラムを作る方法論が見つけられなくても、プログラム作成の課題を乗り越えながら、電算機の機能性に目を付けた勇気ある導入者達により、電算機は急速に普及して行くのである。これは米国の状況である。その頃の日本ではどこが電算機を導入するかを横目で見ながらその動向を眺めていると言う状況であった。１９５０年から１９７０年に至る間の米国の電算機システムの動向は方法論がなくても正に活力に満ちた電算機システムの黎明期だった。おしむらくはこの時期に応用プログラムの方法論が発見できなかったことである。
【００４４】
（２）混沌の時代
電算機システムには、蓄積した情報を一括的に処理する形態（バッチ・システム）が始まりである。１９７０年代にはいると電算機、基本プログラムには工夫が加えられ、電算機と情報の入出力を可能にする端末機を回線で結ぶ形態（オンライン・システム）、電算機と電算機を回線で結ぶ形態などが導入されその為の応用プログラムが作られる様になる。そして、電算機システムの利便性が向上すると共にプログラムの規模も大きく、複雑になる。１９７０年の始めプログラムの実行命令数が150万個を超えれば、プログラムの作成、維持は困難になるとの警鐘が具体的に行われる。この警鐘は「ソフト危機」と呼ばれた。当時は大きなシステムでもプログラム規模はまだ90万個程度の時代である。IBM社でもプログラムの単位サイズを実行命令数500個以下ぐらいに小分けして作るモジュール化方法が提唱されている。ダイクストラらはプログラムを小さな単位で作成し、それらを構造的に連接する構築法が提唱されている。因みにこれら提案は日本では今も習慣的技法として利用されている。本発明者も当時、某銀行と製鉄会社でこれら案の解説とこれら案でプログラムの作り方を指導し、開発を指導したことがある。
【００４５】
因みに、本発明者のプログラム調査ではコード化率が高いプログラムは傾向としてプログラムの１本あたりの命令数は１万個前後のものが多かった。を超えるものが多かった。プログラム保守、テストはこれぐらいのサイズのプログラムの方がロジックが閉じているので、観察がし易い特徴があるからである。ダイクストラは著書の中で、プログラム作成の経験者は窓際に追いやれと述べている。本発明者は当時の優れた経験者が当世の経験者と違うことを知っているので必ずしも同意するわけではないが、最近の経験者と議論すると同意する気持ちでいっぱいになる。
【００４６】
大企業の部長が部下の技術者に示す為に拙宅に来られ、徹夜でプログラムを作成したりしていた。米国の論文の中に「コンピュータを導入する企業の経営者が理解しなければならない120項目」というのがあった。これはコンピュータシステムを利用する経営者に電算機システムの認識を求める為のものであった。日本でもプログラムのことを勉強されている人が多くいた。そして、この時代はプログラム課題が今後電算機システムの大きな障壁となる事が見えた故に「プログラム技術の世界的な混沌」が始まった時期でもあった。しかし、この時代の混沌は方法論を求めようとするための喘ぎでもあった。故にプログラムの事が最も真摯に議論され様々な試行が行われ、進取の気性に満ちた故の混沌だったのである。１９７０年から１９８０年に至る間のプログラムに関する動向である。方法論が忘れられている今日の様な無秩序で租界的な混沌でなかった事ははっきりしている。
【００４７】
（３）  強制的規格化の時代
１９９０年代に入ると電算機システムは通信手段、制御手段に浸透し、広義の情報処理体系が構築される時代になる。ＰＣ、携帯電話などもその一環として発展する。盗聴プログラム、システム破壊のプログラムなども含めて思いつくことなら何でもプログラム化できる情報社会が成立する。しかし、肝腎なことは高度な情報システムでもそうでない情報システムでもプログラムが方法論で作られていないことは同じである。そして、方法論がなくてもプログラムが作れると考えられる時代になってしまったと言うことである。反省が失われている時代である。作業の手続き、プログラム部品を用いる技法でプログラムを作成しても、プログラム課題が解決できない点では同じである。
【００４８】
技法と方法論は区別されるものである。付言すれば、技法は方法論が在って成立するものである。方法論のない技法は短に強制的規格化に過ぎない。故に、２０００年代にはいるとプログラム課題はまさにソフト危機の状況を呈する事になる。しかし、圧倒的な利便性の前にシステム事故は想定外だったとしてやり過ごされる。人情としてこの事は理解できる。しかし、方法論で作られないプログラムについてはその失敗から学ぶことが出来ない事を認識する必要がある。結果的に、自動車でも電算機システムが占める原価率は６０％と言わる時代である。如何にプログラム作成費用が高価であるかの証である。
【００４９】
金融機関の電算機システムで代表される大型システムのプログラム作成維持費用も異常な高価の一途をたどっている。その結果、利用者に利用料金が課せられている。突き詰めれば、方法論を持たずにプログラムが作成されていることが高騰化の原因である。それでも、この様な状況を作り出すプログラム作成の仕方を正当だと主張せざるをえない世界では、プログラム作成の現状が世界標準だとして云うしか倫理性が維持できないのである。１９９０年代から世界的なキャンペーンとしてこの言葉が多用される様になった。因みに、プログラムは１０種の構文で事足りる世界なのである。にもかかわらずプログラム言語を
世界標準にしなければならない必然的な理由は何処にもない。
【００５０】
１９９０年から今日までのプログラムの作り方はプログラム言語を中心に置き、この半世紀で方法論とは最も乖離した技法でプログラムの作成が行われる時代となっている。結果的に、この時代はプログラム課題がソフト危機の予言どおりとなり深刻な問題となった。発注者が開発側を訴訟する問題も多く起きてきている。その賠償金額も極めて高額である。高度な利便性の実現を情報システムの表の顔とすれば、今日的なプログラムの作り方、其処から生じる課題は正にその裏の顔である。それが露になった時代である。
【００５１】
２．６  失われたプログラムの本質性
どの様な分野の技術でもその精神性を正常にする為には方法論が基になる。ここでは、方法論と決別した１990年以降のプログラム作成作業の中で、失われていったプログラムの本質を示す。
【００５２】
（１）完成度
アセンブラ言語は電算機の仕組を基に定義されている。故に、アセンブラ言語の文法規則は電算機の仕組に基づいて成立している。故にプログラム作成者は電算機の仕組を知らなければその文法規則を理解することができない。電算機のアセンブラ言語に関する仕組は難しいと言う程のものではない。他方、コンパイラ言語は電算機の仕組を隠蔽して定義されている。故にプログラム作成者はその文法規則さえ理解すれば、電算機の仕組を知らなくてもプログラムを作成することができる。
【００５３】
両言語のコード化率の１９８０年代の著者の調査ではプログラム作成者の個人差による影響の方が大きく、どちらの言語が優れていると云う事はできなかった。因みに、プログラムのコード化率の改善は方法論に基づく技法でのみ改善される。プログラム言語で改善出来ると言う事はないのである。しかし、プログラム作成人口が急増し、プログラム言語の講習時間を１５時間程度で抑えようとするとコンパイラ言語が大勢を占める様になる。アセンブラ言語は極めてシンプルであるが、その講習に要する時間はコンパイラ言語の３倍以上の時間がかかる。しかし、１９８０年代に入ると文法規則に自由度の高い様々なコンパイラ言語が登場する。特に１９９０年以降に登場する例えばＣ言語、ＪＡＶＡ（登録商標）言語、高級言語と呼ばれプログラム言語がの利便性は応用プログラムの開発には有利な様に見える。しかし、著者のプログラム調査では、例えば言語変換、保守作業を伴う場では明らかに障害要因となっている。
【００５４】
その結果、プログラムはつぎはぎだらけになり、完成度、品質を低下させる原因になっている。その様なプログラム言語の保守の作業能率は因みに開発時の１０分の１以下に低下して行く。そして、保守作業を繰り返す都度、その作業能率は更に低下する。遂には応用プログラムの保守作業は合理性を欠き危機の状況に至る。この様な言語が制御系の中心言語にもなっているのは驚きである。コンパイラ言語の普及により応用プログラム作成者は電算機の仕組に疎くなると、応用プログラム設計の考えと共に本章の冒頭で触れた様に、完成度の認識は失われ、利便性のロジックを決める事だけに重点が注がれる。結果的に応用プログラムの完成度は低下して行くことになる。２０００年以降に開発されたプログラムを調査するとそのことに気付くことができる。因みに２０００年問題はプログラムの完成度の低さが齎した騒動である。もし、初期のアセンブラ言語でプログラムが作成されていれば、あの様な騒動は起きていない。本発明者はアセンブラ言語こそが正当なプログラム言語であると言うことに気付いている。
【００５５】
（２）認識１
電算機システムの処理性能の問題は重要課題であるが、この問題は、処理される情報量、基本プログラム、機器構成とで処理方式の在り方として解決されるべき課題である。重要な事は其処に応用プログラムをその決定要因として加えてはならない事である。もし、その様な観点で処理性能の為の処理方式を決めているとすれば、それは決定者が応用プログラムの役割を正しく認識していない事の証である。応用プログラムは生産性、完成度の観点で作成されることが基本的なマナである。この事はどの分野の応用プログラムについても同じである。
【００５６】
（３）認識２
プログラム作成の為の方法論が無くても、電算機システムの利便性を高めようとするのは本能である。その結果、プログラムの基になるアルゴリズムは複雑化し、それを叙述する為のプログラムは複雑化する。これが電算機システムの高度化のこれ迄の仕組である。プログラムの叙述が言語種別と関係なく複雑になるのは叙述法が本脳的な論理結合型で行われるからである。複雑さには混沌が生じ其処に誤謬を生じさせる。そして、その叙述に内在する誤謬を自覚する事は容易ではない。複雑になりすぎて事故が生じやすくなる事例はプログラムの世界に限らず、われわれの世界の全ての分野で山積している。叙述を複雑化させずに利便性を獲る事が本当の高度化である。方法論とはその事を指す。方法論を持たなければ、電算機システムの高度化は、結果的に本能のままに作られている事になる。その様な高度化のさまざまな悪影響は例えばプログラム開発、維持費用の高騰化、操作のわずらわしさなどのあらゆる作業局面に現れる。
【００５７】
（４）合理性
技術は成果物に合理性を成立させる為のものである。成果物の合理性は費用対効果で測られるのが普通である。効果とは利便性である。利便性を具体化させる技術の裏付けが方法論である。技術は費用対効果の妥当性を成立させなければならない。利便性費用が低減化されること、利便性に複雑さがなくなることが技術の進歩であり、正統な高度化となる。それが技術の価値である。電算機システムのプログラムの費用対効果は既に合理性を失っている。この観点でも情報技術は、特に1990年以降の技術は改善、進歩しているとは言えない。合理性を取り戻す為に経験とプログラム言語さえあればプログラムは作れるとしてきた事を反省し方法論が必要な事をこの分野で仕事をしている人は気付く必要がある。
圧倒的なシステムの利便性を実現させれば、ひとの心はプログラム課題をみえにくくさせてしまう。そして、本質的な議論を棚上げさせてしまう。電算機システムに関し著者はこの様な風潮を「電算機マジック」と呼んでいる。
【００５８】
（５）空洞化
これ迄、様々なコンパイラ言語が作られて来ている。しかし、どのコンパイラ言語も方法論の観点を見落として作られている為にコンパイラ言語によるプログラムの叙述法はプログラムのスケルトンに止まる。そして、それを基にチョムスキが云う文脈自由型の構文規則が設けらる方式である。他方、初期のアセンブラ言語にプログラムのスケルトンの考えはなく叙述に用いる命令が置かれる記憶上の位置を作成者に認識させる仕組になっている。この仕組がプログラム叙述に於ける言語の文脈自由型の欠陥を回避させている。因みにＣ言語はその特徴を見るとアセンブラ言語に似せて作られているが結果的にその叙述はアセンブラと異なり無秩序になる。どのコンパイラ言語もプログラムの叙述法としては欠陥を抱えている。１９６０年に開発されたＣＯＢＯＬ言語がコンパイラ言語の中ではプログラム言語としてのマナを備えている。その後、様々な所で改変される事により、プログラム言語としてのマナがうしなわれて行くのである。この様な事も方法論が見つけられない為に起きている現象である。
【００５９】
プログラムの叙述も自然言語の叙述法である論理結合型叙述から結果的に抜け出せない。その事がアルゴリズムをプログラム化する叙述に問題を発症させる原因になっている。関係者が理解しなければならない事は、応用プログラムの課題を改善出来るのはプログラム言語や翻訳プログラムではないということである。プログラムの静的構造、動的構造、といった本質性を解明し其れを満たすプログラムの叙述法、即ち方法論を求める事が改善を果たす唯一の方法なのである。プログラム言語を使いこなせればプログラムの本質が分かったような気になる関係者の認識は質の悪い誤謬である。そして、プログラム言語はプログラムの叙述に用いるがプログラムの叙述法とは関係はないのである。
【００６０】
例えば、ＧＯＴＯ文を多用しないと言う４０年も前の１学者の本質性のない見解が根強く踏襲されているのは驚くべきことであるが、プログラムの規模を５００個ぐらいの命令規模にすると言うのもそれに似ている。この世界が如何に空洞化しているかの証である。ピッツバーグ大学で教授をしていたマッサー二はこの現象を「能力の竹筒化」と呼び、２０年も前にこの事を母国であるインドの科学教育省に警告している。インドが多量のプログラム作成者で日本のプログラムの作成に加担しているのは皮肉である。
【００６１】
（６）正義
方法論に基づかない技法でプログラムが作成される現場では同じトラブルが繰り返し繰り返し発症する。当然の帰結である。そして、その様な事が長く続くと、最早その事を誰も問題視しなくなる。そして、誰も課題を真剣に改善しようとしなくなってしまう。これはプログラム開発の現場に於ける今日的現象である。もし、改善を主張するひとがいれば、そのひとはつまはじきされる事は間違いはない。最早、プログラムの開発現場に合理性、倫理観を求める事は不可能になっている。
【００６２】
（７）倫理性
生命作用はアルゴリズムを複雑化させる。その見返りは利便性が成立する事である。しかし、その利便性により失われるものが必ずある。例えば、１９８０年頃迄の電算機システムの利用者は「自分たちは複雑な仕事をしているわけではないのに、システム化されると仕事上の操作がより複雑になる」と感じている。しかし、後年、操作に慣れてしまうと、その様な疑問は消え、利便性の方に意義を感じる様になる。これも電算機マジックのひとつであるが、その事の問題はわれわれの生き方に深刻な影響を与えている。其れは倫理的な問題である。現代では群集の中で多くのひと達が大人も子ども同じ様に携帯電話機を使用している。その操作は３歳児レベルと云われる。見方を変えれば、同じ操作をしている人びとのその光景はひとがロボット化されている様で不気味である。そして、操作中のその光景に倫理性があるとはとても思えない。しかし、その様な事が日常になると社会全体が既に失われている事に気付く事が出来なくなる。
【００６３】
次にパソコンの入力プログラムの例で見てみよう。PCの文書入力システムは操作量が単純化されるのではなく増えて来ている。携帯電話も従来の電話機に較べると同じ傾向にある。理由は、利便性を高めるために関連する他のサービス機能が用意され、それら機能との共存関係を図る必要性が生じその為に操作量の増加と云う負担が利用者に求められるのである。これはプログラムの作り方の複雑さを和らげる為に或は操作量を自動的に減じるプログラムを作る事が出来ないと云う方法論を持たない技術でプログラムが作られている技術的理由の為に起きる現象である。航空機の操縦室の表示板の表示種別の多さには驚かされる。表示装置が美しく並べられていても、人間工学的な配慮がなされているとは云え、明らかに操縦者がカバーしきれない量の情報量である。緊急時の残された僅かの時間にはその配慮も無力である。これは高度な自動操縦装置の導入の結果なのである。そして、表示装置の並び方、色彩、音声はそのシステムが如何に軟弱であるかの証なのである。
しかし、プログラムが方法論で作られていない本質的な問題は当事者たちですら議論しない。利便性の基では目の前の断崖すら気づかない問題はわれわれの本能的な欠陥なのかもしれない。方法論はこれら問題を整理する為にも不可欠なのである。
【００６４】
（８）プログラム・バグを発生させない認識
プログラムの動性に現れる虫（バグ）と呼ばれる誤りは翻訳プログラムでは見つけられない。些末な事で必ず発生する。しかし、虫が発生する起因はプログラムの作り方である。例えば、虫は条件文の数に比例して発生する。１９７０年代では虫が生まれない様に配慮するプログラム作成の技法なども提唱されていた。初期のアセンブラ言語は電算機の方式を基に成立するのでプログラム作成者にはそのための配慮が不可欠であった。その結果、虫の発生率は抑えられていた。著者のプログラム調査ではコンパイラ言語の普及が仕様書の性質やプログラムに対する配慮を失わせた事は否めない。１９６０年代ではプログラムを分かり易くする流れ図の書き方なども提唱されている。例えば、肯定流を流れ図の主流とし、其処から発生する否定流は枝流とすると言う者である。これを逆にすると流れ図は複雑化するのである。
【００６５】
今日的には流れ図を使わない仕様書が主流になっている。しかし内容は流れ図に代わりはないのである。ＧＯＴＯ文は複雑さを回避するのに有利な欠かすことの出来ない構文である。ＧＯＴＯ文を排除する論拠はプログラムのソースリストがＧＯＴＯ文で違う頁に向かう場合、該当頁をめくるのがわずらわしいと言うだけの愚にもつかないアイデアだったのである。真剣にＧＯＴＯ文を排除規約化している企業もある。この様な認識がバグを減らせられない遠因になっている。
【００６６】
（９）想定外事故の原因
応用プログラムの実行障害は（a）データ揺動、（b）要件破壊、（c）システム破壊に分けられる。これら事故の原因はこれ迄の応用プログラム・テストの仕方では発見することは困難である。出来ないと云った方が正しい故にこれ迄、応用プログラムではテストをパスした後で本番中にこれらの事故が起きている。事故が起きた後、その症状を見てプログラムは修正される。しかし、この症状を正しく捉える事が出来なければ、本当の原因を探し当てる事は出来ない。故に、正当な修正を行うには事が出来ない。故に、この種の事故はその後も繰り返し起こり得る。応用プログラムのこれら実行障害の原因を事前に発見したり、原因を正当に除去する為の修正を正しく行うには後述される本研究による応用プログラムの意味の仕組」を求め、それを観察する事で可能になる。
【００６７】
データ揺動とは、応用プログラムが破壊されているわけではないが、あたかも破壊されたかの様にその応用プログラム内のある計算式の計算結果が時により意図に反する値を生じさせる現象である。これはその計算式の変数の値が計算式と同期しない値が持ち込まれる事により起きる現象である。起因となる計算式はその応用プログラムの意味の仕組を用いて机上で見つける事が出来る。修正は起因となる計算式に時制管理のコーデングを加える事である。
【００６８】
要件破壊とは、応用プログラムが破壊されているわけではないが、あたかも破壊されたかの様にその応用プログラム内の広い範囲の計算式の計算結果に異常値が現れる現象である。これは条件文の判定式がその条件文と同期しない値で判定されている事により起きる現象である。起因となる条件文、並びに現象の及ぶ範囲はその応用プログラムの意味の仕組を用いて机上で見つける事が出来る修正は起因となる条件文の判定式に時制管理のコーデングを加える事である。
【００６９】
システム破壊とは、応用プログラムがあたかも破壊されたかの様にその応用プログラムの広範囲に及ぶ領域が異常値に見舞われる現象である。これは応用プログラムにデータ揺動と要件破壊が同時に起きた事により生じる現象である。
【００７０】
２．７  作業課題
プログラムのコード化率は次第に低下し、命令当たりの生産コストは高騰の一途を辿っている。原因は方法論が不在のため、技術効果が上がらず、そのためにビジネス裁量が主流となってシステム開発が進められるからである。発注側も、大手の委託先で成功しなければ、どこがやっても成功する筈がないという理屈で免罪符を得ようとしている。委託される側も軋轢をつくり出してまで、改善努力をする必要はないと考える様になる。精神的には既に末期症状であるが、その様には考えない。これまでの経験に基づいて、とにかく完成させればよいとの一念で頑張るのである。ここでは、方法論がない故に、生じているプログラム開発環境の問題を示す。
【００７１】
（１）不条理な開発工程
プログラムの開発作業の工程は１．基本設計、２．詳細設計、３．仕様書作成、４．プログラム作成、５．電算機での実行テストに分けられる。これは1940年代に米国のGE社が機械製品の開発工程を基に提唱した事を始まりとする。物理的構造物の場合にはそれを定義する図面法、回線図がある。それを用いて最終成果物や作業工程ごとの成果物が事前に定義される。関係者は製造する前に図面を介して成果物を理解する事が出来る。そして、途中の成果物の出来具合は図面を基に品質を検証する事が出来る。最終成果物も図面を基にその特性に応じて品質を検証する事が出来る。製造技術者は製造技術を身に付けている。
【００７２】
ところが、プログラムの場合は、情報を規約する構造物の様な図面法がない。文書を支援する図面は図面法と呼べるようなものではない。故に各工程の成果物は文書を中心に定義される。そして、プログラムの情報量は工程が進むに連れて増大する。例えば、基本設計の情報量を1とすれば、詳細設計は15倍、仕様書作成は30倍となる。換言すれば、これは下流工程では上流工程の情報は書き改められるのである。この場合、文章の解釈は曖昧になるので、プログラムが出来た後でプログラムを介してでなければ、上流工程の情報は検証する事が出来ない。この工程ではプログラムの完成度は平均的に５０％程度に止まり、プログラム・テストは検証されるべき内容の７０％程度しか検証する事が出来ないのが現実である。
【００７３】
１９７０年代の作業者は基本設計の段階でも、作業を進捗させる上で下流工程の為にプログラムの情報が必要であれば、プログラムを作る事も辞さなかった。そして、その事により上流工程は下流工程に対し凛とした役割を果たしていた。その様な救いが行われていたのである。しかし、今の時代に、その様な事までする作業者はいない。プログラムは下流工程に行くほど情報が増える。換言すれば、プログラム作成の各工程ではその工程に至る全上流工程の作業が
実質的には繰り返し行われるのである。通常の開発作業の工程の形態はトップダウン方式であるが、プログラムでは、その実態はボトムアップになっている。このことが実質的には作業工程を不可分にさせる性質をもっている。付言すれば、プログラムには方法論がなければ、本来独りで全作業工程をカバーして完成させるべきものなのである。
【００７４】
物理的構造物の場合は図面と製造技術が方法論の役割を果たしている。故に、この工程は成立する。しかし、方法論もなくプログラムの開発にこの様な工程を適用するのは問題が大きすぎる。まして、複数人がこの工程を適用してプログラムを作る事はすでに無理なのである。
【００７５】
1970年代の技術者は基本設計の段階からプログラムを想定し、時にはプログラムを作る事をしていた。今の時代は、下流工程の為にプログラムを作る技術者は居ない。基本設計、詳細設計の資料を見てもシステムを作成する為の製造指示書、技術資料と云う感じがしない。文書は妙に明確だが意味不明なものが多い。1970年頃は工程の期間配分は基本設計20％、詳細設計40％、プログラム作成30％、実行テスト20％が平均的とされていた。最近は、実行テストのウエイトが50％を超えている。だからと云って必要かつ十分なプログラム検証が出来ているわけではない。
【００７６】
（２）無策なプログラム保守法
プログラムの命令を追加修正する作業は、開発時の生産性は10分の1ぐらいに低下する。そして、保守が繰り返される程、プログラムの完成度は劣化する。そして、やがて、保守が不可能になり、プログラムが魔物化する。大規模システムのプログラムは既にこの状況に晒されている。プログラムの方法論がない限り、この状況を回避する事は困難である。
【００７７】
（３）  不十分なプログラム検証
プログラムは静的様相と動的様相の観点から検証される。静的様相の検証の為に完成度の観点から叙述の仕方が決められている所が多い。そして、プログラム作成者にはその叙述の仕方を順守する様に指示されている。静的様相の検証ではプログラムが叙述の仕方を順守しているかが目視的に調べられる。叙述の仕方では、例えば、注釈文の用い方や使用するプログラム言語の構文を限定したり、使用するプログラム部品やその使用の仕方などが決められている。原始プログラムは翻訳プログラムで目的プログラムに変換されるが、翻訳プログラムでは原始プログラムがプログラム言語の文法規則を順守しているかを付帯的に検証する事が出来る。ここで文法規則に順守していない所が発見されれば、作成者がその箇所を修正する事に成る。
【００７８】
動的様相の検証では処理データを用いてプログラムを電算機で実際に実行させて、意図した通りにプログラムが動くか否やかがその処理結果の値を基に調べられる。プログラムは実行されると電算機内で処理結果の為の多様なパスルートを成立させている。故に、同じ処理結果でもそれがどのパスルートで導出されているかはプログラムを流れ図的に追跡するだけでは全パスルートの７０％ぐらいしか捉える事が出来ない。
【００７９】
プログラムの動的検証は通常単体テストと呼ばれるプログラムごとに行われる実行検証、組み合わせテストと呼ばれる関連するプログラムを動員して行われる実行検証、全体テストと呼ばれるシステムを構成する全プログラムを動員して行われる実行検証がある。動的検証がこの様に段階的に行われるのは、方法論の観点で云うならば、可能な限り多くのパスルートを調べる為なのである。其れでも前述の様に全パスルートの７０％ぐらいしか検証する事が出来ないのである。しかし、プログラムの意味の仕組を本研究の方法で求めるとそれにより全パスルートが１００％捉えられる。絵馬化すればそれを目で見る事が出来る。
【００８０】
換言すれば意味の仕組を求めれば、電算機による実行テストを行わなくても机上でそれを観察する事で検証が出来ると言う事である。その動性を検証する事である。動性の複雑さはプログラムから「意味の仕組」（後述）を取り出さなければひとが類推出来る様な単純なものではない。これまでのプログラムの検証の仕方は、以下の通りである。
１．上流工程で作成される情報は関係者の輪読で検証する。
２．プログラムの構文誤記は翻訳プログラムで除く。
３．プログラムを実際に電算機で実行させて、処理結果の妥当性を見る。脱出なければプログラムを修正する。
４．販売されている検証ツールなどで実行テストを支援させる。
【００８１】
繰り返しになるが以上の検証の仕方では全パスルートが正常化否かの検証が行われているわけではない。部分的なパスルートの検証では必要かつ十分な動的検証が行われた事にはならないのである。その事が実行障害の原因を実際に障害が起きる迄内在させてしまう仕組みなのである。
【００８２】
（４）  管理技術の不在
完成したとみなされるプログラムを管理する作業は実は簡単ではない。管理ツールなども市販され導入されているがそれらツールは傾向として詳細情報は何でも管理出来る様に作られているが管理の正鵠を突く自動化の仕組が出来ていないのが弱点である。何故かと云う事である。原因は同じ名前のプログラムは原始プログラム、目的プログラム、実行プログラムとして存在する。そして、翻訳プログラムには版があり、しばしば改定されている。故に，版ごとの目的プログラムが存在する。そして、版ごとの実行プログラムが存在する。また、原始プログラムはしばしば改定される。結果として、このふたつのプログラムの改定が端緒となり、結果的に、同じ名前のプログラムが多重的に存在する事になる。
また、改定の都度プログラムの管理の手続きがこまめにとられるとは限らない。特に部品化されているプログラムは他のプログラムで使用されるので、使用する側のプログラムにも変更の手続きを取る必要がある。それを全て行おうとすれば、其れなりに手間暇のかかる作業となるからである。中には部品プログラムが基の版のものでなければ不都合となれば、部品プログラムは改定される版のものと改定された版のものに増殖する。そして、この判別を自動的に行わせられる水準の管理システムには至っていない。結果的に稼働しているプログラムの全てを正確に把握する事は極めて難しい作業となっている。
【００８３】
プログラムの方法論がなければ、プログラムの作成作業の進捗を管理する方法は基本的に求められない。故に、進捗管理は適当に成らざるを得ない。優れた技術者とそうでない技術者の生産性格差は３０対１だと言われていた時代がある。調査をするとこれは妥当な比較値であることが解かる。例えば、能力差のある二人Ｂ＞Ｃが一緒にプログラム作業を行えばその作業能力（Ａ）はＡ＝（Ｂ＋Ｃ）−（Ｂ−Ｃ）である。第１項は二人の能力和、第２項はＢがＣを指導する為に失われるＢＢの能力である。その結果、二人の作業能力は２Ｃとなる。即ち、二人の作業能力は能力の低い方に引っ張られてしまうのである。因みに方法論の認識を持てない人に方法論を解説しても方法論は猫に小判となるのと似ている。これを改善するには能力の低い方は正確な基礎知識を身に付ける事が不可欠である。方法論はプログラムの場合に限らず能力の格差を平均化させる為に必要となるのである。能力差が生じるのは多様性で満ちている人である限り、当然の事である。それを把握管理する事は容易ではない。方法論のないプログラム作成の作業計画は計画と云うより目標と云う方が正しいのである。闇雲に計画にする以外には成立しないのである。作業の方法論がない世界で管理法を求めるのは至難である。
【００８４】
（５）  環境変化への対応が出来ない
社会情勢の変化の中で、今後も様々な制度変更が行われ、システム全体に関わる大きな問題が発生する。例えば年金の制度変更、消費税の顧客条件別対応、国民総背番号制の導入など簡単である筈の課題が簡単ではなくなる。それらに敏速に対応できるような方法論が受け入れられる土壌がない。さらに、インターネットの発達に伴い、動画や音声、モバイル端末による受発注、オンディマンド生産体系など情報はますます複雑化してくる。また、インターネットの発達は外部からのウィルス侵入を容易にするため、いつ意図的なサイバー攻撃が始まるかもわからない状況となっている。事件が発生してから対処するには時間とコストがかかりすぎ、あまりにもリスクが大きい。それらに対処するため、最近SOAやXMLなどの標準化の技術が出てきているが、それらで既存の組織が抱えているこれ迄に開発した多くのソフト資産をどのようにすればよいのかの方法論にはならない。既に、以上のように、プログラムに関連して今、収拾不能ほどの大問題が起こっており、今後何かの事件をきっかけにそれらが爆発しかねない状況になっている。
【００８５】
２．８  プログラムの方法論とは何か
本章でもここ迄に、プログラムの方法論とは何かを様々な観点で述べている。ここでは改めて方法論とは何かを要約して述べる。プログラムの方法論とは、プログラム仕様で定義されるアルゴリズムをプログラム言語で原始プログラムに置き換える為の普遍的な叙述法の事である。方法論で成立する原始プログラムはプログラム言語の文法で成立する原始プログラムと同じ構造ではない。方法論で成立する原始プログラムはプログラム言語と仕様書が同じであれば、作成者が誰であってもその個人的な影響を超越して複写された様に完全に一致する。これを原始プログラムの複写性（以下単に複写性と記す）と記す。
【００８６】
複写性が成立するのは方法論である為の不可欠な資格条件である。付言すれば、プログラム言語による原始プログラムには複写性は成立しない。プログラム言語の文法は構文の規則であるが、プログラムの普遍的な叙述法にはなり得ないからである。即ち、文法は方法論ではないからである。故に、プログラム言語の文法を幾ら標準化しても、結局の所、その原始プログラムには複写性は成立しない。方法論とはプログラム言語から独立するものである。故に、方法論の観点からプログラム言語を観察する事も必要になる。
【００８７】
複写性を成立させる原始プログラムはさまざまな効果を齎す。例えばプログラムの開発生産性を向上させる。
理由はその叙述法には普遍的で原始プログラムの自動生成を成立させるアルゴリズムが必然的に含意しているからである。その原始プログラムの構造の解釈は複写性が成立するのと同じ様に解釈者が誰であってもその個人的な影響を受けずに心の中で完全に合意する。故に、原始プログラムの構造の解釈を不可欠とするプログラムの保守作業はこの事により必然的に能率化される。プログラム言語の文法で叙述される原始プログラムの構造の解釈は解釈者が異なればその個人的な影響を受けて心の中で概略的には合意しても完全に合意する事は出来ない。プログラム化されるアルゴリズムが複雑でも方法論で成立する原始プログラムはその複雑さから回避する事が出来る。プログラム言語で成立する原始プログラムではプログラム化されるアルゴリズムが複雑ならその原始プログラムは複雑になる。その複雑さから回避する事が出来ない。
【００８８】
（１）方法論を見つける為の構想
われわれは知見を創出し、それを体系化する。これがわれわれの思考力である。そして、それはわれわれの生命作用で運命的に成立している。本研究では生命作用を形而上学的且つ公理的に模型化する。この模型は本研究の論文集の本で公開されている。そして、本発明ではこの模型の中に複写性を成立させる仕組、即ち方法論を探す。その仕組は生命作用の模型を定義する為に設けられる考えを公理とする公理から逸脱しない様に探される。もし、その仕組がこの公理を逸脱すれば、この模型は定義し直される。そして、同じ様にその公理を逸脱させない様に探される。本研究ではこの構想で複写性を成立させる仕組が求められている。複写性の仕組はＸ章で示されている。その詳細は自覚関数、シナリオ関数の章で示される。
【００８９】
（２）方法論の義務
本発明では、方法論の義務とは本章の冒頭で述べている方法論の効果の事である。それはプログラム化されるアルゴリズムの特性とプログラムの課題、そしてその原因を理解する所から見えるものである。著者は最初の内は、優れた技術者がつくる原始プログラムを選び機能的に調査分析すれば其処から複写性が構造的に求められると考えていたが、複写性はプログラムの機能的観点だけでは捉えられるものではなかった。本発明者は１０数年に及ぶプログラムの調査分析を続ける中でようやく方法論の義務に到達する事が出来た。そして、方法論は生命作用を模型化しなければ求められない事が解かるのである。方法論はプログラム言語の文法の事ではなく。プログラム言語でプログラムを叙述する事でもなかったのである。プログラム言語を超越する叙述法として成立していたのである。
【００９０】
（３）課題の起因
利便性はアルゴリズムの複雑化で齎される。故に、われわれの進化とはアルゴリズムが複雑化する事である。そして、その複雑化は同時にわれわれの思考に混沌を生じさせる側面を持っている。有名なラッセルの逆説はこの事を指摘している。故にわれわれの世界の利便性は向上すると共に其処に必ず混沌が生じ、その混沌が利便性に課題を発症させる起因となっている。プログラムで齎される電算機システムの利便性も例外ではない。プログラムに課題が生じるのは必然である故に、方法論の義務はプログラムの複雑化を回避する事に置かれるのは必然である。
【００９１】
（４）  技法とは
方法論（methodology）はアルゴリズムの複雑化を回避する為の叙述法に帰着する。そして、技法（technology）は方法論を基に成立するのが道理である。しかし、方法論が不在で技法が存在するとすれば、その技法２（local-technology）は方法論を基に成立する技法１と区別されなければならない。プログラム課題を山積させる現行のプログラム技術があるとすれば、それは技術２である。技法１は全課題を解消させる事が出来るが、技法２は課題を部分的に解法し、その解法が新たに別の課題を発症させる事が特長である。故に技法２は新たな課題が出現する迄の寿命である。
【００９２】
（５）方法論を導く為に行われた作業
方法論を持たない技法で作られるプログラムの叙述構造はプログラム言語の文法に基づいている。著者は叙述構造に技法として認められる叙述が組み込まれているかを調査する為にこの作業は１５年ほどの期間を通じて様々な分野のプログラムが調査された。結果的にはその後も研究の伸展と共にこの調査は行われている。調査の結果を総じて言えば１９６０年代から１９８０年代の優れたプログラム作成者のプログラムには技法として認められる叙述が組み込まれていた。１９９０年以降のプログラムにその様な仕組を見出す事は出来ないと云ってもよい。これは著者が１９９０年以降技法としての観点も既に失われていると見る論拠になっている。この作業の狙いは技法として認められる叙述から、プログラムの理想の叙述構造である複写性プログラムの叙述構造が求められるかも知れないとの期待からである。しかし、その期待を成就させる事は出来なかった。その原因は技法の観点を理工学的認識、換言すれば機能的観点に置いて捉えていたからである。その様な観点の技法で、求め様とする複写性の叙述構造に至る事が出来ない事に気付くのである。
【００９３】
プログラム作成者がどの様な経験をし、その経験がどの局面で役に立ち、どの局面で役に立たないかを聞き出す事も方法論を求める上で重要な作業となる。方法論は経験が排除できる技法に帰結されなければならないからである。故に、経験の内容を調べる事は本発明では重要な作業であった。経験には善と悪がある。本研究では悪い経験を閉鎖的で改善の妨げになる経験、良い経験とは反省が出来て改善を試行する動機になる経験と定義して情報を収集した。１９９０年以降の本発明者が対象としたプログラム作成者の経験の内容は閉鎖的で改善の妨げになる様に観察された。
語られる経験の内容は機能的な観点の経験であった。それに較べると、それ以前の本発明者が注目するプログラム作成者の経験はプログラムの完成度を上げる為の経験が語られている。即ち、機能を満たすプログラムを作る経験ではなく完成度を高めるプログラムを作る経験を求めていたのである。方法論の観点ではこの違いは多くの意味を持つ。
【００９４】
１９９０年以降の経験の内容には既に方法論は見落とされている。仕様書などのシステム開発の為の文書の観察プログラムに対する考え方を知る上でプログラムの調査分析と同様に方法論の研究には必要である。文書化を可能な限排除する事が方法論の資格条件となるからである。１９９０年代以降の１００万行のプログラムに要する文書化量はＡ４版で１０万頁と云われている。内容的にはプログラム作成仕方の指示、プログラムの完成度の指示は見落とされ、ロジックを定義するに止まる。そして、文書の枠組が形式化される様になる。
【００９５】
以上の現場観察は技術者の話を聞いたり報告させるだけでは真相は得られない。システム開発の全局面の技術者を独りで相手にしなければ、事実を知る事は出来ない。そして、その事実を冷静且つ批判的に整理するのでなければ、現場の実情を安易に肯定する結果に陥り、方法論の何たるかに気付く事が出来ない。本発明者が以上の作業を行い得たのは、本発明者が様々な電算機システムの開発を指揮指導する立場にいたからである。方法論は企業、研究所で発見出来ないのは、其処にいる人達は著者が方法論の研究の為に行った様々な研究作業が出来ない事情があるからである。そして、本発明者の方法論が２５年を要した様に、研究期間が長くかかる事も方法論の研究者を育てられない事情である。システム開発、プログラム言語はプロジェクト方式で進められても、方法論はプロジェクト方式では進められない。この様な事情がこの分野の方法論が生れにくい理由であると同時に方法論を受け入れられない状況になっている様に思われる。
【００９６】
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
第３章  自覚関数
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊目次
２．１  生命作用の形而上学的模型
２．２  自覚関数のアイデア
２．３  自覚関数の叙述法
２．４  命題関数の叙述構造と動作原理
２．５  自覚関数の定義
２．６  自覚関数の動作原理
２．７  命題関数、自覚関数の効果
２．８  方法論
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【００９７】
原始プログラムの方法論（以下方法論）とは、原始プログラム（以下プログラム）の構造に普遍性を成立させる叙述法の事である。叙述法は自然言語とプログラム言語で規約される。本発明による方法論はプログラムの構造に複写性を成立させる事である。複写性プログラムはプログラムの究極の構造である。故に、本発明の方法論は究極の方法論である。複写性プログラムの解説は別章をご覧戴きたい。
【００９８】
プログラムはプログラム言語で叙述されるので、多くのひとはプログラム言語がプログラムの方法論だと誤解する面がある。しかし、プログラムの複写性構造で明らかな様に、プログラム言語の文法だけではプログラムの複写性構造を成立させる事は出来ない。本発明が求めようとする複写性プログラムの理論模型とその叙述法は１９９５年に求められる。自覚関数と名付けられた。本発明が始められた１９７０年頃、著者はプログラムの中から技法と認められる叙述をサンプルとして取り出し、それらを基に、複写性プログラムの構造とその叙述法は求められると構想していた。そして、この構想に基づいて、著者は様々なプログラム言語のプログラムを解読した。解読の内容は以下１．２．である。
【００９９】
１．技法となる叙述を抽出する。
既述している様に複写性構造にアプローチする為にこの情報は不可欠だと考えられた。技法の叙述とは応用ロジック以外のロジックの叙述である。プログラムの完成度を向上させる為に不可欠な叙述である。応用ロジックの叙述は技法の叙述とは区別される。因みに自覚関数では応用ロジックの叙述もプログラムの完成度を向上させる技法の叙述に置き換えられる事に成る。詳細は後述される。
２．プログラムに属す全変数の実行時に成立させる脈略関係を導く。
この情報は命令除いて命令に属す変数の脈略はプログラムの動性を捉える。方法論にアプローチする為には不可欠な情報である。
【０１００】
上記１．２．の為にプログラムは意味的に解読する必要がある。この解読は難解な作業だった。結果的に上記１．２．の為のプログラム解読は１９８５年迄に約５００本のプログラムに対し行われた。しかし、この構想では複写性プログラムの構造を発見するには至らなかった。１９８５年になり、本発明者は先達の方々の助言を得て、本発明者のこの構想では複写性構造は見つられないことに気付く。原因は技法の叙述には機能的な論点が多すぎ、プログラムの複写性構造の叙述法を求めるには問題が多すぎたためである。複写性構造は機能性を排除しなければ求められない事が解明されたのである。そして、この為にはプログラムの構造をわれわれの最大の謎である生命作用を形而上学的に模型化し、それを規範にしなければ求められないとの構想に至る。この構想に基づいて、理論上、複写性の構造は自覚関数として求められる。考え方を改めてから１０年後の事である。
【０１０１】
全変数の脈略関係は当初、本発明者により情報Ｘと名付けられた。情報Ｘにより応用ロジックを定義している要件とプログラムの調和関係を観測する事が出来る。そして、この観測情報は複写性構造の叙述規則を論考する基礎情報となった。自覚関数の変数になる命題関数の構造はこの情報から求められたのである。本発明者は情報Ｘの優位性が深まるに連れ、これを自動生成するアルゴリズムの発見にも努めた。そして、１９９６年にそれを発見する。これ迄の約２０年間、本発明者は試行錯誤しながら情報Ｘを手作業で求めていた。
【０１０２】
要件とプログラムの調和関係とは情報Ｘから捉えられる変数の順序列と要件から捉える変数の順序列を比較する事である。両者の変数順序列が合致すれば、両者の調和関係は成立していると判断出来る。そして、コーデングの仕方が妥当だと判定する事が出来る。合致しなければ、その合致しない箇所のコーデングは妥当性に欠ける事になる。実行時に、処理データとの関係で、その箇所を通る経路が生じれば、その箇所が起因となり想定外の実行障害を発症させる可能性がある。この情報で応用ロジックの要件上の定義の仕方が妥当でない事も解かる。
【０１０３】
情報Ｘは輻輳する変数の順序列である。その中には想定外の変数の順序列が生じる事がある。これがプログラムの実行様相、換言すれば、動的構造なのである。
しかし、この様な様相が成立するとは情報Ｘを見るまでは誰も解からなかったのである。コーデングに間違いがなければ、実行時に誤りが生じる筈がないと考えられている。しかし、動性で生じる不都合な経路の事は原始プログラムの浅い解読では捉える事は出来ない。隠蔽されているのと同じである。この経路も不調和と同様に実行障害の起因となる実行障害の起因を事故が起きる前に、発見するには情報Ｘを求め、それを観測する以外に方法はないのである。自覚関数が求められた後、そのアイデアを用いて１９９６年には情報Ｘは捉えるべき情報の９６％が自動的に捉えられるアルゴリズムが発見された。その時から、情報Ｘは「意味の仕組」と呼ぶことになる。これにより、結果的に初期の情報Ｘでは捉えるべき情報の５０％程度しか捉えられていない事も明らかになった。このアルゴリズムは某大手自動車会社で既にツール化され保守作業の検証の為に用いられている。２０１０年１００％の精度で意味の仕組を捉えるアルゴリズムが整備された。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１０４】
１９７３年、当時の通産省の外郭団体である「情報処理振興事業協会」が募集した「オンライン・デバッグ汎用シュミレーターの開発」に著者は情報Ｘの構想を用いた提案を行い採用されている。付言すれば、この募集は日本の電算機の全大手のメインフレーマが提案をする競合となった。大手企業は１０人ぐらいのチームで提案説明に来ていた。本発明者は当時のＣＳＫ社の提案として応募し、社長と二人で提案説明に出かけた。社長さんには、「貴方の話は自分にはさっぱりわからなかった」と云われたが８千万円で採用された。１９９０年の初めに本発明者は大手都市銀行の外為システムの開発法の提案を行ったが、この時も、ホ発明者の案が競合ながら採用されている。今日の日本では電算機システムの開発で特に銀行などのシステムで大企業の提案に対して、小さな企業の対案が受け入れられる事はまずない。大手メインフレーマがこの案に基づいてその開発実務をおこなった。その頃は採用側にも未だ進取の気性が残っていた様に思われる。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１０５】
システムを構成する複数のプログラムの意味の仕組を求めて観察すると本数の多い方が本数の少ない場合よりもその構造の複雑度が高まる事が解かる。そして、個々のプログラムに誤りがないとしても、それらが寄り集まり成立させる意味の仕組に生じる変数の順序列の複雑さが想定外の障害を起こす可能性を持つ変数の順序列を成立させる可能性を高める事になる。
【０１０６】
プログラムは１本当たりのプログラムの命令数を多くしてでも、プログラムの本数を少なくする方がプログラム課題を軽減化させる事は意味の仕組から明らかになる。しかし、
意味の仕組に気付いていないのが大勢なので、常識化されたプログラムの小型化され、部品化はプログラム課題を深刻化させる遠因になっている。構造化プログラム、モジュール化法もプログラム課題の改善の為に提案されたプログラムの小型化策であるが、それらはプログラムの意味の仕組の観点を見落としていた為に、実際は改善とは真逆の様相を生じさせる施策だったのである。
【０１０７】
有能なプログラム作成者が作る１９８０年代迄のプログラムの１本あたりの命令数は平均的に大きかった。命令数が１万個前後のプログラムは当たり前に作られていた。意味の仕組、並びにアルゴリズムの観点からもその様なプログラムの方が科学的合理性持つ作り方だったのである。当時の方がコード化率が高かったのは納得できる。
【０１０８】
アルゴリズムは全体化を目指して成立する。システムとはアルゴリズムの全体化の事である。故にプログラムを幾ら小型化しても、システムの意味はそれらが寄り集まり成立し、ここに独立して成立するわけではない。故に、プログラムには組合せテスト、総合テストが不可欠なのである。プログラムの小型化によりテスト作業の負荷は次第に増大し、費用の高騰化の原因になった。これはシステムが高度化しているからだと云うひともいるが、其れはアルゴリズムが大きくなり複雑化する事を高度化と云っているのだと思うが、複雑化と高度化では意味が違う。高度化とは複雑化を回避させる方法論の事でなければならない。その様な方法論の登城が高度化なのである。
【０１０９】
アルゴリズムの分割が意味の仕組を基に行われなければプログラムの小型化は複雑さを増すだけの結果になる。機械部品はアルゴリズムでなく機能なので固定化出来るが、プログラムは幾ら分割してもアルゴリズムなので、固定化出来ないのである。１９９０年以前のプログラム作成者達の多くは経験からこの事を知っていた。当時のプログラムのサイズが大きかったのは有意な経験に基づくものだったのである。大勢のままに流される当世のプログラム関係者達がプログラムの意味の仕組に気付けば、１９７０年代の優れたプログラム作成者の認識レベルに近づけると信じる。認識レベルを上げる事がソフト危機を回避する鍵になると考える。本章では方法論の認識を基に自覚関数がどの様に導き出されたかが解説される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１１０】
２．１  生命作用の形而上学的模型
われわれは生きている限り、受容出来る様相を記憶し続ける。記憶される様相には自覚出来るもの自覚出来ないものがある。中には消滅するものもあるかも知れない。そして、記憶は例えば言葉、文書、振る舞い等で表象される。本研究では、生命作用は意識→記憶、自覚→認識の再起構造として模型化される。意識はわれわれの受容行為、記憶と自覚はそれを情報化する同相の作用、そして、認識はわれわれの思考作用として位置付けられる。本発明では、思考から齎される利便的効果には必ず課題が帯同する事に留意し、利便的効果はその基になる記憶が正統な故に齎されると主張しない。考えが正しいとか間違っているとかは元々不明だと置いている。
【０１１１】
本発明では、われわれの思考を成立させる生命作用の仕組が形而上学的に模型化される。そして、この模型を規範として、自覚関数が導かれる。本発明ではこの模型化は存在論として位置付けられている。本発明では自覚関数と存在論の関係を明らかにする為、自覚関数に関わる存在論の要旨を示すに止める。もし、存在論について、其れ以上の興味があれば、本発明者の論文を検索して読んで戴きたい。存在論では部分の最大を示す様相は「臨界連鎖」、全体の最少を示す様相は「特異連鎖」と記され、非在として公理的に定義される。非在とは成立するが存在ではない様相の事である。存在論では非在は実体と属性の対で定義される。非在の性質は属性で表され、実体は非在の識別子である。属性は「論理原子」の集合である。実体は１個の論理原子である。特異連鎖の実体は「境界原子」と呼ばれる論理原子である。存在論では論理原子は存在ではない様相である。
【０１１２】
境界原子がその属性に属し、且つそれがその属性との関係から実体として選ばれる場合、特異連鎖は成立する。臨界連鎖の実体は同じ１個の境界原子である。境界原子がその属性に属していないが、その属性との関係から境界原子を実体として選ばれる場合、臨界連鎖が成立する。存在論では上記の二つの連鎖の成立過程は複雑だが公理的に定義されている。この二つの連鎖は共に同じ境界原子を実体とする事から、その二つの連鎖の属性の間には同等関係が成立する。存在論では「自分」とはこの同等関係を指す。自分は特異連鎖の属性と意味的に同等となる属性を臨界連鎖を成立させた経歴の中に探す。そして、その属性が見出されれば、存在論ではその属性が自分の思考を成立させる起源となる。その属性は「意図」と記される。存在論では自分、意図は論理原子と同様に存在ではない様相である。
【０１１３】
本発明では、存在論の意図を決定する作用は生命作用の意識に対応付けられる。そして、意図は意識の形而上学的模型となる。存在論では意図が決まると意図に属す論理原子の全てがそれぞれ実体となり、それぞれの属性が臨界連鎖を成立させた経歴の中から探される。属性が見つかり、実体と属性の対が成立すれば、この対は実在と記される。その構造は非在と同じであるが生成過程が異なる事から性質は異なり存在となる。そして、実在は存在の最小単位、存在が思考すればその最少クラスとなる。実体の対となる属性が見つからなければ実在は成立しないままである。実在が成立すれば、その属性に属す論理原子の全てがそれぞれ実体となり、それぞれの属性が既述と同じ仕組で探される。そして、更なる実在が決定される。この場合、存在論では既に実在の属性として選ばれている属性は重複して別の実体の属性になる事は出来ない。
【０１１４】
この仕組で、実在は実在を基に更なる実在を決定する為にその属性が探す事が出来なくなる迄、展開される。存在論ではこの仕組で、意図に端を発する実在の脈略が構築される。これは存在ではない意図が実在で表象される模型である。存在論ではこの実在の脈略は調和構造と呼ばれる。図２−４参照。そして、実在は調和連鎖とも記される。調和構造が成立する空間は調和空間と記される。
【０１１５】
存在論では、存在、思考には起源があり、それは意図で現われ、調和構造はその意図を満たす存在、或は思考の構造に該当する。存在論では調和構造の全景が捉えられれば、意図、存在、思考の全景が実在で捉えられる。詳細は後述されるが、自覚関数は存在論の定義概念を理論的に模型化して調和構造の全景を捉える為の仕組の定義に帰着する。
【０１１６】
原子プログラムを自覚関数に換えて表象すれば、自覚関数も原子プログラムである。そして、両者の叙述構造は異なる。付言すれば、自覚関数は複写性プログラムである。自覚関数を電算機で実行させれば、両者の処理結果は同じになる。
【０１１７】
存在論の調和構造を決定する作用は、本発明では生命作用の記憶、自覚に対応付けられる。そして、調和構造はその形而上学的模型となる。
【０１１８】
本発明ではわれわれの表象作用、即ち、物理的振る舞い、言葉、叙述の行為は記憶、自覚を基に行われる認識作用だと位置付ける。そして、われわれが云う思考とはこの認識作用のことである。われわれの生命作用は意識→記憶・自覚→認識を果断なく多重的に再起させる仕組を成立させていると考えられる。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１１９】
２．２  自覚関数のアイデア
本発明では自覚関数の為に生命作用が形而上学的に模型化される。それを公理的に成立させる為に自覚関数には幾つかの工夫が加えられている。それを以下に示す。
【０１２０】
（１）実在を叙述する為のアイデアの導入
存在論では実在は実体が決まりその後で属性が決まる仕組である。図２−３参照。自覚関数では、実在は自覚関数の変数となる命題関数で捉えられる。自覚関数、命題関数はわれわれが創るので、われわれの認識法で作られる。故に命題関数の叙述では実在は属性で決まる仕組になる。図３−２参照。即ち、存在論とは反対である。これはわれわれの認識法が論理結合型で成立するからである。
【０１２１】
自覚関数では、動性時に命題関数の叙述が存在論と同じ仕組で調和構造を捉える仕組に
置き換えられる様に命題関数の叙述構造が設計されている。即ち、１命題関数の叙述構造は全命題関数の基で成立し、１命題関数は全命題関数の為に成立する叙述構造になっている。この叙述構造により命題関数の論理結合型叙述はその動性時にデータ結合型叙述に自律的に変換される様になっている。図２−６参照。
【０１２２】
（２）アルゴリズムの複雑さを回避する為のアイデアの導入
生命作用はアルゴリズムの全体を叙述しようとする。論理結合型叙述法はこの為の叙述法である。この事が叙述を複雑にさせる原因である。図２−２参照。アルゴリズムの複雑さがわれわれに利便性と混沌を同時に齎す事になっている。本研究では混沌を回避する叙述法が命題関数として採用される。複雑さは自覚関数の動性時にデータ結合で成立させる。叙述時にはアルゴリズムの最小クラスが論理結合型で独立して叙述される方法である。即ち、命題関数の叙述構造である。要約すれば、自覚関数は命題関数を用いて、論理結合型叙述の課題を回避するデータ結合型叙述を成立させる仕組である。
【０１２３】
（３）動性の全景を捉える為のアイデア同期の導入
自覚関数では、その動性で調和構造の全景を捉える必要がある。全ての実在はそれぞれ命題関数で叙述される。命題関数は動的構造を持ち、その動性は普遍的な仕組で命題関数が起動される事で成立する。そして、命題関数の動性の仕組は全命題関数を同期させる事で、調和構造の全景が捉えられる。これが自覚関数が調和構造の全景を捉える仕組である。この為に、自覚関数では３種に分類される命題関数をそれぞれ同期させる。この為に、３種の座標関数が準備される。そして、その後で全命題関数を同期させる為に全命題関数を同期させる１個の同期関数が用意される。自覚関数とは全命題関数、３種の座標関数、１個の同期関数で全実在を同期させる有機構造の事である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１２４】
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
２．３  自覚関数の叙述法
自覚関数の動性で調和構造の全体を同期状態で捉える為に、調和構造には１．形而上学的概念、２．時制概念が導入される。われわれの生命作用による叙述で叙述出来る様相は１．叙述する様相の部分、２．その部分の部分的集まりである。３．部分の輪郭、４．様相の全体はわれわれには叙述する事が出来ない。自覚関数では調和構造の全実在の叙述を成立させる事で非存である意図の全景と同等の様相が捉えられると見做す。その為に、自覚関数ではわれわれの叙述法では叙述出来ない５．調和構造の部分に当たる実在の輪郭を捉える叙述と５．調和構造の全景を捉える叙述を成立させる必要がある。この為に叙述する様相を形而上学的に概念化し、実在に時制を導入しそれを用いて５．の叙述、６．の叙述を可能にして調和構造の全景を捉える仕組を成立させている。この叙述の仕組が自覚関数である。自覚関数は調和構造の動性の全景を捉える為に命題関数の成立数を最大にさせる為に再帰的な仕組が不可欠になる。自覚関数を構成する命題関数、同期関数、３種の座標関数には全て再帰的な仕組が組み込まれている。
【０１２５】
（１）調和構造の形而上学的概念
自覚関数で叙述される実在は以下の形而上学的概念で解釈し直される。７．部分とは外延的様相である。即ち、様相の内部から見る様相の光景である。図２−１参照。８．部分は他の部分様相と脈略的な関係の基で成立する。即ち、部分は独立出来ない。
９．故に部分には輪郭はない。
１０．故にこの事に於いて、部分は動性の性質を持つ。
１１．全体は内包的様相である。われわれは部分として成立しているので、われわれは全体を捉える事が出来ない。
１２．全体は静的で輪郭を持つ。
１３．全部分の全景は外延的に全体に近傍する。
１４．全部分の全景の性質は全体に同等に近傍するわけではない。
１５．動的様相は時間概念を帯同する。
１６．静的様相は時間概念を伴わない。
１７．部分は全体に属す。
【０１２６】
（２）実在の時制
調和構造の全体を同期状態として捉える為に実在達には時制が導入される。そして、時制を持つ実在を叙述する為に命題関数にも時制が導入される。調和構造の脈絡で、隣接し合う３個の実在の間には脈略上の順位がある。この順位が実在の時制である。
【０１２７】
３個の実在の順位の最初に位置する実在は３個の実在の中央に位置する実在の過去の位置を占める。中央の実在の次に位置する実在は中央に位置する実在の未來の位置を占める。そして、３個の中央に位置する実在の時制は今である。調和構造の３個の実在の脈絡は調和構造上順次位相されるので、結果的に調和構造の実在は同時に３相の時制を持つ事に成る。但し、意図から最初に出現する実在の時制は今と過去の時制に限定される。未来の時制を持つ事はない。また、調和構造の最後に出現する実在の時制は今と未來の時制に限定される。過去の時制を持つ事はない。１個の実在はその実在が持つ時制に応じた命題関数で叙述される。例えば、１個の実在が３相の時制、今、過去、未来を備えれば、その１個の実在は今の実在を叙述する命題関数、過去の実在を叙述する命題関数、未來の実在を叙述する命題関数で叙述される。
【０１２８】
これにより実在の全景が捉えられる。図２−５参照。命題関数は実在の実体の名称とその命題関数が叙述する時制の識別子で識別される。
【０１２９】
１．Ｐ４，Ａは実在の今の様相を叙述する命題関数の識別子である。
Ｐ４は今の様相を叙述する命題関数の識別子で、Ａはその実在の実体の名称である。この命題関数の解はこの実在の実体の値である。
２．Ｐ２，Ｂは実在の過去の様相を叙述する命題関数の識別子である。
Ｐ２は実在の過去の様相を叙述する命題関数の識別子で、Ｂはその実在の名称である。この命題関数の解はこの実在の実体の値である。
３．Ｐ３，Ａは実在の未來の様相を叙述する命題関数の識別子である。
Ｐ３は未來の様相を叙述する命題関数の識別子である。
Ａはその実在の実体の名称である。命題関数の解はこの実在の実体の値である。
【０１３０】
２．４  命題関数の叙述構造と動作原理
命題関数の叙述構造は７個の規約文と４個の領域で規約されている。規約文の３個は条件文が主体で、４個は移動文である。７個の規約文は１、２、３、４、５、６、７規約と記される。４個の領域は第２、４、６、７規約に設定され、第２領域、第４領域、第６領域、第７領域と記される。第２領域には第２規約で計算される結果が貯蔵される。第２規約で計算される規約文の変数がこの計算タイミングで既に成立していれば、この計算は正常に行われる。第２規約で計算される規約文の変数がこの計算タイミングでまだ成立していれば、この正常な計算は出来ない。この事は第３規約文で判定される。第３規約文で計算が正常に行われている事が解かれば第２領域の計算結果は第４規約文で第４領域に移動される。第３規約文で計算が正常に行われていない事が解かれば、第4規約文で、第２規約文の計算が正常に行われる可能性の有無が調べられる。計算が正常に行われる可能性があれば、第６規約で次の実行タイミングでこの命題関数を再稼働させる旗が第６領域に立てられる。計算が正常に行われる可能性がなければ第７規約で次の実行タイミングでこの命題関数を再稼働させない事を告げる旗が第七領域に立てられる。
【０１３１】
実在が解かれば、それら実在をこの叙述原理に基づき命題関数として叙述する事が出来る。その叙述内容はひとにより変わる様なことはない。故にその複写性は完全に維持される。図２−７参照。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１３２】
２．５  自覚関数の定義
自覚関数の定義を以下に示す。
Ｍ＝Φ（Φ４{Ｐ４，Ａ}＋Φ２{Ｐ２，Ｂ}＋Φ３{Ｐ３，Ａ}）
図２−７参照。
１．自覚関数の解Ｍは「意味の仕組」と記される。
２．自覚関数の解はΦのｉ乗として成立する。
３．Ｐ４，Ａ、Ｐ２，Ｂ、Ｐ３，Ａは命題関数である。
４．{Ｐ４，Ａ}は命題関数Ｐ４の集合でパレット４と記される。
５．{Ｐ２，Ｂ}は命題関数Ｐ２の集合でパレット２と記される。
６．{Ｐ３，Ａ}は命題関数Ｐ３の集合でパレット３と記される。
７．Φ４、Φ２、Φ３は座標関数である。
Φ４のｉ乗＝Φ４、Φ２のｉ乗＝Φ２、Φ３のｉ乗＝Φ３
８．Φは同期関数である。Φのｉ乗＝Φ
９．演算子＋は同期関数のパレットの起動順序を示す。
１０．座標関数、同期関数の具体例は著者の論文で公開されている。
１１．座標関数、同期関数は共通プログラムなので自覚関数の叙述内容はひとにより変わることがなくその複写性は完全に維持される。
１２．命題関数を含む自覚関数は簡単なツールで１００％自動生成する事が出来る。
【０１３３】
２．６  自覚関数の動作原理
自覚関数の動作は同期関数から始まる。同期関数は座標関数４を起動させる。座標関数４はパレット４に搭載されている命題関数{Ｐ４，Ａ}を搭載順に起動する。全てのＰ４，Ａを起動した後、第６領域がオンになっているＰ４，Ａが１個以上あれば、座標関数４は再度を起動される。座標関数４の実行を繰り返すうちに第６領域が全てオフになり、第７領域がオンになれば、座標関数４は実行制御権を同期関数に戻す。同期関数は次に座標関数２を起動させる。座標関数２の動き方は座標関数４と同じである。座標関数２の実行制御権を同期関数に戻す戻し方は座標関数４の仕組と同じである。同期関数は次に座標関数３を起動させる。座標関数３の動き方は座標関数４、２と同じである。座標関数３の実行制御権を同期関数に戻す戻し方は座標関数４、２の仕組と同じである。座標関数が同期関数で４，２，３と１週する関係は同期周期と呼ばれる。同期関数は第７領域がオンになっている命題関数が１個でもあれば、同期関数は再度起動される。同期関数の再起動はされる。第７領域が全てオフになる迄繰り返される。
【０１３４】
２．７  命題関数、自覚関数の効果
われわれは、アルゴリズムを生命作用の帰結だとして、その成立由来には触れず直接し表象する。自覚関数では、アルゴリズムが直接表象されるのではなく、
１．アルゴリズムを成立させる生命作用の仕組が表象される。
２．生命作用の仕組は本研究で形而上学的に模型化されたものである。
３．自覚関数の動性でアルゴリズムを成立させる方式である。
【０１３５】
命題関数と自覚関数の動性から解かる様にその動性でアルゴリズムを決定する普遍的な規則を成立させている。そして、その基になる自覚関数の叙述も成立させるアルゴリズムが如何に複雑であろうとも普遍的で簡明である。
４．自覚関数の叙述には複写性が成立する。
５．この事により、われわれはアルゴリズムの課題から解放される。
６．自覚関数の構想はプログラム課題に端をはっして探し出されたアルゴリズムに関するわれわれの思考法のイノベーションになっている。かつて本発明者が出会った優秀なプログラム作成者たちが暗示した心の中の「おぼろげなプログラムの構造とはプログラムに対する考え方の事であり、それは自覚関数の事だったのかも知れない。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１３６】
２．８  方法論
方法論とは複写を成立させる仕組の事である。物質的なものの場合、方法論は生命作用と切り離された
知見で工夫することが出来る。叙述の方法論は生命作用に深くかかわるので、生命作用と切り離された知見で工夫することが出来ない。
この点で叙述の方法論と物質的なものの方法論には違いがある。本発明で取り扱うのは原始プログラムの方法論、即ち、叙述の方法論である。故に其処で用いる知見は生命作用と切り離された知見と云うわけには行かない。付言すれば科学上の知見は生命作用と切り離された知見である。この事が、科学が万能足りえない課題なのである。本来生命作用と切り離さない分野でも生命作用と切り離して知見が構築されている。本研究の特徴は生命作用を形而上学的に模型化し、それを科学が云う知見の代わりに用いて、自覚関数の叙述を生命作用と切り離し方法論を成立させた事である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１３７】
第4章  シナリオ関数
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
目次
1．プログラムの公理化
１．１  単元文
（１）単元文の種類
（２）単元文の構成要素
１．２  座標
１．３  ベクトル
（１）単元文に成立するベクトル
（２）連動文
（３）シナリオ関数に追加されるベクトル
（４）ベクトルの叙述法
１．４  ここ迄の論考の纏め
２．シナリオ関数の定義
２．１  シナリオ関数の構造
２．２  シナリオ関数型プログラムの開発工程
２．３  シナリオ関数の動性の仕組
２．４  シナリオ関数の効果
（１）アルゴリズムの複雑さから解放される。
（２）プログラムのコーデングから解放される
（３）ひとが行う作業が最小化される。
（４）プログラム言語は何でもよい。
（５）電算機システムの規模を測る尺度が成立する。
（６）プログラムの検証の仕方が簡略化される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１３８】
シナリオ関数とは自覚関数から導かれる１．「データ結合型原始プログラムに複写性を成立させる為の叙述法（方法論）」且つ、２．「数式的に定義されるその原始プログラムの構造模型」の事である。広義にはＬＹＥＥと総称される。この原始プログラムはシナリオ関数型プログラム、叉は混同の恐れがなければ、単にシナリオ関数とも記される。シナリオ関数は従来の原始プログラムと同様に翻訳プログラムで実行プログラムに変換すれば、従来の原始プログラムと同様に電算機で実行させる事が出来る。
【０１３９】
３．「原始プログラムに複写性を成立させる叙述法は、プログラム課題を解法する究極の解法論」であり、これはシナリオ関数が世界で最初である。因みに、従来の様にプログラム仕様の書式形式を幾ら厳密化しても、其れだけで原始プログラムに複写性が成立するわけではない。それが機械部品と異なる叙述体の特性である。同じ仕様の原始プログラムを
シナリオ関数を用いずに複数人が個別に作れば、ひとごとに違い複写性プログラムにはならない。この原始プログラムを本発明による「意味の仕組」で観察すれば、その３０％ぐらいに違いが現れる。複数人がシナリオ関数で原始プログラムを作れば、原子の意味の仕組を求めれば、どの原始プログラムの場合も全て同じに成るわけではない。他方、同じ仕様の原始プログラムをシナリオ関数で作れば、その原始プログラムは誰が作っても複写性が成立し全て同じになる。当然、その意味の仕組も同じになるのは当然である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４０】
われわれが叙述するのは生命作用が成立させるアルゴリズムである。換言すれば、その叙述は論理結合型である。他方、われわれが云う知見とはアルゴリズムの修飾叙述である。
それは生命作用と分離される様相の事である。故に、叙述に於いて知見は永遠に完結する事がない。論理結合型叙述がその事を示すのである。われわれはこの事に気付く必要がある。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４１】
偉大なニュートンの力の法則は、力は質量と加速度の積で求められるとする「知見」である。この法則の正当性はこの法則の閉じたアルゴリズムが求められ、且つその叙述が成立する事で証明される。しかし、この法則の質量、加速度の定義が未解決の間はこの法則のアルゴリズムは閉じているわけではない。その様な法則は利便性の主張に止まる。其れは法則の検証に通じるが、証明とは区別されるべきものである。閉じられたアルゴリズムは全アルゴリズムに近似する。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊、
【０１４２】
本発明では、存在論から生命作用が成立させるアルゴリズムは「調和構造」として仮説された。そして、調和構造の全景を捉える仕組が論考された。この仕組が自覚関数である。調和構造の全景は自覚関数の動性で捉えられる。其れは調和構造の全実在が同時に成立する場合に成立する。この為に、実在には１．時制が導入され、２．実在を７個の規約文で定義する仕組が命題関数として導入された。全景は全体に限りなく近似する様相である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４３】
アルゴリズムの部分を自覚関数で叙述し、その動性を求めればその動性はアルゴリズムの全景を捉える。意味の仕組とはこのアルゴリズムの全景の事である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４４】
われわれは、従来から、アルゴリズムを本能的に叙述する。しかし、そのアルゴリズムは全体ではない。そして、その叙述の動性から、意味の仕組を求めれば、意味の仕組によりアルゴリズムの全景が捉えられる。われわれの認識は「動的で部分」にとどまり、「全体」をとらえることができない。この為に利便性の追求には「複雑化」が伴う。そして、其れが課題や誤りを生じさせる原因となっている。しかし、この問題は、われわれが生命体である限り回避する事が出来ない宿命的なものである。しかし、誤りをおかしてはならないもの、例えば、プログラムの世界でも、この問題は解決されずにそのままの姿となっている。その結果として、プログラム自体が複雑化し、ソフトウエアの深刻な問題が引き起こされる事態になっている。そこで、プログラムを従来とは全く違った次元でとらえ、「動的な部分を静止させ、「全体を部分の外延関係としてとらえる仕組」がないかが論考されたのである。
【０１４５】
それが前章での「命題関数」であり「自覚関数」である。しかし、この考え方は「形而上学的」なものであり、まだ頭の中での作業である。これを実際にコンピュータ上の作業として考えようというのが本章の目的である。そのため、これまで「存在論」の用語で考えてきたことをコンピュータの用語に置き換える必要がある。前章での「実在の最小クラス」は「単元文」に、「実体」は「主語」に、「命題関数」は「ベクトル」に置き換え、自覚関数は「シナリオ関数」として展開される事になった。。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４６】
本章では自覚関数を基に求められる原始プログラムの方法論「シナリオ関数」が解説される。シナリオ関数は原始プログラムに複写性を成立させる。この事がわれわれをあらゆるプログラム課題から解放させる為の基になる。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
1．プログラムの公理化
自覚関数の叙述法を原始プログラムに適用させる為に、原始プログラムを自覚関数の公理に対応付ける必要がある。本研究ではこれをプログラムの公理化と記す。この為に原始プログラムには以下の概念が導入される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４７】
１．１  単元文
命題関数をプログラム言語で叙述する為に、「１構文複数機能」の構文は本発明による専用のプログラムで「１構文１機能」の構文に分けられる。本研究ではこれをプログラム言語の単元化と記す。そして、単元化された１構文１機能の構文は単元文と記される。 単元文は構文の最小クラスとなる。詳細は後述されるが、原始プログラムを調和構造とする時、単元文は概略的に実在と同等になる。原始プログラムの命題関数は単元文で叙述される。プログラムの命題関数はベクトルと記される。ベクトルの詳細」は後述される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１４８】
（１）単元文の種類
単元文とは以下の10種の構文の事である。真偽を判定する条件文は１機能と見做される。プログラム言語の構文は必ずこの１０種の単元文に還元される。
１． 注釈文：プログラムに関する覚書を定義する為の構文。
２． 領域文：領域の属性とその領域名を定義する為の構文。
３． 翻訳文：翻訳プログラムが準備する構文。実行命令以外の翻訳指示文、例えば、条件文の終末文（ＥＮＤ−ＩＦ），実行命令となる翻訳文は他の単元文に振り分けられる。例えば、ＯＰＥＮ命令は入力文、ＣＬＯＳＥ命令は出力文に振り分けられる。
４． 代入文：１個以上の変数で定義される関数文。
５． 定値文：定値だけで定義される代入文。
６． 条件文：真偽判定を行う構文。
７． 入力文：外部情報を指定領域に移す構文。
８． 出力文：内部情報を外部装置に移す構文。
９． 呼出文：主プログラムの指定位置にその部分となるプログラムを設定する構文。
１０． 制御文：構文の実行位置を変える為の構文。
【０１４９】
（２）単元文の構成要素
演算子、等号、端点記号を除く単元文の構成要素を以下に示す。
１．主語
主語名は実在の実体に連動し、実行時に値がセットされる領域名の事である。代入文、関数名は主語名である。主語名は唯一である。主語名の値を決める「変数」は「変数主語名」、「定値」と記される。変数は実在の属性の概念に連動する。
２．名詞
名詞とは領域文で定義される領域名である。領域名がレコード形式で定義される場合、レコード名は名詞の修飾語になる。名詞は主語名に変わる。
３．変数主語
変数主語名とは主語の変数となる主語名の事である。主語名は唯一だが、通常、変数主語名としては複数になる。
４．指標
構文に付与される名称は指標名で特にこの指標名は「名詞指標」と記す。指標名は領域を持たない。この様な指標名の文字列は「定置」と記される。指標名が構文の変数となる場合、この指標名は「主語指標」と記す。
５．定置
領域を持たない文字列は定置と記される。前述の指標名、注釈文のメモ、名詞の修飾語は定置である。
６．定値
領域を持たない常数は定値と記される。
【０１５０】
１．２  座標
原始プログラムの構文には構文の叙述順序を示す「行番号」が成立する。単元文には本研究による「調和座標」が導入される。また、単元文の変数には調和座標を基に「超言語座標」が導入される。
（１）調和座標
図３−１参照。調和座標は原始プログラムの動性を捉える為の座標で、６種の座標成分、ＴＣＸ，ＴＣＹ，ＴＣＺ１，ＴＣＺ２，ＴＣＺ３，ＴＣＺ４で構成される。調和座標で成立する単元文の脈略は「調和脈略」と記される。これは従来の流れ図に相当する。詳細は添付されている意味の仕組で観察する事が出来る。以下に調和座標の座標成分を説明する。
１． ＴＣＸは原始プログラム上の単元文の所在位置を示す。
ＴＣＸは行番号と連動する。
２．ＴＣＸのＴＣＹは
ＴＣＸの単元文が次に進む単元文のＴＣＸを示す。
３．ＴＣＸのＴＣＺ１は
ＴＣＸの単元文が真偽の真の時に進む単元文のＴＣＸを示す。
４．ＴＣＸのＴＣＺ２は
ＴＣＸの単元文が真偽の偽の時に進む単元文のＴＣＸを示す。
５．ＴＣＸのＴＣＺ３は
ＴＣＸの単元文の終文のＴＣＸを示す。
６．ＴＣＸのＴＣＺ４は
ＴＣＸの単元文の終文が次に進むＴＣＸを示す。
【０１５１】
（２）超言語座標
図３−２参照。単元文の構成要素には超言語座標が成立する。超言語座標により、単元文の構成要素の原始プログラムに於ける所在位置が捉えられる。それを基に超言語座標による「調和脈略」が成立する。詳細は添付されている意味の仕組で観察する事が出来る。以下に超言語座標を説明する。
１． 主語名の超言語座標：主語名が定義される単元文のＴＣＸとその主語名の領域文のＴＣＸの対で定義される。先のＴＣＸを主語座標、後のＴＣＸを名詞座標と記す。（主語座標、名詞座標）名詞座標は主語名と同じ領域名を定義する領域文のＴＣＸである。領域文を検索する事で求められる。
２． 変数主語名の超言語座標：主語名の超言語座標と同じ様に主語座標と名詞座標の対で定義される。変数主語名の主語座標はその変数主語名が主語名として定義されている単元文のＴＣＸである。変数主語名が主語名として定義されているプログラム上の箇所は一か所とは限らないので、変数主語名が属す単元文のＴＣＸを用いて調和座標を遡上し、最初に遭遇する変数主語名と同じ主語名を定義している単元文のＴＣＸである。名詞座標の求め方は主語名の場合と同じである。
３． 領域を持たない定置、定値の超言語座標：定置、定値が属す単元文のＴＣＸで定義される。
４． 指標名の超言語座標：主語指標名のＴＣＸと名詞指標名のＴＣＸの対で定義される。両座標ともプログラムを検索すれば求められる。
【０１５２】
１．３  ベクトル
命題関数は原始プログラムに対しては「ベクトル」として導入される。図３−３参照。
（１）単元文に成立するベクトル。
図３−４参照。以下の単元文はベクトルとして定義できる。
１．代入文
２．定値文
３．条件文
４． 入力文は主語を持つのでベクトル化される。
５． 出力文は主語を持つのでベクトル化される。
６． 呼出文は主語を持つのでベクトル化される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１５３】
（２）連動文
実在には実体があるので、時制が成立する。実在に符合させる単元文では、実在の実体に相当するものは主語である。しかし、全ての単元文に主語があるわけではない。単元文10種の内、主語を持つ単元文は５種に止まる。この為に、本研究では主語を持たない単元文を「連動文」とし主語を持つ単元文を内包する要素とし、内包される主語の時制を受容させる。連動文の導入で結果的に全単元文が主語と関わりをもち、かつ、時制が成立する事に成る。連動文は注釈文、領域文、翻訳文の中に見られる。
【０１５４】
１． 注釈文は連動文としてどの単元文の主語を内包するかは、原始プログラムを調和座標で辿れば、その注釈文が最初に遭遇する主語を持つ単元文の主語がその主語である。注釈文は遭遇した単元文のベクトルに付属する。
連動文の考えはベクトルだけでなく、後章の意味の仕組を導く為に文脈を決定する方法として用いられる。
２． 領域文はその領域名を使用している単元文に連動する。領域文はこの単元文のベクトルに付属する。
３． 翻訳文は、好ましいことではないが、様々な機能を有するものが設けられる様になっている。故に、翻訳文は事前に整理し、代入文、定値文、入力文、出力文、呼び出し文、条件文と同じ様にベクトル化出来るものはベクトル化される。ベクトル化できないものは連動文として扱われる事になる。 制御文はシナリオ関数では同期関数に吸収されるベクトルにも連動文にもならない。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１５５】
（３）シナリオ関数に追加されるベクトル
図３−５参照。シナリオ関数がどの様な電算機システムの形態の原始プログラムでもその叙述が普遍的に成立する様に、シナリオ関数には以下の６種のベクトルが追加される。即ち、Ｔ４，Ｅ４，Ｔ２，Ｔ３１，Ｔ３２，そして、Ｔ３３の６個である。これらのベクトルは自覚関数ごとに各１個づつである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１５６】
（４）ベクトルの叙述法
ベクトルＬ4、Ｗ４の叙述の仕方は命題関数Ｐ４の叙述に、ベクトルＬ２、Ｒ２の叙述の仕方は命題関数Ｐ２の叙述に、ベクトルＬ３の叙述の仕方は命題関数Ｐ３の叙述に準じる。該当する単元文は第二規約に叙述される。単元文が決まれば、そのベクトルの全ての規約の叙述は決定される事に成る。連動文は必要なら該当するベクトルに添付される。ベクトルの連動文となる領域文はベクトルの第２、４領域に該当する。如何にベクトルの叙述法の基本を示す。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１５７】
１．第1規約
第1規約ではこのベクトルの作用を終了させるか。第2規約に作用を進めさせるかが判定される。この判定の仕方は以下の通りである。
１． 第1規約は第4領域（実体化された「主語の値」を入れる領域）の成立を調べる。第4領域が成立していれば、このベクトルの解は既に求められた事になるので第1規約はこのベクトルの作用を終了させる。
２． 第4領域が成立していなければ、第7領域の成立を調べる。第7領域はこのベクトルの解はこのシナリオ関数では求められない事を宣言するための領域である。故に第7領域が成立していれば、このベクトルの解は求められない事になるので、このベクトルの作用を終了させる。
３． 第1規約はこのベクトルの解（主語）と同名を識別子とするベクトルL3の解がセットされるためのL3の第４領域を調べる。その第4領域が成立していなければ、第1規約はこのベクトルの解は求められないとしてこのベクトルの作用を終了させる。第1規約は上記１．２．３．以外の状況であれば、このベクトルの解は求められるとして第2規約に作用を進める。
【０１５８】
（2）第2規約
第2規約は解（主語）となる名詞を定義する領域を規定する。単元文は他のベクトルが成立させる解を変数名詞として用いて成立する。この関係は部分が全体のために成立し、全体は部分を成立させるために成立する仕組である。この作用の後、第2規約は第3規約に作用を進める。ベクトルの7個の規約、4個の領域は第2規約が分かれば、論理的に決まる関係にある。ベクトルを自動生成するプログラムのアルゴリズムはこの関係を用いて決定されている。
【０１５９】
（3）第3規約
第3規約はプログラムの全体を調べて第2領域が成立しているや否を調べる。成立していれば、第4規約に作用を進める。成立していなければ、第5規約に作用を進める。
【０１６０】
（4）第4規約
第4規約は第2領域の内容、即ちこのベクトルの解を第4領域に移し、かつ、第6領域をリセットしてこのベクトルの作用を終了させる。
【０１６１】
（5）第5規約
第5規約では同期関数の全ベクトルの前前周期と前周期との間の変化の有無が比較される。変化があれば以降の起動周期で、ベクトルの解が求められる可能性があるので、第6規約に作用が進められる。変化がなければ、同期関数の周期でベクトルの解が求められる可能性がないので、第7規約に作用が進められる。
【０１６２】
（6）第6規約
第6規約は第6領域に以降の起動周期で解が求められる可能性がある事を第6領域に宣言して終了する。第6領域の宣言が第4規約でリセットされずに残れば、シナリオ関数の動性は閉じられない事を意味し、このシナリオ関数は永久ループを始める。この原因はそのベクトルが特定できるのでひと的に解法できる。永久ループは起動周期履歴情報を用いて、第5規約の様に比較し、永久普遍として感知する事が出来る。
【０１６３】
（7）第7規約
第７規約は以後の起動周期でこのベクトルの解が求められる可能性がない事を7領域にフラグで宣言し、かつ第6領域をクリアして終了する。ここで第6領域をリセットする仕組はシナリオ関数の動性を系として閉じさせるための必然性である。これはシナリオ関数の動性を全体化、或は静的化指せるための仕組である。T32、T33が存在すれば主語を解とする全パレットの全ベクトルの第７領域のフラグはT32、T33の成立する方の第4規約でクリアされる。これはシナリオ関数がT32、T33で連鎖する事で、基のシナリオ関数（ランク1、1）が再起し解が求められなかったベクトルの解が求められる可能性が生じるからである。命題関数では調和構造の最小クラスの実在ごとにその実体が同期的に解となる様にその動性が7つの規約で定義された。それと同じ様に、ベクトルでも実在に符合するプログラムの最小クラスの単元文ごとに、その主語が同期的に解となる様にその動性が７つの規約で定義される。同期的に成立するとは、全実体、全主語が同時に成立する様相の事である。換言すれば、その時に内包関係が成立する。そして、その内包関係の様相が部分である実在や単元文が全体化される様相である。
【０１６４】
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
＊ベクトルのコーデング例
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
１．４  ここ迄の論考の纏め
ここで、「主語」という言語概念はアルゴリズムの全景を捉え様とする上で、重要な概念になっていることを確認しておきたい。本発明では、生命作用が叙述の為に成立させるアルゴリズムの形而上学的模型を調和構造とし、プログラムもそのひとつと置く。そして、実在をプログラムでは単元文と置く。ならば、調和構造は単元文で自覚関数として叙述する事が出来る。換言すれば、プログラムとは単元文で叙述される調和構造である。われわれには全体の叙述は不可能なので本研究では調和構造の全景を捉える仕組が論考される。そして、その方法は既知の実体を同期的に成立させる仕組が解かれば、可能になる。この仕組は実在の実体を解とし且つその解が既知の全実在の同期的関係として成立する。この関係は叙述構造１が求められ、且つそれを変数とする上位の叙述構造２が求められれば、叙述構造１，２の動性で成立する事が解かった。叙述構造１とは命題関数である。叙述構造２とは自覚関数である。即ち、調和構造の全景は自覚関数の動性で捉える事が出来る。調和構造の全景は自覚関数の解として位置付けられる。そして、それは意味の仕組と記される。
【０１６５】
以上の考えを基に、本発明では実在を単元文とし、実在の実体を単元文の主語に対応付ける。そして、単元文の主語を解とする命題関数、既に、この段階で、命題関数はベクトルと呼び変えられている、を自覚関数の変数とし、既に、この段階で、自覚関数は、シナリオ関数と呼び変えられている、ベクトルの叙述構造の動性とシナリオ関数の動性、即ち、
シナリオ関数型原始プログラムの動性でその原始プログラムの動性が描く全景をシナリオ関数の解として成立させる事が出来る。ここで、重要な事は自覚関数では調和構造は形而上学的模型なので、自覚関数による意味の様相は具体的に求める事が出来ない。シナリオ関数では調和構造は原始プログラムなので意味の様相は捉えられる。結果的に原始プログラムの動性が描く意味の仕組が必要なのは論理結合型叙述のプログラム（これ迄の原始プログラム）についてである。この叙述のプログラムにはプログラム課題が介在しそれを克服する為には不可欠となる。シナリオ関数型原始プログラムはデータ結合型叙述のプログラムなので、プログラム課題は介在しない。故に、そのプログラム観察の為に意味の仕組を求める必要性はない。後章では原始プログラムの意味の仕組が詳述される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１６６】
２．シナリオ関数の定義
シナリオ関数（Ｓ）は自覚関数を基に以下の様に以下の様に意定義される。即ち、
Ｓ＝Φ（Φ４{Ｌ４，Ｗ２，Ｅ４，Ｔ４}＋
Φ２{Ｌ２，Ｒ２，Ｔ２}＋
Φ３{Ｌ３，Ｔ３１，Ｔ３２，Ｔ３３}）
１．シナリオ関数の解Ｓは自覚関数の解Ｍと同様に「意味の仕組」と記される。図２−７を改めて参照されたい。
２．自覚関数の解はΦのｉ乗として成立する。
３．{Ｌ４，Ｗ２，Ｅ４，Ｔ４}はベクトルの集合でパレット４と記される。以降、シナリオ関数ではパレット４はＰ４と記される。命題関数Ｐ４、と混同しないことが肝要である。
４．{Ｌ２，Ｒ２，Ｔ２}はベクトルの集合でパレット２と記される。
同様に、パレット２はＰ２と記される。
５．{Ｌ３，Ｔ３１，Ｔ３２，Ｔ３３}はベクトルの集合でパレット３と記される。同様に、パレット３はＰ３と記される。
６．３個の座標関数Φ４、Φ２、Φ３は自覚関数の場合に準じる。
Φ４のｉ乗＝Φ４、Φ２のｉ乗＝Φ２、Φ３のｉ乗＝Φ３
７．同期関数Φは自覚関数の場合に準じる。Φのｉ乗＝Φ
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１６７】
２．１  シナリオ関数の構造
図３−６参照。１個のシナリオ関数は自覚関数と同様に３種のパレットで絵馬化出来る。これら３種のパレットは、シナリオ関数の動性で、各パレットに属すＴ４，Ｔ２，Ｔ３が
成立する事により、遷移する。Ｔ３１の成立によりＰ３はＰ４に遷移する。複数のシナリオ関数の場合、
Ｔ３２の成立によりＰ３は隣上のシナリオ関数のＰ３に遷移する。Ｔ３３の成立によりＰ３は隣下の自覚関数のＰ４に遷移する。Ｔ３１、Ｔ３２、Ｔ３３を用いれば、電算機システムを複数の自覚関数で定義する事が出来る。複数のシナリオ関数で定義される電算機システムはシナリオ関数の「ランク構造」と記される。どのシナリオ関数のＴ３１、Ｔ３２、Ｔ３３も叙述は普遍的になる、その叙述に複雑さは生じない。
【０１６８】
他方、ランク構造を１個のシナリオ関数に置換させる事も可能である。同様に１個のシナリオ関数をランク構造に展開させる事も可能である。従来のプログラム規模では２メガ命令に相当するある公共団体の「４０１Ｋシステム」がランク構造で開発されているが、この場合は出力フアイルの種別ごとに自覚関数が定義されランク構造が構築された。
【０１６９】
以下にランク構造等の理解の為に簡単なシステムの例を示す。即ち
１．データベース１（以下ＤＢ１）から画面１を編集し、画面１を表示する。このシナリオ関数を１とする。
２．表示された画面１を基に人が画面情報を作成する。この処理の為にＤＢ２が用いられる。作成された画面情報をＤＢ３に出力する。以上の為のシナリオ関数を２とする。それぞれのシナリオ関数を図３−６１で示す。このランク構造を図３−６２で示す。これを１個のシナリオ関数で示すとすれば、そのシナリオ関数はを図３−６３で示す。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１７０】
２．２  シナリオ関数型プログラムの開発工程
電算機システムのプログラムを開発するとは、ＬＹＥＥでは、シナリオ関数型プログラムを決定する事である。この始まりは電算機システムに属す主語を決める事である。
【０１７１】
主語は電算機システムとひととの境界情報である。故に、主語は画面、レコード等の所謂、定義体の構成項目（名詞）として存在する。即ち、シナリオ関数を求める始まりは定義体を決めるである。そして、この定義作業は人が行わなければならないものである。
【０１７２】
先の例からも明らかな様に画面、ＤＢ、決めれば名詞は求められる。主語とは観点を変えて云えば、唯一化されたデータ項目の事である。故に、名詞が決まり、名詞を唯一化する為にそれを主語とし、主語で成立するベクトルＬ４，Ｌ２，Ｌ３，Ｒ２，Ｗ４の第２規約となる単元文を決めれば、これらベクトルは専用ツール１で１００％自動生成する事が出来る。換言すれば、ベクトルのプログラミングは１００％自動生成する事が出来る。そして、これらベクトルが決まれば、それを基にベクトルＴ４，Ｔ２，Ｔ３、Ｔ３１、Ｔ３２、Ｔ３３のプログラミングは専用ツール２で１００％自動生成する事が出来る。
【０１７３】
シナリオ関数の同期関数、座標関数は共通のプログラムとして、プログラム言語種別ごとに世界で１組事前に準備して置けば、誰もがそれを利用する事が出来る。それを用いれば、シナリオ関数のプログラミングは、編集専用の専用ツール３で１００％自動編集する事が出来る。ここで、付言すれば、シナリオ関数の為のプログラミングと云う作業は専用ツール１、２、３を準備すれば、それに代行させる事が出来る。もし、どうしても利用したい従来型の部品プログラムがあれば既述の連動文扱いとしてベクトルに付属させる事が出来るし、同期関数または座標関数に付属させる事も出来る。シナリオ関数に馴れれば、軈て、誰もがその様な部品プログラムは機械部品と違う事から消滅して行くと思われる。
【０１７４】
シナリオ関数型のプログラムを作る為にこれ迄の開発環境が簡易化される外に何か大きな影響を受ける事はない。シナリオ関数に馴れれば、軈てわれわれは次第に、そして、自然にプログラムの本質に気付く事になると期待出来る。プログラムの処理方式を決める問題はシナリオ関数の場合、先の例からも明らかな様に、そのランク構造を決めれば、解く事が出来る。
【０１７５】
主語で決まるベクトルは応用ロジックの最少クラスである。そして、応用ロジック（アルゴリズム）の全景の事は自覚関数の動性が成立させるので、シナリオ関数を作成する上で関係者は意識する必要がない。ここで、応用ロジックの全景は画面やＤＢの項目が律する関係にある事に留意されたい。全項目と応用ロジックの全景は必ず同期しているからである。そして、シナリオ関数がその仕組をその動性で成立させるである。
【０１７６】
どの様な電算機システムのどの様なプログラムでもシナリオ関数で代行する事が出来る。
そして、どのシナリオ関数でもその作り方は全て同じである。しかし、最少クラスの定義に誤りが無い様に検証を如何に行うかの懸念を想定されるひともいるかも知れない。この検証作業はベクトルの第２規約の単元文が解かれば、単元文の妥当性を検証するだけで必要かつ十分である。その作業はひとが机上で行う作業である。この事が理解できれば、処理の時間性能以外、シナリオ関数の妥当性の検証の為に電算機で従来の様なテストを行う理由は何処にも見当たらない。
【０１７７】
シナリオ関数を作動させていずれかのベクトルに第７規約がオンになったままで残されているものがあれば、これはそのベクトルの第２規約が成立しない事を告げている。この様な現象は開発作業の初期の段階で全主語の捉え方に妥当性が欠ける場合に見受けられる現象である。
【０１７８】
シナリオ関数を理解すれば、電算機システムのプログラム開発は膨大なコストの掛かる進歩、改善のない困難な作業ではなかったことが解かる。「ソフト危機」はわれわれの論理結合型思考法の悪しき側面が齎す数々の横暴の１種だったのである。
【０１７９】
従来のプログラム開発工程に於ける基本設計作業の内容は、１．処理データの量、２．処理性能、３．操作の利便性を主因として４．システムの形態、５．機器構成の決定等を決める事である。この電算機システムの実行環境を決める作業はシナリオ関数の場合でもランク構造を決める上で必要である。
【０１８０】
基本設計に続き行われる詳細設計とは６．定義体の決定、７．応用ロジック（アルゴリズム）の決定、８．応用ロジックの分割である。この情報を基に９．プログラム仕様書の作成、１０．定義体の製造、１１．プログラムの作成、そして、作成物の検証が行われる。シナリオ関数の場合には定義体、ランク構造、そして、ベクトルの第２規約が解かれば、理由の如何を問わずその電算機システムのプログラムは自動生成する事ができる。
【０１８１】
従来のプログラムの開発工程と違うシナリオ関数の開発工程が大きく軽減化されるのは、開発したいと思う電算機システムの全プログラムの模型がシナリオ関数と云う形で既に発見されているからである。そして、そのシナリオ関数を規約する為に必要な既述の情報を決める作業を決めれば、シナリオ関数のプログラムは自動生成される事になる。シナリオ関数の検証作業は従来のプログラムの検証作業とは大きく違い軽減化される。基本的にシナリオ関数のプログラムは自動生成されるので誤りは生じない。もし、誤りがあるとすれば、それは、既述の様にベクトルの第２規約の単元文の定義だけである。故に、検証作業はこの点に集約されればよい。その検証作業は簡易化されるのは必然である。
【０１８２】
シナリオ関数が普及しない可能性があるとしたら、その理由は明確である。第１の理由はひとは論理結合型思考法から脱却できない故に、ＬＹＥＥの効果が解釈出来ないこと、
第２の理由は電算機システムの開発が不条理である故に、そこに正直に戻れない利権やそれに組する権威が作り上げられている事である。第３の理由は第２の構造が密に及んでいることである。
【０１８３】
本発明者が恐れるのは電算機システムに関わる人びとが電算機システムの利便性に事寄せて実質的に空洞化している事である。ボタンの掛け違いで成立している電算機システムの普及はこの事をより加速させている。子供たちに迄その様なプログラムの作り方を学習させているのを散見すると、恐れすら感じる。その様な学習が知力の鍛錬にも創造性の芽生えにも帰するものではない事は明らかである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１８４】
２．３  シナリオ関数の動性の仕組
シナリオ関数の動性は同期関数の起動から始まる。同期関数は起動すると最初Ｔ４の第４領域のオンオフを調べ、オンに成っていれば上位のＯＳに制御権を渡して終わる。オフであれば、同じ自覚関数の座標関数４を起動させる。座標関数４は起動するとパレット４に搭載されている全ベクトル{Ｌ４，Ｗ２，Ｅ４，Ｔ４}を搭載順に１回づつ起動する。全てのベクトルを１回づつ起動した後、パレット４のベクトルの第６領域がオンになっているものが１個以上あれば、座標関数４はパレット４に搭載されている全ベクトルを搭載順に１回づつ再度起動する。座標関数４が実行を繰り返すうちにパレット４のベクトルの第６領域が全てオフになり、且つベクトルの第７領域が１個以上オンになれば、ベクトルのＴ４は起動される都度この事を調べている。座標関数４はＴ４の第４領域のオンオフを起動される都度見る。オンになっていれば、実行制御権を同期関数に戻す。同期関数はＴ４の第４領域のオン見て、それをオフにし、其れから座標関数２を起動する。
【０１８５】
座標関数２の動き方は座標関数４の場合と同じである。即ち、座標関数２は起動するとパレット２に搭載されている全ベクトル{Ｌ２，Ｒ２，Ｔ２}を搭載順に１回づつ起動する。全てのベクトルを１回づつ起動した後、パレット２のベクトルの第６領域がオンになっているものが１個以上あれば、座標関数２はパレット２に搭載されている全ベクトルを搭載順に１回づつ再度起動する。座標関数４が実行を繰り返すうちにパレット４のベクトルの第６領域が全てオフになり、且つベクトルの第７領域が１個以上オンになれば、ベクトルのＴ２は起動される都度この事を調べている。座標関数２はＴ２の第４領域のオンオフを起動される都度見る。オンになっていれば、実行制御権を同期関数に戻す。同期関数はＴ２の第４領域のオン見て、それをオフにし、其れから座標関数３を起動する。
【０１８６】
座標関数３の動き方は座標関数４、２の場合と同じである。即ち、座標関数３は起動するとパレット３に搭載されている全ベクトル{Ｌ３，Ｔ３１，Ｔ３２，Ｔ３３}）を搭載順に１回づつ起動する。全てのベクトルを１回づつ起動した後、パレット３のベクトルの第６領域がオンになっているものが１個以上あれば、座標関数３はパレット３に搭載されている全ベクトルを搭載順に１回づつ再度起動する。座標関数３が実行を繰り返すうちにパレット３のベクトルの第６領域が全てオフになり、且つベクトルの第７領域が１個以上オンになれば、ベクトルのＴ３は起動される都度この事を調べている。座標関数３はＴ３の第４領域のオンオフを起動される都度見る。オンになっていれば、実行制御権を同期関数に戻す。同期関数はＴ３の第４領域のオン見て、それをオフにし、其れから新たな動きを決める。即ち、Ｔ３１第４領域がオンならば同期関数は再度同じ自覚関数の座標関数４を起動する。Ｔ３２第４領域がオンならば同期関数はこの自覚関数の隣上の自覚関数の座標関数３を起動する。Ｔ３３第４領域がオンならば同期関数はこの自覚関数の隣下の自覚関数の座標関数４を起動する。以上が自覚関数の動性を成立させる基本的な仕組である。Ｅ４、Ｔ４、Ｔ２、Ｔ３１、Ｔ３２、Ｔ３３の第４領域が同時にオンになる事はない。ベクトルの第領域と第７領域が同時にオンになる事はない。
【０１８７】
シナリオ関数では応用アルゴリズムで決定される要素は主語を基に定義されるベクトルＬ４，Ｗ２，Ｌ２，Ｒ２，Ｌ３達の第２規約の単元文だけである。それ以外の要素、即ち、ベクトルＥ４，Ｔ４、Ｔ２、Ｔ３１，Ｔ３２，Ｔ３３、そして、座標関数、同期関数は自覚関数の仕組から、普遍的に定義される。どの様な原始プログラムでもシナリオ関数であればこの仕組で求められる事を改めて理解して戴きたい。その為の作業は従来のプログラムでは想像もつかない簡便さである事にも気付いて欲しい。そして、シナリオ関数の動性も普遍的になることにも気付いて欲しい。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１８８】
２．４  シナリオ関数の効果
われわれは、生命作用の帰結として、アルゴリズムをその成立由来には触れずに叙述する。シナリオ関数は、アルゴリズムが直接叙述されるのではなく、アルゴリズムを成立させる生命作用の仕組が叙述される。この仕組は本研究で形而上学的に模型化されたものである。そして、シナリオ関数の動性でアルゴリズムを成立させる方式である。動性を叙述すればその叙述の複写性は成立しないが、この仕組の叙述だと複写性が成立するのである。従来のプログラムに複写性が成立しないのは動性の叙述だからである。動性の叙述はわれわれの本能的な叙述であり、論理結合型である。シナリオ関数の叙述の仕組は定義と云う静的な様相の叙述である。データ結合型叙述である。
【０１８９】
シナリオ関数のこの特長により、われわれはアルゴリズムの課題から解放される。付言すれば、自覚関数の構想はプログラム課題に端をはっして探し出されたアルゴリズムに関するわれわれの思考法のイノベーションになっている。かつて著者が出会った優秀なプログラム作成者たちが暗示した心の中の「おぼろげなプログラムの構造とはプログラムに対する考え方の事であり、それは自覚関数の事だったのかも知れない。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１９０】
（１）アルゴリズムの複雑さから解放される。
シナリオ関数では、実行時に、アルゴリズムの最少クラスである全ベクトル達が動き、処理データに反応するベクトルが自律的に判断作用し、「主語」を実体化する。そして、この作用は、シナリオ関数の仕組で、必要な限り周期的に繰り返される。反応出来るベクトル達が増え、実体化される「主語」達が増える。それら主語達が、尺取虫が自分の道を開く様に、自律的に紡がれる。この様相は処理ロジックが成立して行く様相である。換言すれば、シナリオ関数はアルゴリズムを実行時に自動生成する仕組である。
【０１９１】
（２）プログラムのコーデングから解放される
シナリオ関数はひとが行うべき最小の作業（定義体の定義、アルゴリズムの最少クラスの定義）を行えばそのプログラムは専用ツールで１００％自動生成される。シナリオ関数は自動コーデングの為の専用ツールのアルゴリズムを成立させる仕組である。
【０１９２】
（３）ひとが行う作業が最小化される。
プログラム作成の為にひとが行うべき作業は要件定義、プログラム設計、プログラム作成、プログラム検証）である。シナリオ関数では定義体（画面、表、レコード、フアイル）の定義以外のこれら作業は公理的に最小化且つ単純化される。これ迄の実績ではひとが行う作業の６０％が削減されている。
【０１９３】
（４）プログラム言語は何でもよい。
シナリオ関数ではプログラム言語は最小機能の構文だけで成立する。その様な構文はどのプログラム言語にも用意されているものである。
【０１９４】
（５）電算機システムの規模を測る尺度が成立する。
応用ロジックの最小クラスを捉える主語の数がその尺度である。作業量、作業期間はこの主語数で捉える事が出来る。例えば全定義体に属す項目数、即ち主語数が10万個のシステムでは、ベクトル数は1０万個になる。ベクトル1個当たりの実行構文数は領域文も含めて、例えば、平均に２0個賭すれば、プログラムの構文数は２００万個である。
【０１９５】
（６）プログラムの検証の仕方が簡略化される。
プログラムの検証はベクトルの定義ミス、自動化ツールへの入力ミスのチエックに絞られる。そして、この作業は机上で行う方が能率的である。従来では、どのプロゼクトでもロジックの全景の検証が必要になり、その作業方法がないので、原始的な認識法で行われている。結果的に開発、保守作業の80％がその為に費やされている。シナリオ関数では実行検証の主体はシステムの操作性、実行性能の確認に絞られる。以上の事から、シナリオ関数でプログラム開発を行うなら、要件定義では従来作業の30％減、プログラム作成は80％減、従来の検証レベルでは60％減と想定されている。従来のプログラムでは命令数100万個当たりの文書量はA4版で10万頁と言われている。LYEEの実績ではその十分の一である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１９６】
第5章  ＬＹＥＥ空間
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
目次
（１）従来プログラムとシナリオ関数の違い
（２）両者の共通情報
１．ＬＹＥＥ空間
２．プログラム例とシナリオ関数
３．ＬＹＥＥ空間の効果
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１９７】
前章までで、著者が提唱するLYEEの中核となる原始プログラムに複写性を成立させる方法論が理論上自覚関数として、具体的にはシナリオ関数として述べられてきた。このシナリオ関数を実際に活用するに当たっては、自覚関数の理解を基にすれば、シナリオ関数の解説で十分だと思われるが、本章では従来のプログラムとシナリオ関数の関係を明らかにして、シナリオ関数の理解を深めて頂く一助にしたいと考える次第である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１９８】
（１）従来プログラムとシナリオ関数の違い
既に述べている様に、従来のプログラムは人間の生命作用が齎す（論理的）われわれの思考の形態、即ち、それを体現するアルゴリズムをそのままフローチャートの形でプログラムとして叙述したものである。即ち、「論理結合型プログラム」となる。これに対してシナリオ関数では、その定義が示す様に生命作用で齎されるアルゴリズムの課題を回避するために、アルゴリズムの叙述をその最小クラスに止め、それをシナリオ関数の変数としてベクトル化している。そして、求めるべきアルゴリズムをシナリオ関数の動性で成立させる仕組になっている。この動性は電算機でシナリオ関数を実行させる事で齎される。シナリオ関数のこの仕組は論理結合型に対し、「データ結合型プログラム」となる。これがプログラムとしての両者の違いである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０１９９】
（２）両者の共通情報
ＬＹＥＥ空間とはシナリオ関数から見た従来のプログラムの情報である。従来のプログラムとシナリオ関数の共通情報として位置付けられる。付言すれば、従来の原始プログラムを調和空間に写す事で捉えられる従来の原始プログラムの情報である。図２−７参照、図４−１参照。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２００】
１．ＬＹＥＥ空間
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
従来のプログラムからの転換のために用意されたのが本章でみるLYEE空間である。すなわち、LYEE空間は従来プログラムの調和空間に写された様相である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
従来のプログラム例の部分を図５−２に示す。そして、そのＬＹＥＥ空間を図５−３に示す。ＬＹＥＥ空間は専用プログラムで従来の原始プログラムから生成することが出来る。図５−３の項目はすでに説明済みであるが簡単に補足を加える。
１．プログラム
単元文化されたプログラムである。単元文はベクトルの第２規約として用いられる。ベクトルではその順序列はパレット止まりで、パレット内の順序列は無視できる。換言すれば、従来のプログラムはベクトルの第２規約の順序列の事である。
２．文種
単元文の文種はベクトル種別に呼応する。単元文の文種は言語種別を問わず既述のとおり１０種である。
３．ベクトル種別
従来のプログラムには主語で定義されるベクトルが出現する。その種別はＬ４，Ｌ２，Ｌ３，Ｒ２，Ｗ４の５種である。ベクトル種別が空白の単元文はベクトルにはならない単元文である。
４．連動文
連動文はいずれかのベクトルの主語を内包する関係としてベクトルに添付される。
５．行番号
行番号はプログラム構文の叙述順位である。
【０２０１】
（６）調和座標：説明略
７．超言語化された単元文
この情報はプログラム保守、プログラム言語変換の自動アルゴリズムを成立させる基本情報になる。
８．主語
プログラムの主語の概念は生命作用の形而上学的模型の実在の実体の現実模型である。プログラムの本質性を捉える上で不可欠な概念である。ベクトル、後述の意味の仕組の単元となる文脈を導く上で不可欠な概念である。付言すれば、主語は生命作用と叙述を切り離す為の概念になっている。
９．変数主語：説明略
１０．指標名：説明略
１１．定値：説明略
１２．定置：説明略
１３．名詞：説明略
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２０２】
２．従来のプログラムとシナリオ関数の関係
図５−２のプログラム例をベクトルで捉え直せば図５−４となる。図５−４を基にシナリオ関数化を図れば図５−５である。従来のプログラムとシナリオ関数には叙述法で論理結合型とデータ結合型の違いがあるが、上述の通り両者の間は主語を介して、対応付けられる事が解かる。即ち、両者はプログラムとして同じ役割を果たす事が出来る。故に、それを作る為の作業能率はシナリオ関数の方がはるかに優れている事が理解できれば、プログラムはシナリオ関数型で開発維持されるべきは言を待つまでもなく当然の帰結である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２０３】
２３．ＬＹＥＥ空間の効果
（１）言語変換のアルゴリズムの成立
ＬＹＥＥ空間を用いれば、従来プログラムの言語の自動変換を行う為のアルゴリズムを導く事が出来る。図５−６参照。このアルゴリズムを用いれば、自動言語変換の専用ツールを作る事が出来る。既に多くの実績がある。
【０２０４】
（２）従来プログラムの保守作業の支援アルゴリズムの成立
保守の為のプログラム修正、即ち、追加、変更、削除の箇所並びに関連個所はＬＹＥＥ空間を用いれば、超言語化された単元文で保守箇所を解析する事が出来る。この情報が解かれば保守作業は単純化される事は明らかである。
【０２０５】
（３）シナリオ関数の言語変換、保守作業
従来プログラムを専用ツールを用いれば、シナリオ関数に自動変換する事が出来る。また、新規の段階からシナリオ関数で作成して於けば、シナリオ関数の言語変換、保守作業は従来プログラムの言語変換、保守作業とは違い、お気づきの通り言語変換ではベクトルの言語変換、保守作業ではベクトルの追加変更削除で対処できる。そして、その為の専用ツールは従来プログラムの対応ツールよりも容易に求められる。これもシナリオ関数の優位性である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２０６】
第6章  「意味の仕組」
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊：
第６章の目次
１．用語の解説
（１）動性
（２）叙述法
（３）意味の仕組
２．意味の仕組を捉える為のアルゴリズム
２．１  ＬＹＥＥ空間を求める。
２．２  ＬＹＥＥ空間から文脈を求める。
（１）文脈の定義
（２）文脈の定義例
（３）  文脈に脈略を成立させる
１．調和脈略
２．超言語脈略
３．意味の仕組の意義
４．意味の仕組の観察力
４．１  主語列
４．２  変数主語の正当性
４．３  データ揺動の原因
４．４  要件破壊の原因
４．５  システム破壊の原因
４．６  定値の波及範囲
５．  保守支援
６．プログラム・テスト支援
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２０７】
本研究ではアルゴリズムは実在の脈略として、調和構造と名付けられて模型化されている。図２−４参照。実在は実体が決まれば、属性が決まる叙述形式で成立している。そして、この叙述形式は生命作用が成立させる論理結合型叙述だと仮定されている。図２−３参照。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２０８】
われわれは経験的に、生命作用は叙述の動性の全様相を叙述する事が出来ない事を知っている。しかし、叙述の課題を解法する為にはそれを求めなければならない事は言を待つまでもない。本発明ではその為のアルゴリズムが論考され、求められた。其れは自覚関数の解として調和空間で求められる。図２−７参照。１９６０年代では意味の仕組とはよばれてはいなかったが、これを求めようとして様々な試行が行われていた。例えば、翻訳プログラムではクロスリファレンス情報として領域のアドレス情報が出力されていた。プログラムの誤りを追求する時、これを用いてアドレスを計算し、領域の脈略を追跡していた。何故かと云えば、プログラムを検証する観点に立てば、意味の仕組は不可欠な情報であることが認識されていたからである。その為に、この情報の利便化を図る試みは盛んに行われたが、結果的に意味の仕組は求める事が出来なかったのである。
【０２０９】
本発明でも１９８０年代迄、意味の仕組は情報Ｘと呼んでいたのである。本発明者はプログラムの意味の仕組を知れば、従来のプログラムの動性がいかに複雑になっているか分かるし、その中に潜む意味上の誤りを机上で発見できるようになる。プログラム課題の解法を念頭に置いている研究者、技術者、例えば、ＯＳ、プログラム言語、プログラムの作り方、翻訳プログラム、様々な作業支援ツールを作成している関係者に、直ぐ、理解はできなくても、その内、目から鱗が取れると確信する。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１０】
１．用語の補足
意味の仕組の観点から以下の用語を改めて補足する。
（１）叙述法
叙述は主語とその属性の間の同等関係を成立させる生命作用で、生命体がアルゴリズムの動性を暗示する為に行う言語的な外延的作用である。叙述にはデータ結合型と論理結合型の二つの型が成立する。例えば、Ａ＝Ｂ＋ＣでＡが決まるとＢ＋Ｃが決まる叙述形式は論理結合型、Ｂ＋Ｃが決まるとＡが決まる叙述形式はデータ結合型である。論理結合型叙述は生命作用による叙述法である。データ結合型叙述は人工的な叙述法である。論理結合型叙述法では動性の全体を暗示させ様とすると叙述が複雑化(ラッツセルの逆説)する特徴がある。データ結合型叙述は論理結合型叙述に生じる叙述の複雑化とそれによる叙述法の課題を回避する為の叙述法である。
【０２１１】
（２）動性
動性とは森羅万象のアルゴリズムである。本研究では動性は調和構造で模型化される。其れは論理結合として成立する。自覚関数やシナリオ関数はアルゴリズムの動性を同期的に成立させる為の叙述の仕組である。
【０２１２】
（３）意味の仕組
意味の仕組とは叙述の動性の全景である。叙述の解に相当する。シナリオ関数では叙述に属す主語の同期的ネットワーク（以下、脈略）として成立する。図６−４参照。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１３】
２．意味の仕組を捉える為のアルゴリズム
以下に意味の仕組を捉える為のアルゴリズムを解説する。この解説の為に図６−１、図６−２、図６−３参照。意味の仕組は図６−４参照。
２．１  ＬＹＥＥ空間を求める。
ＬＹＥＥ空間は前章で述べている様に、論理結合型プログラムをシナリオ関数が成立する調和空間に写した情報の事である。図５−３参照
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊。＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１４】
２．２  ＬＹＥＥ空間から文脈を求める。
（１）文脈の定義
文脈は主語に成立する「意味」の単元を表す叙述で、ＬＹＥＥ空間から調和座標を用いて求められる。この文脈の定義は世界で最初である。文脈を成立させる主語は文脈主語とも記される。  以下に文脈の定義を示す。
１．主語を内包する単元文の変数主語並びに定値
２．主語を内包する連動文である条件文の判定式の変数主語並びに定数
３．主語を内包する連動文である注釈文、制御文、翻訳文
内包関係は矢印で示される。例えば、単元文Ａ＝Ｂ＋ＣのＡは主語、Ｂ、Ｃは変数主語である。
この場合、主語Ａは文脈主語で、二つの変数主語Ｂ、Ｃに内包される。これをＡ←（Ｂ、Ｃ）と記す。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１５】
（２）文脈の定義例
事例のＬＹＥＥ空間（図５−３）に成立する文脈例を文脈の理解の為に示す。
１．  G＝１0文
この単元文の種類は定値文、主語はGである。超言語化すれば、G[86,]＝10[86]となる。このプログラム例ではこの単元文の過去の様子は解らないので、
この単元文を内包する連動文はないものとする。故に、この主語は文脈主語と一致する。故に、この単元文の主語Gの文脈はG[86,]←10[86]と定義される。10[86]は文脈主語G[86,]の属性である。G[86,]の86は主語GがTCX:86に居る事を示す主語Gの主語座標である。
属性10[86]の１０は定値でTCX:86に居る事を示す。本来はG[86,12]と定義される。12は名詞座標である。特記されていない限り名詞座標は省略されている。以下の解説も同じである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
２．  READ  F1（R，F）文
この単元文の種類は入力文、主語はＦ１、変数主語はR，Fである。超言語化すれば、READ  F1[87,]（R［87,］，F［87,］）である。この単元文の過去側の最近傍に位置する主語を持つ単元文はG＝１0で、隣接している。故に、この単元文を内包する連動文はない。故に、この単元文の主語は文脈主語と一致する。
故にこの単元文の主語F1文脈はF1[87,]←{R[87.],F[87,]}と定義される。{R[87.],F[87,]}は文脈主語F1[87,]の属性である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
３．  F＝R−F文
この単元文の種類は代入文、主語はＦ、変数主語はR、Fである。超言語化すれば、 F[88,]＝R［87,］―F［87,］である。この単元文の過去側の最近傍に位置する主語を持つ単元文はREAD  F1（R，F）で隣接している。故に、この単元文を内包する連動文はない。故に、この単元文の主語は文脈主語と一致する。
故にこの単元文の主語Fの文脈はF[88,]←｛R［87,］、F［87,］｝と定義される。｛R［87,］、F［87,］｝は文脈主語F[88,]の属性である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
４．  CLOSE F1文
この単元文の種類は翻訳文、主語はＦ１、変数主語はない。超言語化すれば、CLOSE F1［９２,］である。この単元文の過去側の最近傍に位置する主語を持つ単元文はF＝R−Fで、隣接していない。故に、この間にいる１．条件文IF
F＜0、２．制御文gotoL1 、３．翻訳文end-ifがこの単元文を内包する連動文となる。即ち、
IF F＜0を超言語化すれば、[89]F[88,]＜0[89]、
gotoL1を超言語化すれば、[90]gotoL1[,87] 、
end-ifを超言語化すれば、[91]end-ifである。
故にこの単元文の主語F1の文脈は
F1[９２,]←｛F[88,],0[89],end-if[91],gotoL1[90]｝
と定義される。｛F[88,],0[89],end-if[91],gotoL1[90]｝は文脈主語F１[９２,]の属性である。条件文は二つの単元文に掛かる。即ち、この場合の条件文は制御文,gotoL1と翻訳文,end-ifに掛かり、これらは共に同じ主語F1の連動文である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
５．  E＝B―F文
主語Eの文脈はE[93,]はE[93,]←｛B[99,],F[88,]と定義される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
６．  A＝D＋R＋5
この単元文は代入文、主語はAである。そしてD、Rはその変数主語、５は定値である。この単元文を超言語化すれば、
A[95,]＝D[101,]＋R[87,]＋5[95,]である。
そして、この単元文を遡上すると主語を持つ単元文E＝B−Fに遭遇する。その間にいる連動文は条件文IF
F＝E  である。この条件文のF、Eはこの条件文の変数主語である。
この条件文を超言語化すれば、IF[94] F[88,]＝E[93,]である。
故に、主語Aの文脈は
A [95,]←｛D[101,],R[87,],5[95,],E[93,],F[88,]｝と定義される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
７．  A＝２＊R＋5文
この単元文は代入文、主語はAである。そしてRはその変数主語、２、５は定値である。この単元文を超言語化すれば、
A[96,]＝2[96,]＊R[87,]＋,5[96,]である。
そして、この単元文を遡上すると主語を持つ単元文E＝B−Fに遭遇する迄の間にいる連動文は条件文IF F＝E  である。
この条件文を超言語化すれば、IF[94] F[88,]＝E[93,]である。
故にこの単元文の主語Aの文脈は
A[96,]←｛R[87,],2[96,],5[96,],E[93,],F[88,]｝と定義される。
条件文は二つの単元文に掛かる。この場合の条件文は二つの主語を持つ単元文A＝D＋R＋5とA＝２＊R＋5に掛かる。故に二つの主語A[95,]とA[96,]の文脈の属性となる。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
８．  C＝G−A文
この単元文は代入文、主語はC、変数主語はG、Aである。この単元文を内包する連動文は翻訳文end-iでがある。
C＝G−Aを超言語化すれば、C[98,]＝G[86,]―A[,20]、
翻訳文end-iを超言語化すれば、end-if[97]である。
故に主語Cの文脈主語はC[98,]←｛G[86,],A[,20],end-if[97]｝と定義される。
ここで、変数主語Aの超言語座標 A[,20]の20は名詞座標である。A[,20]はその名詞座標がTCX:20の領域文で定義されている事を示している。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
９．  B＝G―F文
主語Bの文脈はB[99,]←｛G［86,］,F［88,］｝と定義される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
１０．  D＝B＋C文
主語Dの文脈はD[101,]←｛B[87,],C[96,],0[100,]｝と定義される。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１６】
（３）  文脈に脈略を成立させる
意味の仕組とは文脈の脈略の事である。文脈の脈略は１．調和脈略と２．超言語脈略で構成される。
１．  調和脈絡
文脈主語の実行順序は調和座標で捉えられる。これは機能的な成立関係である。調和脈略とはその実行順序の逆順の事である。この逆順で結果からその成立関係を見る関係、即ち文脈主語を成立させる文脈主語の内包関係が捉えられる。例えば、主語Ａ、Ｂの機能的な成立関係がＡ→Ｂだとすれば、調和脈略はＡ←Ｂと記される。機能的な成立関係はＡが成立すればＢが成立するという関係が示される。それに対し、調和脈略ではＡはＢが成立する事により成立するという関係が示される。調和脈絡の起点となる文脈主語は出力文の主語である。そして、終点となる文脈主語は入力文の主語である。この間に様々な主語が介在する事になる。主語と主語を結ぶ矢印は経路と記される。経路は出力文の主語から入力文の主語の方向に向かう事になる。添付されている意味の仕組（図６−４）にこの経路を見る事が出来る。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１７】
２．超言語脈絡
主語Ａの変数主語Ｂを内包する主語Ｂは変数主語Ｂの主語座標で捉えられる。変数主語Ｂの主語座標は超言語座標として捉えられるので、この内包関係は超言語脈絡と記される。この脈略が加わる事により、文脈主語の間に意味の規律が成立する。本書に添付されるプログラム例の意味の仕組（図６−４）に超言語脈絡を見る事が出来る。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１８】
意味の仕組を求めるアルゴリズムは約２万個の実行命令で専用のプログラム化が出来る。そして、その情報を市販されている絵解き専用のプログラムで絵馬化する事が出来る。２００６年には、意味の仕組を捉えるＰＣ専用の実用の初版ツールが完成する。実行命令数が２００個程度の規模のプログラムの意味の仕組をこのアルゴリズムを手作業で行えば、約４０時間ぐらい掛かる。構文数が２００個を超えれば手作業では手に負えない。初版ツールでは命令数１５万個のプログラムの意味の仕組はＰＣで約２時間の処理で求められた。４０万個の場合は１０時間ぐらいである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２１９】
３．意味の仕組の意義
文脈の属性は調和座標で捉えられる。文脈を決める叙述を叙述１とする。属性となる変数主語とそれを内包するその主語の関係は超言語脈略で捉えられる。この叙述を叙述２とする。主語間の内包関係は調和脈略で捉えられる。この叙述を叙述３とする。即ち、プログラムとはこの叙述３の事である。意味の仕組とは、叙述３の妥当性を叙述１，２、で弁証する為の仕組の事である。即ち、叙述１，２が妥当であれば叙述３の妥当性が証明されることになる。叙述１，２が妥当でなければ叙述３の妥当性は成立しない。即ち、プログラムの叙述は正当でないと云う事になる。
【０２２０】
論理結合型プログラムの動性はこれ迄、部分的に捉える以外に捉える術がなかった。故に、プログラムは誰でも叙述できるが、そのプログラムがどの様に動いているかは誰も把握する事が出来なかった。プログラム作成者でも勝手に有り様を述べるに止まっているのが実態である。意味の仕組はその全動性を叙述１，２で捉え且つ可視化している。これにより、プログラムの動性は誰もが観察出来る事になった。
【０２２１】
プログラムを機能部品として作り、それでシステムを構築させる考えは、１９９０年以降多くの分野で流行する。しかし、機械部品は叙述３だけで成立するが、プログラムの部品は叙述３だけでは成立する事が出来ない。しかし、この流行は勢いづいて普及されている。そして、叙述１、２が少ないプログラムが部品化されている。しかし、この様な部品を用いて作られるプログラムシステムの開発は容易に見えてもその保守、検証作業は多くの不条理な課題を生じさせる原因になっている。
【０２２２】
意味の仕組はＬＹＥＥで初めて可視化されたが、１９７０年代では実現されなかった。しかし、超言語脈絡に相当する経路の存在は当時では多くの技術者達により、プログラムの実相を捉える方策として想定されていた。特に今日的技術者が１９７０年代の技術者と異なるのは機能と動性の違いが理解出来なくなっている事である。意味の仕組を無視してプログラムの課題を技術的に語る事は出来ない。故に技術レベルは低下する一方である。これが今日的プログラムの根源的な問題である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２３】
４．意味の仕組の観察力
意味の仕組で観察出来る内容を以下に示す。
１．主語列
２．変数主語の正当性
３．データ揺動の原因
４．要件破壊の原因
５．システム破壊の原因
６．定値の波及範囲
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２４】
４．１  主語列
意味の仕組から条件文以外の連動文を除いた状態は主語系譜と記される。主語系譜は主語列を取り出したり観察する為に用いられる。主語系譜に対し起点主語と終点主語を示せば主語の順序列を取り出す事が出来る。この主語の順序列はプログラムが成立させるものである。それが仕様と一致しているや、否やの問題がある。即ち、主語列が仕様と合致していれば、プログラムと仕様は調和している。もし、以下の場合、主語列が仕様と調和していない事になる。
１．主語の順位が要件と異なり、逆転している。
２．主語が要件よりも不足している。
３．要件よりも余分な主語が介在している。
この場合、プログラムの動性が、仕様の意図する動性と異なる原因になる。即ち、実行障害の原因になる可能性があるので、要件定義者の意図と照合し要件とプログラムを調和させて置く必要がある。主語順序列はプログラムのパスルートを捉えている故に主語順序列の観察はパスルートの妥当性の観察に相当する。主語系譜の全ての主語順序列が妥当であれば、そのプログラムは妥当である可能性が高い。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２５】
４．２  変数主語の正当性
変数主語の主語座標は変数主語を内包する文脈主語の事である。変数主語を内包する文脈主語は唯一つとは限らない。故に変数主語を内包する文脈主語が正当であるか否やは意味の仕組を観察する必要がある。意味の仕組ではプログラムに基づいて変数主語を内包する文脈主語を捉えている。故に、プログラムが誤っていれば正当な文脈主語を捉えていない事がある。これは実行障害を引き起こす原因である。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２６】
４．３  データ揺動の原因
データ揺動とは処理結果が正常であったり、そうでなかったりする現象である。原因は代入文の主語と変数主語の主語座標が逆転している場合に発症する可能性がある。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２７】
４．４  要件破壊の原因
要件破壊とは処理結果が部分的に異常値を示す現象である。原因は条件文のＴＣＸとその条件文の判定式の変数主語の主語座標が逆転している場合に発症する可能性がある。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２８】
４．５  システム破壊の原因
システム破壊とは処理結果が全体的に異常値を示す現象である。原因はデータ揺動と要件破壊が同時に起きている場合に発症する可能性がある。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２２９】
４．６  定値の波及範囲
プログラムに設定されている定値の波及範囲は意味の仕組に因り想像外に広く及ぶことが解かる。故に、定値が想像外の主語に悪影響を与える事がある。そして、想定外の処理結果が作り出されてしまう事がある。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２３０】
５．  保守支援
プログラム保守とはその動性を見直す事である。その為に原始プログラムの叙述に追加・変更・削除が行われるのである。故にプログラムの動性が把握できなければ本来プログラム保守は行う事が出来ないのは当然である。そのプログラムの意味の仕組を求め、それを基に保守すべき箇所を決定するべきである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【０２３１】
６．プログラム・テストの支援
プログラム・テストとはその動性の妥当性を検証する事である。故にプログラムの動性が把握できなければ本来プログラム・テストは行う事が出来ないのは当然である。そのプログラムの意味の仕組を求め、それを基にテスト箇所を検証するべきである。
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊
【図１】
2015215649.tif 000003
【図２】
2015215649.tif 000004
【図３】
2015215649.tif 000005
【図４】
2015215649.tif 000006
【図５】
2015215649.tif 000007
【図６】
2015215649.tif 000008
【図７】
2015215649.tif 000009
【図８】
2015215649.tif 000010
【図９】
2015215649.tif 000011
【図１０】
2015215649.tif 000012
【図１１】
2015215649.tif 000013
【図１２】
2015215649.tif 000014
【図１３】
2015215649.tif 000015
【図１４】
2015215649.tif 000016
【図１５】
2015215649.tif 000017
【図１６】
2015215649.tif 000018
【図１７】
2015215649.tif 000019
【図１８】
2015215649.tif 000020
【図１９】
2015215649.tif 000021
【図２０】
2015215649.tif 000022
【図２１】
2015215649.tif 000023
【図２２】
2015215649.tif 000024
【図２３】
2015215649.tif 000025
【図２４】
2015215649.tif 000026
【図２５】
2015215649.tif 000027
【図２６】
2015215649.tif 000028
【図２７】
2015215649.tif 000029
【図２８】
2015215649.tif 000030
【図２９】
2015215649.tif 000031
【図３１】
2015215649.tif 000032
【図３２】
2015215649.tif 000033
【図３３】
2015215649.tif 000034
【図３４】
2015215649.tif 000035
【図３５】
2015215649.tif 000036
【図３６】
2015215649.tif 000037
【図３０】
2015215649.tif 000038