1. LYEE構造により導かれたシナリオ関数の動作原理概説

 

基本的な考え方

シナリオ関数は、実行命令文ごとに実行する命令その命令が実行可能となる条件(命令の存在理由)を組み込んだ「個別命令文プログラム(ベクトルと呼んでいる)」を作成しこのプログラム群がたとえランダムに配置されていても実行条件を満たすまで「何回でも繰り返し」実行させて全ての命令処理を完結させる仕組みである。

命令の処理順序を人が指定することは不要。したがってコーディングの自動化が 実現できる。

 

動作原理・事例1
簡単な事例で命令が実行される過程を示します。

▲画像をクリックで拡大

 


 

▲画像をクリックで拡大

 


 

▲画像をクリックで拡大

 

動作原理・事例2
条件文(IF)文の入ったプログラムが実行される過程を示します。

▲画像をクリックで拡大

 


 

▲画像をクリックで拡大

 


 

▲画像をクリックで拡大

 


 

▲画像をクリックで拡大

 


 

▲画像をクリックで拡大

 

 

動作原理から分かること

任意の順に並べても問題なく処理します!(コーディングの際に実行順序を意識する必要がない。) 処理順序(実際の実行順序)は、実行を管理するプログラムにより(必然的に)自動的に決定されます。

プログラム構造は唯一の形(決まったパターン)になります。

 

処理の流れの比較

▲画像をクリックで拡大

 

実際の仕組み(1)

命令ごとに作成する個別の命令文は、C=A+Bという命令文と、もしAが設定済みかつBが設定済みであれば実行といった実行条件(命令の存在理由)さらに実行済みか否かといったフラグ等が組み合わさって処理の最小単位の「個別命令文プログラム(ベクトル)」を構成します。

個別命令文プログラムは下記の単位で作成されます。(プログラム言語によって多少対応が異なります。)

①領域文、②定置文、③翻訳文、④代入文、⑤定値文、⑥条件文、⑦入力文、⑧出力文、⑨呼出文、⑩制御文

 

実際の仕組み(2)

個別命令文プログラム(ベクトル)の処理順序(実際の実行順序)は実行順序を自動決定するプログラムが制御し決定します。

このプログラムは、最上位から順に
(1)同期関数
(2)座標関数 
と名付けた2種類の関数で実現されています。

個別命令文プログラム(ベクトル)は命令文の性質によって3つに分けられています。
すなわち、

②定置文、 ⑤定値文、⑦入力文 ←「入力系」

④代入文、 ⑧出力文 、⑨呼出文 ←「処理・出力系」

⑥条件文 ←「条件判定系」

の3種類です。

①領域文(エリア定義)は、基本的に同期関数の先頭に置きます。
⑩制御文(goto文)は個別命令プログラム(ベクトル)が不要です。
③close文を除いて、翻訳文(end if等)を管理する個別命令プログラム(ベクトル)はありません。

 

実際の仕組み(3)

個別命令文プログラム(ベクトル)の情報は、3種類(入力系、処理・出力系、条件判定系)ある座標関数ごとに準備されている「パレット」と呼ばれる一覧表に呼び出し名(個別命令文プログラム名(ベクトル名))を記述します。

個々のパレットに属する個別命令プログラム(ベクトル)の並べ方の順序は自由です。

これは、パレット上の個別命令プログラムの全てが繰り返し実行される事により、個別命令文プログラム(ベクトル)の中で演算可能な命令から順次実行され、次第に個別命令文プログラム(ベクトル)の実行順序が決まる仕組になっているからです。

これらの全体の仕組みを「シナリオ関数」と呼んでいます。

 

LYEE構造を実現するシナリオ関数における命令記述

▲画像をクリックで拡大

 

処理が完了した時点でのデータ状況

▲画像をクリックで拡大

 

動作が完了したときの状況 なぜバグ零なのか?

▲画像をクリックで拡大

 

シナリオ関数の動作の前提として

▲画像をクリックで拡大

 

LYEE構造を実現するシナリオ関数の構造

▲画像をクリックで拡大

 

個別命令文プログラム(ベクトル)の構造

▲画像をクリックで拡大