JP4925514B2 - 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 - Google Patents
内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 Download PDFInfo
- Publication number
- JP4925514B2 JP4925514B2 JP2001051886A JP2001051886A JP4925514B2 JP 4925514 B2 JP4925514 B2 JP 4925514B2 JP 2001051886 A JP2001051886 A JP 2001051886A JP 2001051886 A JP2001051886 A JP 2001051886A JP 4925514 B2 JP4925514 B2 JP 4925514B2
- Authority
- JP
- Japan
- Prior art keywords
- event
- processing
- execution
- procedure
- computer
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータソフトウェアの開発技術に係り、特に処理群の制御を効率化するプログラム構造を実現させる技術に関する。
【0002】
【従来の技術】
近年のソフトウェア開発は、オブジェクト指向の考え方を取り入れたプログラム開発ツールを用いて行うことが多い。このようなプログラム開発ツールにおいては、例えばC言語、BASIC言語に基づいた仕様のプログラミング言語が使用される。また、プログラム開発ツールには、ソフトウェアの外観を構成する部品、例えばボタン、メニュー等が予め用意されており、開発者はこれらの部品のシンボルを画面上に適宜配置することにより、ソフトウェアの枠組みを作成することができる。配置されたボタン等の部品には、ソフトウェア実行時にユーザのマウス操作によってクリックされたこと等を検知する仕組みが組み込まれており、検知した場合には、ユーザの操作に応じたイベントを発生させるようになっている。ソフトウェア開発者は、このイベントが発生した場合の、ソフトウェアの処理を、ソフトウェア開発ツールに応じたプログラミング言語で記載して、ソフトウェアの動作を規定することにより、ソフトウェアの開発を行う。このようなプログラム開発方法は、一般にビジュアル化された開発方法と称されている。
【0003】
【発明が解決しようとする課題】
しかし、上記の開発方法では、外部操作したイベント発生に対する処理の規定は行えるが、処理内部のプログラムの記述については規定されないため、プログラムの機能を規定する要求仕様書と、プログラムの記述構造とが一致しないため、要求仕様書と、プログラム仕様書との記述内容の統一性をとることが困難である。このことは、開発時のみならず、バージョンアップ時の整合性保持、バグ修正時等において大きな問題となる。また、ビジュアル化により、仕様書作成に費やす時間が省略され、開発者の感性により逐次プログラムを作成していくという形態が多くとられるようになり、個人主義的なプログラムになりやすいという問題も生じている。
【0004】
さらには、上記の開発方法を実現させるためには、プログラム開発ツール自身の機能を複雑化せざるを得ず、プログラム開発ツールの不具合、インタフェースの煩雑化等の問題が生ずる。
【0005】
このため、ソフトウェア開発者の負担が大きく、ソフトウェア開発者の育成も多大な時間と労力が必要とされることとなっている。
【0006】
一方、ソフトウェアが、実行時に発生させるイベントは、マウス操作、キーボード入力、割り込み等(これらを「外部イベント」と称する)であり、内部的な処理を中心としたイベント(これを「内部イベント」と称する)については、ほとんど使用されておらず、使用されたとしても、タスク間のパイプ、メール、あるいは、オブジェクトに対するメッセージ等が主であり、開発者の裁量に委ねられている。このため、プログラム構造の標準化が困難となっている。
【0007】
本発明は、上記の課題を解決するために開発されたもので、その目的は、ソフトウェア開発時およびソフトウェア実行時において、処理群の制御を効率化するとともに、規定・整理されたプログラム構造を実現させる技術およびプログラム作成支援システムを提供することにある。
【0008】
【課題を解決するための手段】
上記目的を達成するため、本発明は、コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳する装置であって、前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成し、前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、前記実行コードは、コンピュータを、処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、を実施する処理手段として機能させるイベント駆動型の実行制御方法において、前記コンピュータに対して、前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出した手続きを複数実行する手順を実施させる、ことを特徴とする装置を提供する。
【0009】
【発明の実施の形態】
本発明の実施の形態について図面を参照して説明する。
【0010】
まず、本発明が適用されるコンピュータの概要について説明する。図11は、一般的なコンピュータの構成を示すブロック図である。本図において、コンピュータ本体500は、中央演算処理装置(CPU)501と、主記憶装置502と、画像処理装置503と、外部記憶装置504と、入出力制御装置505と、これらを接続するシステムバス506とを備えている。
【0011】
コンピュータ本体500には、入出力制御装置505を介して、キーボード507と、マウス508と、モニタ509とが接続できる。もちろん、本発明が適用されるコンピュータは本構成に限られるものではない。
【0012】
CPU501は、コンピュータの中心的な制御を行う装置で、プログラムを解読して、実行する機能を有している。主記憶装置502は、コンピュータが取り扱うデータ、プログラム等を一時的に格納する機能を有している。画像処理装置503は、画像を生成するための演算等を行う。外部記憶装置504は、ハードディスク装置等から構成され、基本ソフト、アプリケーションソフト、その他各種データ等が不揮発的に格納される。入出力制御装置505は、操作者の指示を受け付けるとともに、データを外部に接続された装置に入出力する際の制御を行う。
【0013】
次に、本発明によるプログラム実行制御方式について説明する。図1は、本発明によるプログラム制御方式の概要を示すブロック図である。本図において、S1、S2・・・Sn、E1、E2・・・Enは処理単位である。これらの処理単位S1、S2・・・Enによって処理群が構成される。これらの処理単位は、プログラム実行時において初期化(B100)された後、特定の外部イベントもしくは内部イベントの発生をトリガーとして起動し、処理を開始する(B101)。そして、処理が終了すると、処理単位に応じた内部イベントが発生する。この内部イベントに対応して新たな処理が起動する。このようにして、外部イベントと内部イベントを元に次々と処理が行われる。この処理の連結を内外イベントドリブン方式と称する。
【0014】
次に、内外イベントドリブン方式のプログラム制御法を用いた処理の一例を説明する。図2は、内外イベントドリブン方式のプログラム制御法を用いた処理の概念を示すフロー図である。図3、図4は、処理単位の内容を説明する図である。
【0015】
図2で示す処理は、データの入力チェックを行い(S1)、正常であればファイルをオープンし(S2)、そのファイルを読み込み(S3)、所定の処理(S4)を行った後、ファイルをクローズして(S5)終了する。また、処理の途中には適宜エラーチェックが行われる。この処理について内外イベントドリブン方式に基づいて説明する。ここで、S1、S2…S5、E1、E2、E3は本方式における処理単位である。
【0016】
本処理が起動すると、まず処理単位S1を実行する。すなわち、コンピュータ操作者のマウスクリック等により本処理が選択されると、外部イベントである起動イベントが発生する。この起動イベントをトリガーとして処理単位S1が起動する。
【0017】
処理単位S1では、図3(a)に示すように、コンピュータ操作者により入力されたデータの入力チェック(S11)を行い、入力エラーの判断(S12)を行う。入力エラー判断(S12)の結果、入力データが規格内であれば、内部イベントであるS2Eventを発生させ(S13)、入力データが規格外であれば、内部イベントであるE1Eventを発生させ(S14)、処理単位S1は処理を終える。
【0018】
S2Event(S13)が発生すると、図3(b)に示すように処理単位S2が、S2Eventをトリガーとして起動する。処理単位S2は、ファイルのオープンを試みる(S21)。その結果(S22)、ファイルオープンが成功であれば、S3Eventを発生させ(S23)、ファイルオープンが失敗であれば、E2Eventを発生させ(S24)、処理単位S2は、処理を終える。
【0019】
S3Event(S23)が発生すると、図3(c)に示すように処理単位S3が、S3Eventをトリガーとして起動する。処理単位S3は、ファイルのリードを試みる(S31)。その結果(S32)、ファイルリードが成功であれば、S4Eventを発生させ(S33)、ファイルリードが失敗であれば、E3Eventを発生させ(S34)、処理単位S3は、処理を終える。
【0020】
S4Event(S33)が発生すると、図3(d)に示すように処理単位S4が、S4Eventをトリガーとして起動する。処理単位S4は、計算処理を行う(S41)。計算処理を終えると、E5Eventを発生させ(S42)、処理単位S4は、処理を終える。
【0021】
S5Event(S42)が発生すると、図3(e)に示すように処理単位S5が、S5Eventをトリガーとして起動する。処理単位S5は、ファイルをクローズする(S51)。そして本処理が終了する。
【0022】
次に、エラーが発生した場合の処理について説明する。
【0023】
符号S14により、E1Eventが発生すると、図4(a)に示すように処理単位E1が、E1Eventをトリガーとして起動する。処理単位E1は、エラー表示を行う(E11)。そして本処理が終了する。
【0024】
E2Event(S24)が発生すると、図4(b)に示すように処理単位E2が、E2Eventをトリガーとして起動する。処理単位E2は、エラー表示を行う(E21)。そして本処理が終了する。
【0025】
E3Event(S34)が発生すると、図4(c)に示すように処理単位E3が、E3Eventをトリガーとして起動する。処理単位E3は、エラー表示を行う(E31)。そして、S5Eventを発生させ(E32)、処理単位E3は、処理を終える。
【0026】
このように、本発明によるプログラム制御方式は、処理中にIF(判定)文を用いるときは、その分岐条件に応じたイベントを発生させることを基本とする。ただし、前もって提供する処理等における設定等により例外を設けることが可能である。そして、分岐後の処理は、イベントに応じた別処理単位を起動させる。また、処理単位が外部関数として呼び出されたときは、リターンステータスの判定により、内部イベントを発生させる。
【0027】
なお、本方式は特定のプログラミング言語に依存するものではなく、あらゆる言語について適用することが可能である。さらには、内外イベントドリブン方式に最適化したプログラミング言語を定義することも可能である。
【0028】
次に、内外イベントドリブン方式によるプログラム制御方法に用いられるステージの概念について説明する。ステージは、いくつかの処理がまとまったもので、階層構造を構築することができる。図5は、ステージの階層構造の概念図である。
【0029】
本図において、ステージ0(30)が最上位のステージである。ステージ0は、下位ステージであるステージ1(31)とステージ2(36)とを有している。ステージ1は、下位ステージであるステージ1−1(32)とステージ1−2(35)とを有している。ステージ1−1は、下位ステージである1−1−1(33)とステージ1−1−2(34)とを有している。
【0030】
イベントによるプログラムの実行の流れは、同層ステージ間、および、上下に隣接するステージ間のみで推移することを基本として、間のステージを飛ばした移動は認められず、コンパイラあるいは構築ツール等でエラーを発生させる。このため、理論構造の明瞭化が可能となる。ただし、実行時に重大なエラーが発生した場合等の処理に例外を設けることができる。
【0031】
図6は、ステージをGUI(Graphical User Interface)画面に組み合わせた概念図である。
【0032】
本図において、画面全体(40)が、本例での最上位ステージ(Stage1)である。画面全体(40)は、表示される項目1(41)と、表示される項目2(42)と、ボタン1(43)と、ボタン2(44)と、画面を操作するためのボタン群(45)を下位ステージとして有しており、これらはStage1の下位ステージである。すなわち本例では、最上位ステージである画面全体40をまず定義し、次に、各処理単位である項目41、42、ボタン43、44、画面操作ボタン群45を、Stage1に属する下位ステージとして定義することとなる。
【0033】
以上に示したように、内外イベントドリブン方式によるプログラム制御方法は、外部イベントと、内部イベントをトリガーとして、さまざまな処理単位を実行させる。これにより、一つ一つの処理単位を短くすることができ、かつ、制御構造を明確化することができるため、プログラムの標準化が容易に可能となる。また、エラー処理も一つの処理単位として独立して記述できるため、複数定義、階層の複雑化等を回避することが可能となる。
【0034】
一方、開発時においては、イベント単位のブレークあるいは処理単位ごとのブレークが簡易に実現できるため、分業化を含めた効率的なデバッグ作業を行うことが可能となる。
【0035】
次に、内外イベントドリブン方式を用いたプログラムのコンパイラーについて説明する。本コンパイラーは、外部イベントと内部イベントとを管理し、イベント対応テーブルを作成する手段を有しており、コンパイル時にイベント対応テーブルが作成される。また、本コンパイラーは、ステージを管理する手段を有している。
【0036】
図7は、イベント対応テーブルの概念図を示したものである。本図において、符号100はイベント対応テーブルである。符号200は、処理単位のプログラムコード群(201a、201b、…201y)である。イベント対応テーブル100は、イベントID部101と、処理実行アドレス部102を備えている。イベントID部101は、イベントの識別コードを管理し、処理実行アドレス部102は、イベントをトリガーとして起動する処理単位のプログラムコードの先頭アドレスを管理する。
【0037】
ここでのアドレスは、プログラムコードの先頭アドレスに限られず、処理実行記号、No、インターネットURLアドレス等であってもよい。また、本例では処理実行アドレスが1個であるが、複数個指定可能としてもよい。
【0038】
発生した内外イベントに対して起動される処理モジュール(処理単位)は複数個存在してもよく、複数個の処理モジュールの起動は、例えば、順位を定めた起動方式、あるいは、マルチタスク、マルチスレッド、マルチCPUを起動させる方式、さらには、表1に示すように、インターネットサーバに振り分けて起動させる方式とすることができる。
【0039】
【表1】
【0040】
表2に示すように、順位を設ける場合には、アドレス情報部に順位とアドレス部とを設ける等により順位を管理できるものとする。その後、スタック等にすべてのアドレスを格納し、すべてのモジュールが実行処理を終了するまで、次のイベントに対する実行を行なわない制御を行なう。
【0041】
【表2】
【0042】
マルチスレッド等の機構に振り分ける場合、処理を受けた側にも内外イベントドリブン方式によるプログラムが起動されるようにすることができ、この場合の終了コードは、起動元に対するイベントコードになる。
【0043】
図8は、内部イベントと、外部イベントを別々に管理するイベント対応テーブルの概念図である。本図において、符号110は、内部イベント対応テーブルであり、符号120は、外部イベント対応テーブルである。その他の構造は図7のイベント対応テーブルと同様である。
【0044】
図9は、ステージ毎にイベント対応テーブルを管理する場合の概念図である。本図において、符号50、51、52、53、54は、ステージ毎に整列されたイベントテーブルである。処理実行時には、各ステージに対応したイベント対応テーブルにより、処理単位が識別される。
【0045】
次に、内外イベントドリブン方式のプログラムを実行するCPUについて説明する。内外イベントドリブン方式のプログラムは、一般的なCPUにおいて実行可能である。この場合、コンパイル時に作成されたイベント対応表を、プログラムロード時にメインメモリに格納することにより、実行時にイベント対応表を参照して、該当する処理を行う。
【0046】
また、内外イベントドリブン方式に最適化されたCPUを用いることによって、内外イベントドリブン方式のプログラムはさらに高速に実行可能となる。内外イベントドリブン方式に最適化され、イベント管理機能を持つCPUを「Event Code CPU」と称する。Event Code CPUとしては、例えば、イベント信号専用のイベントバスを設けることが考えられる。このようなイベントバスを設けることにより、アドレスバス・データバスを介在させずに、イベント制御、イベント対応表の参照、判断、処理モジュールの起動等を行うことが可能となる。また、イベント対応表専用のメモリ領域等を設けたイベント管理メモリを実装することも可能である。また、イベント発生用の命令コードも、このバスを介して行うことも可能である。
【0047】
一般に、マルチプロセッサ環境で実行させるためには、各処理の同期を取る必要がある。しかし、本発明の内外イベントドリブン方式では、処理単位ごとに別CPUに処理を割り振り、各処理の終了イベントが出揃った時点で、次処理のイベントを発生させることが可能で、処理間の同期を取ることが容易となる。このため、マルチプロセッサ環境で、今まで同期をプログラムで意識管理していたものが、本方式を利用することで構築が簡単にできるようになる。また、各CPUの利用効率を高めることができる。
【0048】
ここで、上述の各処理の終了イベントが出揃った時点で、次処理のイベントを発生させる処理について説明する。本処理を実現させる機構をイベントマッチ機構と称する。図10は、イベントマッチ機構を説明する図である。本図において、処理1(301)が終了すると、Event1(302)が発生し、処理2(303)が終了すると、Event2(304)が発生し、処理3(305)が終了するとEvent3(306)が発生する。そして、Event1(302)と、Event2(304)と、Event3(306)とのすべてが発生すると、Event4(307)が発生するようになっている。Event1(302)と、Event2(304)と、Event3(306)との発生順序は問わない。処理4(308)はEvent4(307)をトリガーとして処理を開始する。このようにして、各処理を各プロセッサに割り振った場合にも、同期を取ることが可能となる。また、これらの処理はプログラム上で行う以外にも、ファームウェアに組み込んで、プログラム外で、あたかも外部イベントのような振る舞いとすることも可能である。さらに、マルチプロセッサ以外でも、イベントに対する処理が複数発生するケースもあり、このときも発生した処理がすべて終了した後に、次イベントを生成する。
【0049】
また、すべてが終了しなくても、定められたイベント条件が発生した場合にも次イベントを発生させ、他の処理を開始させるようにしてもよい。定められたイベント条件の例としては、重大エラーイベントの発生、イベント論理合成、タイムオーバー等があげられる。また、処理モジュールを複数起動させる際に各処理を別タスクとして起動させ、各タスクからのイベントの戻りを待つ方式において、定められたイベントが発生した場合に次処理モジュールを実行するが、次処理モジュールを実行後に、他のタスクからのイベントが発生する。このイベントを無視する方式と、継続的に次処理モジュールを実行する方式がある。継続する方式は、次処理を別タスクの起動等により処理が可能となる。この方式により実行処理が拡大し、得られる結果も複数となる。この方式によりネット上での並列情報収集、データベース上での並列情報処理等が可能になる。
【0050】
次に、内外イベントドリブン方式を用いたプログラム構築の具体的な実施例について説明する。本実施例では、携帯用端末機において、あらかじめ名簿データベースに登録された人物データから、所定の条件を満たすデータを抽出するプログラムを作成する場合について説明する。
【0051】
携帯用端末機は、前述のように図11に示したハードウェア構成で実現できる。ただし、携帯性を重視するため、通常、キーボード507は本体500と一体化されており、モニタ509は液晶画面が採用されて、やはり本体500と一体化される。また、マウス508は接続されずに、キーボード507に設けられたキー等によって代用される場合もある。。
【0052】
携帯用端末機としては、コンピュータを小型化したものに限らず、例えば携帯電話を用いることができる。この場合は、キーボード507としてダイヤル用のプッシュボタンを用いることができる。
【0053】
本実施例では、携帯用端末機の外部記憶装置(補助記憶装置)504には、プログラム作成を支援するためのツールがあらかじめ記録されている。このツールは内外イベントドリブン方式を適用したものである。ユーザは、このツールを用いることにより、目的の動作を行うプログラムを容易に作成することができる。
【0054】
図12は、ユーザがプログラムを作成するときの処理を説明するフロー図である。本フロー図に示すように、ユーザは、処理モジュールを選択し(S101)、その処理モジュールのプロパティの設定(S102)と、処理モジュール間の関係を設定する作業(S103)とを繰り返す(S104)ことにより所望のプログラムを作成することができる。そして、処理モジュール間の関係は、上述の内外イベントドリブン方式を実現したものである。なお、処理モジュールの選択処理(S101)と、プロパティの設定(S102)と、処理モジュール間の関係を設定する作業(S103)とは、必ずしもこの順に行う必要はなく、実際の処理順序はユーザに委ねられる。
【0055】
すなわち、本実施例において、携帯用端末は、処理モジュールの選択を受付ける手段と、選択を受け付けた処理モジュールについて、プロパティの設定内容を受付ける手段と、選択された処理モジュール同士の関係の設定内容を受付ける手段とを少なくとも有している。そしてさらには、処理モジュールを一覧表示する手段、受付けた設定内容を表示する手段等を有することができる。
【0056】
本実施例では、表3に例として示すような処理モジュールが用意されている。処理モジュールにはそれぞれ、処理モジュールIDと、処理モジュール名と、処理内容とが定義されている。そして、処理内容に応じたプロパティが設けられている。
【0057】
【表3】
【0058】
処理モジュールIDと、処理モジュール名とは、処理モジュールを識別するための識別子である。処理内容には、あらかじめ定められた処理モジュールの動作、例えば、「入力ファイルと出力ファイルを指定する」等が規定される。プロパティは、ユーザが処理モジュールの具体的処理、例えば、入力ファイルのファイル名等の設定を行う項目である。
【0059】
もちろん、これらの処理モジュールは、例示であり、本発明はこれらに限定されるわけではない。
【0060】
このような場合において、携帯用端末に、図13のフロー図で示す処理を行わせるプログラムを作成する場合の手順について説明する。
【0061】
本フロー図における処理は、まず入出力ファイルの設定を行う(S201)。次に、入力ファイルに次データが存在するかどうかを判断する(S202)。そして、次データが存在しない場合は、処理済みのデータの表示処理(S206)を行なった後、終了メッセージを表示し(S207)、処理を終了する。次データが存在していれば、そのデータを読み込む(S203)。次に、読み込んだデータが所定の条件を満たしているかどうかを判断する(S204)。そして、満たしている場合には、そのデータを出力ファイルに書き出す(S205)。
【0062】
その後、再びS202に戻り、入力ファイルに次データが存在するかどうかを判断して、以降の処理を繰り返す。
【0063】
具体的には、あらかじめ、補助記憶装置504に登録されている名簿ファイル600(ファイル名「名簿DB」)の情報から、所定の条件を満たす人物を抽出し、新たなファイル(ファイル名「抽出名簿」)を作成する処理を行うものとする。
【0064】
ここで、「名簿DB」は、図14に示すような構造とデータを有しており、氏名601、電話番号602、メールアドレス603、グループ604に関するデータ項目を含んでいる。そして、抽出する条件は「グループがAである」とする。
【0065】
プログラム作成時において、携帯用端末は、液晶画面509に、処理モジュール名をリスト化した処理モジュール一覧表を表示し、ユーザの選択を受付け可能にする。ユーザは、キーボード507等の入力装置を用いて、所望の処理モジュールを選択することができる。
【0066】
例えば、ユーザが入力ファイルと出力ファイルを指定する処理を行う場合は、処理として「入力ファイルと出力ファイルの指定」が定義されているID001Mの「ファイル構成処理」という処理モジュールを選択することができる。
【0067】
選択された処理モジュールは、プロパティの設定内容を受付ける。プロパティとは、処理モジュールの制御用パラメータであり、ユーザが設定することができる。
【0068】
本実施例において、本モジュールはプロパティが3つ用意されている。第1のプロパティは、入力ファイルの設定である。第2のプロパティは出力ファイルの設定である。そして、第3のプロパティは出力ファイルの構成の設定である。
【0069】
プロパティの値は、指定可能なアイテム群が表示され、その中からユーザが選択して設定する。もちろん、プロパティの性質によってはユーザが任意に入力するようにすることもできる。
【0070】
ここでは、第1のプロパティについては、当該携帯用端末で読み込むことのできるファイルの一覧表示を行い、ユーザの選択を受付ける。第2のプロパティは書き出し可能なファイルの一覧表示からの選択を受付けるとともに、ユーザの任意なファイル指定についても受付け可能とすることができる。第3のプロパティは、第2のプロパティで設定した出力ファイルの構成を設定するプロパティである。ここでは、読み込んだファイルに含まれるデータのうち、所定の条件を満たすデータを書き出す処理を行うため、出力ファイルの構成は、入力ファイルの構成と同様であるとする。
【0071】
これらのプロパティを設定することにより、プログラム実行時に本モジュールの処理を行うと、データ読み込みについては、第1のプロパティに設定されているファイルがカレントファイルとなり、データ書き出しについては、第2のプロパティに設定されているファイルがカレントファイルとなる。このカレントファイルの規定は処理モジュールの仕様として前もって定義されているものとする。
【0072】
ユーザにより選択された処理モジュールは、その処理モジュール起動のトリガーとなるイベント(起動イベント)と、処理モジュールが終了したときに発生するイベント(終了イベント)の設定を受付ける。ユーザは、これらのイベントを設定することにより、処理モジュール間の関係を定めることができ、これにより所望のプログラム制御を行うことが可能となる。
【0073】
ここで、「ファイル構成処理」モジュールは、プログラム起動時に行うこととし、プログラム起動時に発生するイベントがS1であるとすると、「ファイル構成処理」モジュールの起動イベントにはS1を設定する。また終了イベントは任意に設定できるがここではイベントS2が発生するものとする。
【0074】
なお、処理モジュールによっては、終了イベントを複数設定することができる。これにより、たとえば、分岐処理を行う処理モジュールの場合には、分岐条件判断の結果に応じたイベントを発生させることが可能となる。また、起動イベントを複数設定可能にして、起動イベント毎に処理手順を調整するようにすることもできる。この場合、例えば、処理モジュールが最初に呼ばれたときには初期化を行った上で所定の処理を行い、下位ステージから戻ってきたときには、初期化を行わずに所定の処理を行うといった制御が可能となる。さらには、プロパティにイベントを設定できるようにしてもよい。
【0075】
次に、入力ファイルのデータを1行ずつ読み込み(S203)、所定の条件を満たすデータ(S204)を出力ファイルに書き出す(S205)処理を入力ファイルの最後のデータまで行う(S202)場合のプログラム作成について説明する。
【0076】
ユーザは上記の処理(S202)に対応して、「繰り返し処理」モジュールを選択することができる。「繰り返し処理」モジュールは処理として「下位ステージの処理を繰り返し行う」が定義されている。すなわち、本モジュールが適用されるステージが最上位のステージ0だったとすると、本モジュールにより起動する処理モジュールは、下位ステージであるステージ1となる。
【0077】
「繰り返し処理」モジュールはプロパティが1つ用意されている。このプロパティには、処理を繰り返す条件を指定する。ここでは、プロパティ値として「読み込みデータが存在」を選択することができる。このような設定を行うことにより、携帯用端末は、カレント入力ファイルである「名簿DB」のデータを1行ずつ、最後の行まで所定の処理を行うことになる。
【0078】
そして、「繰り返し処理」モジュールの起動イベントは、「ファイル構成処理」モジュール終了後に起動させたい場合にはS2を設定することができる。また、終了イベントは、繰り返し条件を満たしている場合はS11を発生させ、繰り返し条件を満たしていない場合はENDイベントを発生させるものとする。ここで、ENDイベントを発生させることで、プログラム実行時には、プログラム処理を終了させることができる。
【0079】
以下同様に、ユーザは、図13に示したフロー図を実現するための処理モジュールを選択し、それぞれのプロパティおよびイベントを指定することができる。
【0080】
図15は、モジュールを選択し、上記のプロパティと起動イベントおよび終了イベントを設定するときの表示と操作の一例を示すイメージ図である。本図において符号700は、モジュールが選択されたときの表示イメージで、「ファイル構成処理」と「繰り返し処理」と、「表示処理」とがユーザにより選択されている。また、ここでは、最上位のステージ0に関するモジュールが選択されている。そして、それぞれのモジュールには起動イベントと終了イベントがユーザにより設定されている。また、ユーザは、この画面でイベントの設定を変更することができる。
【0081】
この状態で、「ファイル構成処理」と表示されている部分の指定を受付けると、携帯用端末は、「ファイル構成処理」のプロパティを表示する画面710を表示する。プロパティを設定する画面710には、プロパティの番号711と、プロパティ名712とが配置されている。なお、ユーザからの指定の受付は、例えば矢印型のポインタを液晶画面509に表示させ、ユーザの所定のボタン操作によりポインタを移動させ、ポイントしている部分の指定を受付けるようにすればよい。
【0082】
そして、例えば「入力ファイル」と表示されているプロパティ名の部分を指定を受付けると、プロパティの設定を受付ける画面720を液晶画面509に表示する。この画面でユーザのプロパティの設定を受付けることができる。
【0083】
一方、モジュール「繰り返し処理」は、下位ステージの処理を呼ぶことができるため、下位ステージ704の該当する欄に、その旨を明示するアスタリスク「*」が表示される。そして、ユーザからの「*」の部分の指定を受付けると、携帯用端末は下位モジュールであるステージ1のモジュールの選択を受付ける画面730を液晶画面509に表示する。そして、前述同様にユーザの設定を受付ける。
【0084】
このように、ユーザは携帯用端末の液晶画面509上で、処理内容を設定し、確認することができる
表4は、本例において選択した処理モジュールとプロパティ、起動イベントおよび終了イベントを示している。ここでの起動イベントは英数字で表しているが、これに限られず、名称、No等とすることもできる。また、他の情報処理装置、例えばパーソナルコンピュータで作成し、携帯用端末にダウンロードするようにしてもよい。
【0085】
【表4】
【0086】
次に、上述の方法によってユーザが作成したプログラムを、携帯用端末が実行する場合の処理について説明する。
【0087】
携帯用端末は、プログラムを解釈して、処理を行う制御手段を有している。この処理は、例えば、図16に示すフロー図に基づいて行われる。
【0088】
制御手段はユーザからプログラム実行の命令を受付けると(S301)、S1イベントを発生させる(S302)。そして、S1イベントを起動イベントとする処理モジュールを呼び出す(S303)。
【0089】
呼び出された処理モジュールは、規定された処理内容とプロパティの指定値に従って所定の処理を行う(S304)。そして、処理が終了すると、あらかじめ定められた、あるいは、処理結果に応じた終了イベントを発生させる(S305)。
【0090】
そして、終了イベントがプログラムの終了を意味するENDイベントであるかどうかの判断を行う(S306)。
【0091】
その結果、ENDイベントであった場合は、プログラムの実行を終了する。一方、ENDイベントでない場合は、終了イベントにより起動する処理モジュールを呼び出す(S303)。このとき、上位ステージが呼び出されたときは、下位ステージ実行時に確保した記憶エリアを開放する。そして、S304以降の処理を繰り返す。
【0092】
上記の説明において、データ定義、使用方法については記述されていないが、データ定義は、各処理モジュールが内部的に保有、または、自動確保するようにする。データの有効使用範囲は上位または自ステージ内で相互に有効とする。
【0093】
データ定義したエリアを使用する方法においては、データ定義として、名称、記号、属性、構造体等を前もって定義し、各処理モジュールのプロパティに名称を指定することで、データの移動、変換、計算等を行なう。このため、この実行システムでは、これらを処理するデータ管理モジュールが組み込まれることになる。また、支援システムでは、データの一覧あるいは各処理モジュールで指定されるデータエリア相互の相関をチェックし、指定誤りを指摘する機能等を有する。また、支援システムにおいては、従来のフローチャート、イベント一覧、構造等を表示したり、実行シミュレーションを行なう機能、デバック機能等を加えてもよい。
【0094】
このように、本実施例によれば、処理モジュールを選択し、プロパティを指定するとともに、イベントの管理を行うことによって簡便に所望のプログラムを作成することができる。このため、複雑なプログラミング言語文法を習得する必要がなく、万人にプログラムの機会を与えることが可能となる。また、処理モジュールのイベントを一定の論理で変化させる等により、結果を試しながら検証することで人間の思考を支援する思考支援システムへの応用も可能となる。
【0095】
【発明の効果】
上述のように、本発明によれば、ソフトウェア開発時およびソフトウェア実行時において、処理群の制御を効率化するともに、規定・整理されたプログラム構造を実現することが可能となる。
【図面の簡単な説明】
【図1】 本発明によるプログラム制御方式の概要を示すブロック図。
【図2】 内外イベントドリブン方式のプログラム制御法を用いた処理の概念を示すフロー図。
【図3】 処理単位の内容を説明する図。
【図4】 処理単位の内容を説明する図。
【図5】 ステージの階層構造の概念図。
【図6】 ステージをGUI画面に組み合わせた概念図。
【図7】 イベント対応テーブルの概念図。
【図8】 外部イベントと、内部イベントを別々に管理するイベント対応テーブルの概念図。
【図9】 ステージ毎にイベント対応テーブルを管理する場合の概念図。
【図10】 イベントマッチ機構を説明する図
【図11】 一般的なコンピュータの構成を示すブロック図。
【図12】 ユーザがプログラムを作成するときの処理を説明するフロー図。
【図13】 作成するプログラムの処理内容を説明するフロー図。
【図14】 「名簿DB」の構造とデータを説明するイメージ図。
【図15】 モジュールを選択し、上記のプロパティと起動イベントおよび終了イベントを設定するときの表示と操作の一例を示すイメージ図。
【図16】 携帯用端末がプログラムを解釈して、処理を行う場合のフロー図。
【符号の説明】
S1、S2、S3、Sn、E1、E2、En…処理単位。
Claims (4)
- コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳する装置であって、
前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成し、
前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、
前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、
前記実行コードは、
コンピュータを、
処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、
を実施する処理手段として機能させるイベント駆動型の実行制御方法において、
前記コンピュータに対して、
前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出された手続きを複数実行する手順を実施させる、
ことを特徴とする装置。 - コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳するプログラムであって、
前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成し、
前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、
前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、
前記実行コードは、
コンピュータを、
処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、
を実施する処理手段として機能させるイベント駆動型の実行制御方法において、
前記コンピュータに対して、
前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出された手続きを複数実行する手順を実行させる、
ことを特徴とするプログラム。 - コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳する装置の翻訳方法であって、
前記装置は、
前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成するステップを実施し、
前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、
前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、
前記実行コードは、
コンピュータを、
処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、
を実施する処理手段として機能させるイベント駆動型の実行制御方法において、
前記コンピュータに対して、
前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出された手続きを複数実行する手順を実施させる、
ことを特徴とする翻訳方法。 - 請求項2に記載のプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001051886A JP4925514B2 (ja) | 2000-02-29 | 2001-02-27 | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000054944 | 2000-02-29 | ||
JP2000-54944 | 2000-02-29 | ||
JP2000054944 | 2000-02-29 | ||
JP2001051886A JP4925514B2 (ja) | 2000-02-29 | 2001-02-27 | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011265499A Division JP2012094167A (ja) | 2000-02-29 | 2011-12-05 | 内外イベントドリブン方式によるプログラム実行制御方法、記録媒体およびプログラム作成支援システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001318796A JP2001318796A (ja) | 2001-11-16 |
JP4925514B2 true JP4925514B2 (ja) | 2012-04-25 |
Family
ID=26586467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001051886A Expired - Fee Related JP4925514B2 (ja) | 2000-02-29 | 2001-02-27 | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4925514B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132148B2 (en) | 2005-04-29 | 2012-03-06 | Microsoft Corporation | XML application framework |
US20060245096A1 (en) * | 2005-04-29 | 2006-11-02 | Microsoft Corporation | Application framework phasing model |
US8418132B2 (en) | 2005-04-29 | 2013-04-09 | Microsoft Corporation | Application description language |
CN107450813B (zh) * | 2017-06-30 | 2020-02-07 | 武汉斗鱼网络科技有限公司 | 一种自带触发功能的按钮的设计方法与设备 |
JP7380406B2 (ja) | 2020-04-28 | 2023-11-15 | 株式会社デンソー | リアルタイム演算処理装置 |
-
2001
- 2001-02-27 JP JP2001051886A patent/JP4925514B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001318796A (ja) | 2001-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7490298B2 (en) | Creating documentation screenshots on demand | |
JP2006099743A (ja) | 再現可能なテストの自動化に関するテストケース実行挙動を選択するシステムおよび方法 | |
CN101256482A (zh) | 一种嵌入式应用程序的开发***及方法 | |
JP2006048645A (ja) | ドキュメントにコンテキスト情報を埋め込むための方法およびシステム | |
US5781905A (en) | Program generating method combining data item part with database manipulation part | |
JP4925514B2 (ja) | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 | |
TW201324347A (zh) | 功能模組命令管理系統及方法 | |
AU748105B2 (en) | System to associate control with applications using drag and drop interface | |
JP4328328B2 (ja) | ソフトウエア開発ツールプログラム | |
JP4941674B2 (ja) | シミュレーション・システム | |
US7134114B2 (en) | Apparatus, method, and program product for supporting programming | |
JP2007080049A (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
Smyth | Android Studio 3.0 Development Essentials-Android 8 Edition | |
JP7294609B2 (ja) | ソフトウェアの操作シナリオの生成を支援するプログラム、方法およびソフトウェアの操作シナリオの生成を支援する装置 | |
JP5804898B2 (ja) | ソフトウェア開発支援装置及びプログラム | |
JP2012094167A (ja) | 内外イベントドリブン方式によるプログラム実行制御方法、記録媒体およびプログラム作成支援システム | |
JP2013029999A (ja) | テストコード生成装置、テストコード生成方法及びテストコード生成プログラム | |
JP3697274B2 (ja) | ソフトウェア開発支援装置 | |
JP2007115155A (ja) | プログラム構造管理装置及びプログラム構造管理プログラム | |
JP2009053767A (ja) | プログラム解析装置、および、プログラム解析方法 | |
JP2007041707A (ja) | システム設計支援プログラム | |
JPH09305366A (ja) | 画面表示最適化方法 | |
JPH0954688A (ja) | Gui設計支援方法 | |
JP2022132049A (ja) | システム開発支援装置、システム開発支援方法およびシステム開発支援プログラム | |
JP5251863B2 (ja) | ツリ−構造を利用した、ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20070903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071204 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071212 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20071212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090907 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091013 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100108 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100121 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20100226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111205 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120207 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4925514 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |