(57)【要約】      （修正有）【課題】ソフトウェア開発時およびソフトウェア実行時において、処理群の制御を効率化するとともに、規定・整理されたプログラム構造を実現させる技術およびプログラム作成支援システムを提供する。【解決手段】複数の処理部からなるコンピュータプログラムの実行制御方法であって、前記処理部の実行終了時、もしくは、実行時において、他の処理部に対してメッセージを送付可能なイベントを発生させるステップと、前記イベントの発生を監視するステップと、前記イベントの発生に応動して、他の処理部を実行させるステップとからなる。【選択図】図１
2012094167.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムの実行制御方法であって、
前記コンピュータプログラムは、発生したイベントに対応して実行される複数の処理部で構成され、
前記処理部の実行終了時、もしくは、実行時において、イベントを発生させるステップと、
前記イベントの発生を監視するステップと、
前記イベントの発生に応動して、他の処理部を実行させるステップとを有する
ことを特徴としたコンピュータプログラムの実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータソフトウェアの開発技術に係り、特に処理群の制御を効率化するプログラム構造を実現させる技術に関する。
【背景技術】
【０００２】
近年のソフトウェア開発は、オブジェクト指向の考え方を取り入れたプログラム開発ツールを用いて行うことが多い。このようなプログラム開発ツールにおいては、例えばＣ言語、ＢＡＳＩＣ言語に基づいた仕様のプログラミング言語が使用される。また、プログラム開発ツールには、ソフトウェアの外観を構成する部品、例えばボタン、メニュー等が予め用意されており、開発者はこれらの部品のシンボルを画面上に適宜配置することにより、ソフトウェアの枠組みを作成することができる。配置されたボタン等の部品には、ソフトウェア実行時にユーザのマウス操作によってクリックされたこと等を検知する仕組みが組み込まれており、検知した場合には、ユーザの操作に応じたイベントを発生させるようになっている。ソフトウェア開発者は、このイベントが発生した場合の、ソフトウェアの処理を、ソフトウェア開発ツールに応じたプログラミング言語で記載して、ソフトウェアの動作を規定することにより、ソフトウェアの開発を行う。このようなプログラム開発方法は、一般にビジュアル化された開発方法と称されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、上記の開発方法では、外部操作したイベント発生に対する処理の規定は行えるが、処理内部のプログラムの記述については規定されないため、プログラムの機能を規定する要求仕様書と、プログラムの記述構造とが一致しないため、要求仕様書と、プログラム仕様書との記述内容の統一性をとることが困難である。このことは、開発時のみならず、バージョンアップ時の整合性保持、バグ修正時等において大きな問題となる。また、ビジュアル化により、仕様書作成に費やす時間が省略され、開発者の感性により逐次プログラムを作成していくという形態が多くとられるようになり、個人主義的なプログラムになりやすいという問題も生じている。
【０００４】
さらには、上記の開発方法を実現させるためには、プログラム開発ツール自身の機能を複雑化せざるを得ず、プログラム開発ツールの不具合、インタフェースの煩雑化等の問題が生ずる。
【０００５】
このため、ソフトウェア開発者の負担が大きく、ソフトウェア開発者の育成も多大な時間と労力が必要とされることとなっている。
【０００６】
一方、ソフトウェアが、実行時に発生させるイベントは、マウス操作、キーボード入力、割り込み等（これらを「外部イベント」と称する）であり、内部的な処理を中心としたイベント（これを「内部イベント」と称する）については、ほとんど使用されておらず、使用されたとしても、タスク間のパイプ、メール、あるいは、オブジェクトに対するメッセージ等が主であり、開発者の裁量に委ねられている。このため、プログラム構造の標準化が困難となっている。
【０００７】
本発明は、上記の課題を解決するために開発されたもので、その目的は、ソフトウェア開発時およびソフトウェア実行時において、処理群の制御を効率化するとともに、規定・整理されたプログラム構造を実現させる技術およびプログラム作成支援システムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明は、複数の処理部からなるコンピュータプログラムの実行制御方法であって、前記処理部の実行終了時、もしくは、実行時において、他の処理部に対してメッセージを送付可能なイベントを発生させるステップと、前記イベントの発生を監視するステップと、前記イベントの発生に応動して、他の処理部を実行させるステップとからなることを特徴としたコンピュータプログラムの実行制御方法を提供する。
【発明の効果】
【０００９】
上述のように、本発明によれば、ソフトウェア開発時およびソフトウェア実行時において、処理群の制御を効率化するともに、規定・整理されたプログラム構造を実現することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明によるプログラム制御方式の概要を示すブロック図。
【図２】内外イベントドリブン方式のプログラム制御法を用いた処理の概念を示すフロー図。
【図３】処理単位の内容を説明する図。
【図４】処理単位の内容を説明する図。
【図５】ステージの階層構造の概念図。
【図６】ステージをＧＵＩ画面に組み合わせた概念図。
【図７】イベント対応テーブルの概念図。
【図８】外部イベントと、内部イベントを別々に管理するイベント対応テーブルの概念図。
【図９】ステージ毎にイベント対応テーブルを管理する場合の概念図。
【図１０】イベントマッチ機構を説明する図
【図１１】一般的なコンピュータの構成を示すブロック図。
【図１２】ユーザがプログラムを作成するときの処理を説明するフロー図。
【図１３】作成するプログラムの処理内容を説明するフロー図。
【図１４】「名簿ＤＢ」の構造とデータを説明するイメージ図。
【図１５】モジュールを選択し、上記のプロパティと起動イベントおよび終了イベントを設定するときの表示と操作の一例を示すイメージ図。
【図１６】携帯用端末がプログラムを解釈して、処理を行う場合のフロー図。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について図面を参照して説明する。
【００１２】
まず、本発明が適用されるコンピュータの概要について説明する。図１１は、一般的なコンピュータの構成を示すブロック図である。本図において、コンピュータ本体５００は、中央演算処理装置（ＣＰＵ）５０１と、主記憶装置５０２と、画像処理装置５０３と、外部記憶装置５０４と、入出力制御装置５０５と、これらを接続するシステムバス５０６とを備えている。
【００１３】
コンピュータ本体５００には、入出力制御装置５０５を介して、キーボード５０７と、マウス５０８と、モニタ５０９とが接続できる。もちろん、本発明が適用されるコンピュータは本構成に限られるものではない。
【００１４】
ＣＰＵ５０１は、コンピュータの中心的な制御を行う装置で、プログラムを解読して、実行する機能を有している。主記憶装置５０２は、コンピュータが取り扱うデータ、プログラム等を一時的に格納する機能を有している。画像処理装置５０３は、画像を生成するための演算等を行う。外部記憶装置５０４は、ハードディスク装置等から構成され、基本ソフト、アプリケーションソフト、その他各種データ等が不揮発的に格納される。入出力制御装置５０５は、操作者の指示を受け付けるとともに、データを外部に接続された装置に入出力する際の制御を行う。
【００１５】
次に、本発明によるプログラム実行制御方式について説明する。図１は、本発明によるプログラム制御方式の概要を示すブロック図である。本図において、Ｓ１、Ｓ２・・・Ｓｎ、Ｅ１、Ｅ２・・・Ｅｎは処理単位である。これらの処理単位Ｓ１、Ｓ２・・・Ｅｎによって処理群が構成される。これらの処理単位は、プログラム実行時において初期化（Ｂ１００）された後、特定の外部イベントもしくは内部イベントの発生をトリガーとして起動し、処理を開始する（Ｂ１０１）。そして、処理が終了すると、処理単位に応じた内部イベントが発生する。この内部イベントに対応して新たな処理が起動する。このようにして、外部イベントと内部イベントを元に次々と処理が行われる。この処理の連結を内外イベントドリブン方式と称する。
【００１６】
次に、内外イベントドリブン方式のプログラム制御法を用いた処理の一例を説明する。図２は、内外イベントドリブン方式のプログラム制御法を用いた処理の概念を示すフロー図である。図３、図４は、処理単位の内容を説明する図である。
【００１７】
図２で示す処理は、データの入力チェックを行い（Ｓ１）、正常であればファイルをオープンし（Ｓ２）、そのファイルを読み込み（Ｓ３）、所定の処理（Ｓ４）を行った後、ファイルをクローズして（Ｓ５）終了する。また、処理の途中には適宜エラーチェックが行われる。この処理について内外イベントドリブン方式に基づいて説明する。ここで、Ｓ１、Ｓ２…Ｓ５、Ｅ１、Ｅ２、Ｅ３は本方式における処理単位である。
【００１８】
本処理が起動すると、まず処理単位Ｓ１を実行する。すなわち、コンピュータ操作者のマウスクリック等により本処理が選択されると、外部イベントである起動イベントが発生する。この起動イベントをトリガーとして処理単位Ｓ１が起動する。
【００１９】
処理単位Ｓ１では、図３（ａ）に示すように、コンピュータ操作者により入力されたデータの入力チェック（Ｓ１１）を行い、入力エラーの判断（Ｓ１２）を行う。入力エラー判断（Ｓ１２）の結果、入力データが規格内であれば、内部イベントであるＳ２Ｅｖｅｎｔを発生させ（Ｓ１３）、入力データが規格外であれば、内部イベントであるＥ１Ｅｖｅｎｔを発生させ（Ｓ１４）、処理単位Ｓ１は処理を終える。
【００２０】
Ｓ２Ｅｖｅｎｔ（Ｓ１３）が発生すると、図３（ｂ）に示すように処理単位Ｓ２が、Ｓ２Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｓ２は、ファイルのオープンを試みる（Ｓ２１）。その結果（Ｓ２２）、ファイルオープンが成功であれば、Ｓ３Ｅｖｅｎｔを発生させ（Ｓ２３）、ファイルオープンが失敗であれば、Ｅ２Ｅｖｅｎｔを発生させ（Ｓ２４）、処理単位Ｓ２は、処理を終える。
【００２１】
Ｓ３Ｅｖｅｎｔ（Ｓ２３）が発生すると、図３（ｃ）に示すように処理単位Ｓ３が、Ｓ３Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｓ３は、ファイルのリードを試みる（Ｓ３１）。その結果（Ｓ３２）、ファイルリードが成功であれば、Ｓ４Ｅｖｅｎｔを発生させ（Ｓ３３）、ファイルリードが失敗であれば、Ｅ３Ｅｖｅｎｔを発生させ（Ｓ３４）、処理単位Ｓ３は、処理を終える。
【００２２】
Ｓ４Ｅｖｅｎｔ（Ｓ３３）が発生すると、図３（ｄ）に示すように処理単位Ｓ４が、Ｓ４Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｓ４は、計算処理を行う（Ｓ４１）。計算処理を終えると、Ｅ５Ｅｖｅｎｔを発生させ（Ｓ４２）、処理単位Ｓ４は、処理を終える。
【００２３】
Ｓ５Ｅｖｅｎｔ（Ｓ４２）が発生すると、図３（ｅ）に示すように処理単位Ｓ５が、Ｓ５Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｓ５は、ファイルをクローズする（Ｓ５１）。そして本処理が終了する。
【００２４】
次に、エラーが発生した場合の処理について説明する。
【００２５】
符号Ｓ１４により、Ｅ１Ｅｖｅｎｔが発生すると、図４（ａ）に示すように処理単位Ｅ１が、Ｅ１Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｅ１は、エラー表示を行う（Ｅ１１）。そして本処理が終了する。
【００２６】
Ｅ２Ｅｖｅｎｔ（Ｓ２４）が発生すると、図４（ｂ）に示すように処理単位Ｅ２が、Ｅ２Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｅ２は、エラー表示を行う（Ｅ２１）。そして本処理が終了する。
【００２７】
Ｅ３Ｅｖｅｎｔ（Ｓ３４）が発生すると、図４（ｃ）に示すように処理単位Ｅ３が、Ｅ３Ｅｖｅｎｔをトリガーとして起動する。処理単位Ｅ３は、エラー表示を行う（Ｅ３１）。そして、Ｓ５Ｅｖｅｎｔを発生させ（Ｅ３２）、処理単位Ｅ３は、処理を終える。
【００２８】
このように、本発明によるプログラム制御方式は、処理中にＩＦ（判定）文を用いるときは、その分岐条件に応じたイベントを発生させることを基本とする。ただし、前もって提供する処理等における設定等により例外を設けることが可能である。そして、分岐後の処理は、イベントに応じた別処理単位を起動させる。また、処理単位が外部関数として呼び出されたときは、リターンステータスの判定により、内部イベントを発生させる。
【００２９】
なお、本方式は特定のプログラミング言語に依存するものではなく、あらゆる言語について適用することが可能である。さらには、内外イベントドリブン方式に最適化したプログラミング言語を定義することも可能である。
【００３０】
次に、内外イベントドリブン方式によるプログラム制御方法に用いられるステージの概念について説明する。ステージは、いくつかの処理がまとまったもので、階層構造を構築することができる。図５は、ステージの階層構造の概念図である。
【００３１】
本図において、ステージ０（３０）が最上位のステージである。ステージ０は、下位ステージであるステージ１（３１）とステージ２（３６）とを有している。ステージ１は、下位ステージであるステージ１−１（３２）とステージ１−２（３５）とを有している。ステージ１−１は、下位ステージである１−１−１（３３）とステージ１−１−２（３４）とを有している。
【００３２】
イベントによるプログラムの実行の流れは、同層ステージ間、および、上下に隣接するステージ間のみで推移することを基本として、間のステージを飛ばした移動は認められず、コンパイラあるいは構築ツール等でエラーを発生させる。このため、理論構造の明瞭化が可能となる。ただし、実行時に重大なエラーが発生した場合等の処理に例外を設けることができる。
【００３３】
図６は、ステージをＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面に組み合わせた概念図である。
【００３４】
本図において、画面全体（４０）が、本例での最上位ステージ（Ｓｔａｇｅ１）である。画面全体（４０）は、表示される項目１（４１）と、表示される項目２（４２）と、ボタン１（４３）と、ボタン２（４４）と、画面を操作するためのボタン群（４５）を下位ステージとして有しており、これらはＳｔａｇｅ１の下位ステージである。すなわち本例では、最上位ステージである画面全体４０をまず定義し、次に、各処理単位である項目４１、４２、ボタン４３、４４、画面操作ボタン群４５を、Ｓｔａｇｅ１に属する下位ステージとして定義することとなる。
【００３５】
以上に示したように、内外イベントドリブン方式によるプログラム制御方法は、外部イベントと、内部イベントをトリガーとして、さまざまな処理単位を実行させる。これにより、一つ一つの処理単位を短くすることができ、かつ、制御構造を明確化することができるため、プログラムの標準化が容易に可能となる。また、エラー処理も一つの処理単位として独立して記述できるため、複数定義、階層の複雑化等を回避することが可能となる。
【００３６】
一方、開発時においては、イベント単位のブレークあるいは処理単位ごとのブレークが簡易に実現できるため、分業化を含めた効率的なデバッグ作業を行うことが可能となる。
【００３７】
次に、内外イベントドリブン方式を用いたプログラムのコンパイラーについて説明する。本コンパイラーは、外部イベントと内部イベントとを管理し、イベント対応テーブルを作成する手段を有しており、コンパイル時にイベント対応テーブルが作成される。また、本コンパイラーは、ステージを管理する手段を有している。
【００３８】
図７は、イベント対応テーブルの概念図を示したものである。本図において、符号１００はイベント対応テーブルである。符号２００は、処理単位のプログラムコード群（２０１ａ、２０１ｂ、…２０１ｙ）である。イベント対応テーブル１００は、イベントＩＤ部１０１と、処理実行アドレス部１０２を備えている。イベントＩＤ部１０１は、イベントの識別コードを管理し、処理実行アドレス部１０２は、イベントをトリガーとして起動する処理単位のプログラムコードの先頭アドレスを管理する。
【００３９】
ここでのアドレスは、プログラムコードの先頭アドレスに限られず、処理実行記号、Ｎｏ、インターネットＵＲＬアドレス等であってもよい。また、本例では処理実行アドレスが１個であるが、複数個指定可能としてもよい。
【００４０】
発生した内外イベントに対して起動される処理モジュール（処理単位）は複数個存在してもよく、複数個の処理モジュールの起動は、例えば、順位を定めた起動方式、あるいは、マルチタスク、マルチスレッド、マルチＣＰＵを起動させる方式、さらには、表１に示すように、インターネットサーバに振り分けて起動させる方式とすることができる。
【００４１】
【表１】
2012094167.tif 000003
【００４２】
表２に示すように、順位を設ける場合には、アドレス情報部に順位とアドレス部とを設ける等により順位を管理できるものとする。その後、スタック等にすべてのアドレスを格納し、すべてのモジュールが実行処理を終了するまで、次のイベントに対する実行を行なわない制御を行なう。
【００４３】
【表２】
2012094167.tif 000004
【００４４】
マルチスレッド等の機構に振り分ける場合、処理を受けた側にも内外イベントドリブン方式によるプログラムが起動されるようにすることができ、この場合の終了コードは、起動元に対するイベントコードになる。
【００４５】
図８は、内部イベントと、外部イベントを別々に管理するイベント対応テーブルの概念図である。本図において、符号１１０は、内部イベント対応テーブルであり、符号１２０は、外部イベント対応テーブルである。その他の構造は図７のイベント対応テーブルと同様である。
【００４６】
図９は、ステージ毎にイベント対応テーブルを管理する場合の概念図である。本図において、符号５０、５１、５２、５３、５４は、ステージ毎に整列されたイベントテーブルである。処理実行時には、各ステージに対応したイベント対応テーブルにより、処理単位が識別される。
【００４７】
次に、内外イベントドリブン方式のプログラムを実行するＣＰＵについて説明する。内外イベントドリブン方式のプログラムは、一般的なＣＰＵにおいて実行可能である。この場合、コンパイル時に作成されたイベント対応表を、プログラムロード時にメインメモリに格納することにより、実行時にイベント対応表を参照して、該当する処理を行う。
【００４８】
また、内外イベントドリブン方式に最適化されたＣＰＵを用いることによって、内外イベントドリブン方式のプログラムはさらに高速に実行可能となる。内外イベントドリブン方式に最適化され、イベント管理機能を持つＣＰＵを「Ｅｖｅｎｔ  Ｃｏｄｅ  ＣＰＵ」と称する。Ｅｖｅｎｔ  Ｃｏｄｅ  ＣＰＵとしては、例えば、イベント信号専用のイベントバスを設けることが考えられる。このようなイベントバスを設けることにより、アドレスバス・データバスを介在させずに、イベント制御、イベント対応表の参照、判断、処理モジュールの起動等を行うことが可能となる。また、イベント対応表専用のメモリ領域等を設けたイベント管理メモリを実装することも可能である。また、イベント発生用の命令コードも、このバスを介して行うことも可能である。
【００４９】
一般に、マルチプロセッサ環境で実行させるためには、各処理の同期を取る必要がある。しかし、本発明の内外イベントドリブン方式では、処理単位ごとに別ＣＰＵに処理を割り振り、各処理の終了イベントが出揃った時点で、次処理のイベントを発生させることが可能で、処理間の同期を取ることが容易となる。このため、マルチプロセッサ環境で、今まで同期をプログラムで意識管理していたものが、本方式を利用することで構築が簡単にできるようになる。また、各ＣＰＵの利用効率を高めることができる。
【００５０】
ここで、上述の各処理の終了イベントが出揃った時点で、次処理のイベントを発生させる処理について説明する。本処理を実現させる機構をイベントマッチ機構と称する。図１０は、イベントマッチ機構を説明する図である。本図において、処理１（３０１）が終了すると、Ｅｖｅｎｔ１（３０２）が発生し、処理２（３０３）が終了すると、Ｅｖｅｎｔ２（３０４）が発生し、処理３（３０５）が終了するとＥｖｅｎｔ３（３０６）が発生する。そして、Ｅｖｅｎｔ１（３０２）と、Ｅｖｅｎｔ２（３０４）と、Ｅｖｅｎｔ３（３０６）とのすべてが発生すると、Ｅｖｅｎｔ４（３０７）が発生するようになっている。Ｅｖｅｎｔ１（３０２）と、Ｅｖｅｎｔ２（３０４）と、Ｅｖｅｎｔ３（３０６）との発生順序は問わない。処理４（３０８）はＥｖｅｎｔ４（３０７）をトリガーとして処理を開始する。このようにして、各処理を各プロセッサに割り振った場合にも、同期を取ることが可能となる。また、これらの処理はプログラム上で行う以外にも、ファームウェアに組み込んで、プログラム外で、あたかも外部イベントのような振る舞いとすることも可能である。さらに、マルチプロセッサ以外でも、イベントに対する処理が複数発生するケースもあり、このときも発生した処理がすべて終了した後に、次イベントを生成する。
【００５１】
また、すべてが終了しなくても、定められたイベント条件が発生した場合にも次イベントを発生させ、他の処理を開始させるようにしてもよい。定められたイベント条件の例としては、重大エラーイベントの発生、イベント論理合成、タイムオーバー等があげられる。また、処理モジュールを複数起動させる際に各処理を別タスクとして起動させ、各タスクからのイベントの戻りを待つ方式において、定められたイベントが発生した場合に次処理モジュールを実行するが、次処理モジュールを実行後に、他のタスクからのイベントが発生する。このイベントを無視する方式と、継続的に次処理モジュールを実行する方式がある。継続する方式は、次処理を別タスクの起動等により処理が可能となる。この方式により実行処理が拡大し、得られる結果も複数となる。この方式によりネット上での並列情報収集、データベース上での並列情報処理等が可能になる。
【００５２】
次に、内外イベントドリブン方式を用いたプログラム構築の具体的な実施例について説明する。本実施例では、携帯用端末機において、あらかじめ名簿データベースに登録された人物データから、所定の条件を満たすデータを抽出するプログラムを作成する場合について説明する。
【００５３】
携帯用端末機は、前述のように図１１に示したハードウェア構成で実現できる。ただし、携帯性を重視するため、通常、キーボード５０７は本体５００と一体化されており、モニタ５０９は液晶画面が採用されて、やはり本体５００と一体化される。また、マウス５０８は接続されずに、キーボード５０７に設けられたキー等によって代用される場合もある。。
【００５４】
携帯用端末機としては、コンピュータを小型化したものに限らず、例えば携帯電話を用いることができる。この場合は、キーボード５０７としてダイヤル用のプッシュボタンを用いることができる。
【００５５】
本実施例では、携帯用端末機の外部記憶装置（補助記憶装置）５０４には、プログラム作成を支援するためのツールがあらかじめ記録されている。このツールは内外イベントドリブン方式を適用したものである。ユーザは、このツールを用いることにより、目的の動作を行うプログラムを容易に作成することができる。
【００５６】
図１２は、ユーザがプログラムを作成するときの処理を説明するフロー図である。本フロー図に示すように、ユーザは、処理モジュールを選択し（Ｓ１０１）、その処理モジュールのプロパティの設定（Ｓ１０２）と、処理モジュール間の関係を設定する作業（Ｓ１０３）とを繰り返す（Ｓ１０４）ことにより所望のプログラムを作成することができる。そして、処理モジュール間の関係は、上述の内外イベントドリブン方式を実現したものである。なお、処理モジュールの選択処理（Ｓ１０１）と、プロパティの設定（Ｓ１０２）と、処理モジュール間の関係を設定する作業（Ｓ１０３）とは、必ずしもこの順に行う必要はなく、実際の処理順序はユーザに委ねられる。
【００５７】
すなわち、本実施例において、携帯用端末は、処理モジュールの選択を受付ける手段と、選択を受け付けた処理モジュールについて、プロパティの設定内容を受付ける手段と、選択された処理モジュール同士の関係の設定内容を受付ける手段とを少なくとも有している。そしてさらには、処理モジュールを一覧表示する手段、受付けた設定内容を表示する手段等を有することができる。
【００５８】
本実施例では、表３に例として示すような処理モジュールが用意されている。処理モジュールにはそれぞれ、処理モジュールＩＤと、処理モジュール名と、処理内容とが定義されている。そして、処理内容に応じたプロパティが設けられている。
【００５９】
【表３】
2012094167.tif 000005
【００６０】
処理モジュールＩＤと、処理モジュール名とは、処理モジュールを識別するための識別子である。処理内容には、あらかじめ定められた処理モジュールの動作、例えば、「入力ファイルと出力ファイルを指定する」等が規定される。プロパティは、ユーザが処理モジュールの具体的処理、例えば、入力ファイルのファイル名等の設定を行う項目である。
【００６１】
もちろん、これらの処理モジュールは、例示であり、本発明はこれらに限定されるわけではない。
【００６２】
このような場合において、携帯用端末に、図１３のフロー図で示す処理を行わせるプログラムを作成する場合の手順について説明する。
【００６３】
本フロー図における処理は、まず入出力ファイルの設定を行う（Ｓ２０１）。次に、入力ファイルに次データが存在するかどうかを判断する（Ｓ２０２）。そして、次データが存在しない場合は、処理済みのデータの表示処理（Ｓ２０６）を行なった後、終了メッセージを表示し（Ｓ２０７）、処理を終了する。次データが存在していれば、そのデータを読み込む（Ｓ２０３）。次に、読み込んだデータが所定の条件を満たしているかどうかを判断する（Ｓ２０４）。そして、満たしている場合には、そのデータを出力ファイルに書き出す（Ｓ２０５）。
【００６４】
その後、再びＳ２０２に戻り、入力ファイルに次データが存在するかどうかを判断して、以降の処理を繰り返す。
【００６５】
具体的には、あらかじめ、補助記憶装置５０４に登録されている名簿ファイル６００（ファイル名「名簿ＤＢ」）の情報から、所定の条件を満たす人物を抽出し、新たなファイル（ファイル名「抽出名簿」）を作成する処理を行うものとする。
【００６６】
ここで、「名簿ＤＢ」は、図１４に示すような構造とデータを有しており、氏名６０１、電話番号６０２、メールアドレス６０３、グループ６０４に関するデータ項目を含んでいる。そして、抽出する条件は「グループがＡである」とする。
【００６７】
プログラム作成時において、携帯用端末は、液晶画面５０９に、処理モジュール名をリスト化した処理モジュール一覧表を表示し、ユーザの選択を受付け可能にする。ユーザは、キーボード５０７等の入力装置を用いて、所望の処理モジュールを選択することができる。
【００６８】
例えば、ユーザが入力ファイルと出力ファイルを指定する処理を行う場合は、処理として「入力ファイルと出力ファイルの指定」が定義されているＩＤ００１Ｍの「ファイル構成処理」という処理モジュールを選択することができる。
【００６９】
選択された処理モジュールは、プロパティの設定内容を受付ける。プロパティとは、処理モジュールの制御用パラメータであり、ユーザが設定することができる。
【００７０】
本実施例において、本モジュールはプロパティが３つ用意されている。第１のプロパティは、入力ファイルの設定である。第２のプロパティは出力ファイルの設定である。そして、第３のプロパティは出力ファイルの構成の設定である。
【００７１】
プロパティの値は、指定可能なアイテム群が表示され、その中からユーザが選択して設定する。もちろん、プロパティの性質によってはユーザが任意に入力するようにすることもできる。
【００７２】
ここでは、第１のプロパティについては、当該携帯用端末で読み込むことのできるファイルの一覧表示を行い、ユーザの選択を受付ける。第２のプロパティは書き出し可能なファイルの一覧表示からの選択を受付けるとともに、ユーザの任意なファイル指定についても受付け可能とすることができる。第３のプロパティは、第２のプロパティで設定した出力ファイルの構成を設定するプロパティである。ここでは、読み込んだファイルに含まれるデータのうち、所定の条件を満たすデータを書き出す処理を行うため、出力ファイルの構成は、入力ファイルの構成と同様であるとする。
【００７３】
これらのプロパティを設定することにより、プログラム実行時に本モジュールの処理を行うと、データ読み込みについては、第１のプロパティに設定されているファイルがカレントファイルとなり、データ書き出しについては、第２のプロパティに設定されているファイルがカレントファイルとなる。このカレントファイルの規定は処理モジュールの仕様として前もって定義されているものとする。
【００７４】
ユーザにより選択された処理モジュールは、その処理モジュール起動のトリガーとなるイベント（起動イベント）と、処理モジュールが終了したときに発生するイベント（終了イベント）の設定を受付ける。ユーザは、これらのイベントを設定することにより、処理モジュール間の関係を定めることができ、これにより所望のプログラム制御を行うことが可能となる。
【００７５】
ここで、「ファイル構成処理」モジュールは、プログラム起動時に行うこととし、プログラム起動時に発生するイベントがＳ１であるとすると、「ファイル構成処理」モジュールの起動イベントにはＳ１を設定する。また終了イベントは任意に設定できるがここではイベントＳ２が発生するものとする。
【００７６】
なお、処理モジュールによっては、終了イベントを複数設定することができる。これにより、たとえば、分岐処理を行う処理モジュールの場合には、分岐条件判断の結果に応じたイベントを発生させることが可能となる。また、起動イベントを複数設定可能にして、起動イベント毎に処理手順を調整するようにすることもできる。この場合、例えば、処理モジュールが最初に呼ばれたときには初期化を行った上で所定の処理を行い、下位ステージから戻ってきたときには、初期化を行わずに所定の処理を行うといった制御が可能となる。さらには、プロパティにイベントを設定できるようにしてもよい。
【００７７】
次に、入力ファイルのデータを１行ずつ読み込み（Ｓ２０３）、所定の条件を満たすデータ（Ｓ２０４）を出力ファイルに書き出す（Ｓ２０５）処理を入力ファイルの最後のデータまで行う（Ｓ２０２）場合のプログラム作成について説明する。
【００７８】
ユーザは上記の処理（Ｓ２０２）に対応して、「繰り返し処理」モジュールを選択することができる。「繰り返し処理」モジュールは処理として「下位ステージの処理を繰り返し行う」が定義されている。すなわち、本モジュールが適用されるステージが最上位のステージ０だったとすると、本モジュールにより起動する処理モジュールは、下位ステージであるステージ１となる。
【００７９】
「繰り返し処理」モジュールはプロパティが１つ用意されている。このプロパティには、処理を繰り返す条件を指定する。ここでは、プロパティ値として「読み込みデータが存在」を選択することができる。このような設定を行うことにより、携帯用端末は、カレント入力ファイルである「名簿ＤＢ」のデータを１行ずつ、最後の行まで所定の処理を行うことになる。
【００８０】
そして、「繰り返し処理」モジュールの起動イベントは、「ファイル構成処理」モジュール終了後に起動させたい場合にはＳ２を設定することができる。また、終了イベントは、繰り返し条件を満たしている場合はＳ１１を発生させ、繰り返し条件を満たしていない場合はＥＮＤイベントを発生させるものとする。ここで、ＥＮＤイベントを発生させることで、プログラム実行時には、プログラム処理を終了させることができる。
【００８１】
以下同様に、ユーザは、図１３に示したフロー図を実現するための処理モジュールを選択し、それぞれのプロパティおよびイベントを指定することができる。
【００８２】
図１５は、モジュールを選択し、上記のプロパティと起動イベントおよび終了イベントを設定するときの表示と操作の一例を示すイメージ図である。本図において符号７００は、モジュールが選択されたときの表示イメージで、「ファイル構成処理」と「繰り返し処理」と、「表示処理」とがユーザにより選択されている。また、ここでは、最上位のステージ０に関するモジュールが選択されている。そして、それぞれのモジュールには起動イベントと終了イベントがユーザにより設定されている。また、ユーザは、この画面でイベントの設定を変更することができる。
【００８３】
この状態で、「ファイル構成処理」と表示されている部分の指定を受付けると、携帯用端末は、「ファイル構成処理」のプロパティを表示する画面７１０を表示する。プロパティを設定する画面７１０には、プロパティの番号７１１と、プロパティ名７１２とが配置されている。なお、ユーザからの指定の受付は、例えば矢印型のポインタを液晶画面５０９に表示させ、ユーザの所定のボタン操作によりポインタを移動させ、ポイントしている部分の指定を受付けるようにすればよい。
【００８４】
そして、例えば「入力ファイル」と表示されているプロパティ名の部分を指定を受付けると、プロパティの設定を受付ける画面７２０を液晶画面５０９に表示する。この画面でユーザのプロパティの設定を受付けることができる。
【００８５】
一方、モジュール「繰り返し処理」は、下位ステージの処理を呼ぶことができるため、下位ステージ７０４の該当する欄に、その旨を明示するアスタリスク「＊」が表示される。そして、ユーザからの「＊」の部分の指定を受付けると、携帯用端末は下位モジュールであるステージ１のモジュールの選択を受付ける画面７３０を液晶画面５０９に表示する。そして、前述同様にユーザの設定を受付ける。
【００８６】
このように、ユーザは携帯用端末の液晶画面５０９上で、処理内容を設定し、確認することができる
表４は、本例において選択した処理モジュールとプロパティ、起動イベントおよび終了イベントを示している。ここでの起動イベントは英数字で表しているが、これに限られず、名称、Ｎｏ等とすることもできる。また、他の情報処理装置、例えばパーソナルコンピュータで作成し、携帯用端末にダウンロードするようにしてもよい。
【００８７】
【表４】
2012094167.tif 000006
【００８８】
次に、上述の方法によってユーザが作成したプログラムを、携帯用端末が実行する場合の処理について説明する。
【００８９】
携帯用端末は、プログラムを解釈して、処理を行う制御手段を有している。この処理は、例えば、図１６に示すフロー図に基づいて行われる。
【００９０】
制御手段はユーザからプログラム実行の命令を受付けると（Ｓ３０１）、Ｓ１イベントを発生させる（Ｓ３０２）。そして、Ｓ１イベントを起動イベントとする処理モジュールを呼び出す（Ｓ３０３）。
【００９１】
呼び出された処理モジュールは、規定された処理内容とプロパティの指定値に従って所定の処理を行う（Ｓ３０４）。そして、処理が終了すると、あらかじめ定められた、あるいは、処理結果に応じた終了イベントを発生させる（Ｓ３０５）。
【００９２】
そして、終了イベントがプログラムの終了を意味するＥＮＤイベントであるかどうかの判断を行う（Ｓ３０６）。
【００９３】
その結果、ＥＮＤイベントであった場合は、プログラムの実行を終了する。一方、ＥＮＤイベントでない場合は、終了イベントにより起動する処理モジュールを呼び出す（Ｓ３０３）。このとき、上位ステージが呼び出されたときは、下位ステージ実行時に確保した記憶エリアを開放する。そして、Ｓ３０４以降の処理を繰り返す。
【００９４】
上記の説明において、データ定義、使用方法については記述されていないが、データ定義は、各処理モジュールが内部的に保有、または、自動確保するようにする。データの有効使用範囲は上位または自ステージ内で相互に有効とする。
【００９５】
データ定義したエリアを使用する方法においては、データ定義として、名称、記号、属性、構造体等を前もって定義し、各処理モジュールのプロパティに名称を指定することで、データの移動、変換、計算等を行なう。このため、この実行システムでは、これらを処理するデータ管理モジュールが組み込まれることになる。また、支援システムでは、データの一覧あるいは各処理モジュールで指定されるデータエリア相互の相関をチェックし、指定誤りを指摘する機能等を有する。また、支援システムにおいては、従来のフローチャート、イベント一覧、構造等を表示したり、実行シミュレーションを行なう機能、デバック機能等を加えてもよい。
【００９６】
このように、本実施例によれば、処理モジュールを選択し、プロパティを指定するとともに、イベントの管理を行うことによって簡便に所望のプログラムを作成することができる。このため、複雑なプログラミング言語文法を習得する必要がなく、万人にプログラムの機会を与えることが可能となる。また、処理モジュールのイベントを一定の論理で変化させる等により、結果を試しながら検証することで人間の思考を支援する思考支援システムへの応用も可能となる。
本願発明は、下記態様で表すこともできる。
＜１＞
複数の処理部からなるコンピュータプログラムの実行制御方法であって、
前記処理部の実行終了時、もしくは、実行時において、他の処理部に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生を監視するステップと、
前記イベントの発生に応動して、他の処理部を実行させるステップと
からなることを特徴としたコンピュータプログラムの実行制御方法。
＜態様２＞
前記態様１記載のコンピュータプログラムの実行制御方法であって、
他の処理部を実行させるステップは、予め定められた１のイベントまたは予め定められた複数のイベントのすべてが発生したときに実行されること
を特徴としたコンピュータプログラムの実行制御方法。
＜態様３＞
コンピュータの手続きを記述したコードを、コンピュータが実行可能なコードあるいは他のプログラムが処理可能なコードに翻訳するプログラムであって、
前記手続きの実行中に発行されるイベントと、該イベントの発生に応動して実行する手続きのアドレスとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成することを特徴とするプログラム。
＜態様４＞
複数の処理部を実行する処理と、
前記処理部の実行終了時、もしくは、実行時において、他の処理部に対してメッセージを送付可能なイベントを発生する処理と、
前記イベントの発生を監視する処理と、
前記イベントの発生に応動して、他の処理部を実行する処理とを
コンピュータに実行させるためのプログラム。
＜態様５＞
プログラムの作成を支援するシステムであって、
あらかじめ固有の処理内容を定義されたモジュール群を選択可能に表示する表示手段と、
前記モジュールの選択を受付けるモジュール選択受付手段と、
選択された２以上のモジュールについて、モジュールの制御パラメータと、モジュール同士の関連を定める情報とを受付けるモジュール情報受付け手段と、
を備えることを特徴とするプログラム作成支援システム。
＜態様６＞
前記モジュール同士の関連を定める情報は、選択されたモジュールの起動条件となるイベント識別子と、選択されたモジュールの処理過程において発生させるイベント識別子である前記態様５記載のプログラム作成支援システム。
＜態様７＞
前記選択されたモジュールを階層的に管理する手段を有することを特徴とする請求項５記載のプログラム作成支援システム。
＜態様８＞
あらかじめ固有の処理内容を定義したモジュール群を選択可能に表示させる処理と、
前記モジュールの選択を受付ける処理と、
選択された２以上のモジュールについて、モジュールの制御パラメータと、モジュール同士の関連を定める情報とを受付ける処理と、
を情報処理装置に実行させるためのプログラム。
＜態様９＞
情報処理装置を用いたプログラムの作成方法であって、
あらかじめ固有の処理内容が定義されたモジュール群からモジュールを選択する段階と、
選択した２以上のモジュールについて、モジュールの制御パラメータと、モジュール同士の関連を定める情報とを入力する段階と、
を有することを特徴とするプログラム作成方法。
＜態様１０＞
前記態様３、４および８のいずれか一項に記載のプログラムを記録した記録媒体。
【符号の説明】
【００９７】
Ｓ１、Ｓ２、Ｓ３、Ｓｎ、Ｅ１、Ｅ２、Ｅｎ…処理単位。
【図１】
2012094167.tif 000007
【図２】
2012094167.tif 000008
【図３】
2012094167.tif 000009
【図４】
2012094167.tif 000010
【図５】
2012094167.tif 000011
【図６】
2012094167.tif 000012
【図７】
2012094167.tif 000013
【図８】
2012094167.tif 000014
【図９】
2012094167.tif 000015
【図１０】
2012094167.tif 000016
【図１１】
2012094167.tif 000017
【図１２】
2012094167.tif 000018
【図１３】
2012094167.tif 000019
【図１４】
2012094167.tif 000020
【図１５】
2012094167.tif 000021
【図１６】
2012094167.tif 000022