JP4925514B2 - Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system - Google Patents

Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system Download PDF

Info

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
Application number
JP2001051886A
Other languages
Japanese (ja)
Other versions
JP2001318796A (en
Inventor
篤 高部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Leben Hanbai KK
Original Assignee
Leben Hanbai KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Leben Hanbai KK filed Critical Leben Hanbai KK
Priority to JP2001051886A priority Critical patent/JP4925514B2/en
Publication of JP2001318796A publication Critical patent/JP2001318796A/en
Application granted granted Critical
Publication of JP4925514B2 publication Critical patent/JP4925514B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータソフトウェアの開発技術に係り、特に処理群の制御を効率化するプログラム構造を実現させる技術に関する。
【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】

Figure 0004925514
【0040】
表2に示すように、順位を設ける場合には、アドレス情報部に順位とアドレス部とを設ける等により順位を管理できるものとする。その後、スタック等にすべてのアドレスを格納し、すべてのモジュールが実行処理を終了するまで、次のイベントに対する実行を行なわない制御を行なう。
【0041】
【表2】
Figure 0004925514
【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】
Figure 0004925514
【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】
Figure 0004925514
【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…処理単位。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a computer software development technique, and more particularly to a technique for realizing a program structure for improving the efficiency of processing group control.
[0002]
[Prior art]
In recent years, software development is often performed using a program development tool incorporating an object-oriented concept. In such a program development tool, for example, a programming language having specifications based on C language or BASIC language is used. In addition, parts that make up the appearance of the software, such as buttons and menus, are prepared in advance in the program development tool, and the developer can arrange the software framework by arranging symbols of these parts on the screen as appropriate. Can be created. The arranged buttons and other parts incorporate a mechanism that detects when a user clicks the mouse during software execution. When detected, an event corresponding to the user's operation is generated. It has become. A software developer describes software processing when this event occurs in a programming language corresponding to the software development tool, and develops the software by defining the operation of the software. Such a program development method is generally referred to as a visual development method.
[0003]
[Problems to be solved by the invention]
However, in the above development method, although it is possible to specify the processing for the occurrence of an externally operated event, the description of the program inside the processing is not specified. Therefore, there is a requirement specification that specifies the function of the program and the description structure of the program. Since they do not match, it is difficult to make the description contents of the requirement specifications and the program specifications uniform. This becomes a big problem not only at the time of development, but also at the time of consistency maintenance at the time of version upgrade, bug correction, etc. In addition, due to the visualization, the time spent on creating specifications is omitted, and it is becoming more common to create programs one after another due to the sensitivity of the developer, and there is also a problem that it tends to be an individualistic program. ing.
[0004]
Furthermore, in order to realize the above-described development method, the function of the program development tool itself must be complicated, and problems such as defects in the program development tool and complication of the interface arise.
[0005]
For this reason, the burden on the software developer is large, and training of the software developer requires a lot of time and labor.
[0006]
On the other hand, events generated by the software at the time of execution are mouse operations, keyboard inputs, interrupts, etc. (these are called “external events”), and events centered on internal processing (this is called “internal events”). Is used mostly, and even if it is used, it is mainly a pipe between tasks, mail, or a message for an object, etc., and is left to the discretion of the developer. For this reason, it is difficult to standardize the program structure.
[0007]
The present invention was developed to solve the above-mentioned problems, and its purpose is to improve the efficiency of processing group control during software development and software execution, and to realize a defined and organized program structure. And providing a program creation support system.
[0008]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides: An apparatus for translating a code describing a procedure of a computer into an executable code executable by a computer or an executable code that can be processed by another program, and an event for designating a procedure to be processed subsequent to the procedure; A code that stores a table that is associated with a procedure that is executed in response to the occurrence of an event on a storage device of a computer at the time of execution is generated, and the table is associated with a plurality of the procedures for one event. The event is caused by an internal event generated by the processing module according to a processing state during execution of the processing module constituting a part of the execution code and an external input device. An external event, and the execution code executes the computer at the end of execution of the process or A process of generating an event capable of sending a message to other processing means to perform subsequent processing, and a step of executing the other processing means in response to the occurrence of the event In the event-driven execution control method that functions as a means, the computer identifies and reads one or more procedures associated with the internal event from the table in response to the occurrence of the internal event. An apparatus for executing a procedure for executing a plurality of read procedures when there are a plurality of read procedures I will provide a.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described with reference to the drawings.
[0010]
First, an outline of a computer to which the present invention is applied will be described. FIG. 11 is a block diagram illustrating a configuration of a general computer. In this figure, a computer main body 500 includes a central processing unit (CPU) 501, a main storage device 502, an image processing device 503, an external storage device 504, an input / output control device 505, and a system bus that connects them. 506.
[0011]
A keyboard 507, a mouse 508, and a monitor 509 can be connected to the computer main body 500 via an input / output control device 505. Of course, the computer to which the present invention is applied is not limited to this configuration.
[0012]
The CPU 501 is a device that performs central control of a computer, and has a function of decoding and executing a program. The main storage device 502 has a function of temporarily storing data, programs and the like handled by the computer. The image processing apparatus 503 performs operations for generating an image. The external storage device 504 is composed of a hard disk device or the like, and stores basic software, application software, various other data, and the like in a nonvolatile manner. The input / output control device 505 receives instructions from the operator and performs control when inputting / outputting data to / from an externally connected device.
[0013]
Next, the program execution control system according to the present invention will be described. FIG. 1 is a block diagram showing an outline of a program control system according to the present invention. In this figure, S1, S2,... Sn, E1, E2,. A processing group is constituted by these processing units S1, S2,. These processing units are initialized at the time of program execution (B100), and then activated by the occurrence of a specific external event or internal event as a trigger to start processing (B101). When the process ends, an internal event corresponding to the process unit occurs. A new process is activated in response to this internal event. In this way, processing is performed one after another based on external events and internal events. This connection of processes is called an internal / external event-driven system.
[0014]
Next, an example of processing using an internal / external event-driven program control method will be described. FIG. 2 is a flowchart showing the concept of processing using an internal / external event-driven program control method. 3 and 4 are diagrams for explaining the contents of a processing unit.
[0015]
The process shown in FIG. 2 performs data input check (S1), and if it is normal, opens the file (S2), reads the file (S3), performs a predetermined process (S4), Close (S5) and end. Further, an error check is appropriately performed during the process. This process will be described based on an internal / external event-driven system. Here, S1, S2,... S5, E1, E2, and E3 are processing units in this method.
[0016]
When this process is activated, the processing unit S1 is first executed. That is, when this process is selected by a mouse click of a computer operator, an activation event that is an external event occurs. The processing unit S1 is activated using this activation event as a trigger.
[0017]
In the processing unit S1, as shown in FIG. 3A, an input check (S11) of data input by a computer operator is performed, and an input error is determined (S12). If the input data is within the standard as a result of the input error determination (S12), an internal event S2Event is generated (S13), and if the input data is out of the standard, an internal event E1Event is generated (S14). The processing unit S1 finishes the processing.
[0018]
When S2Event (S13) occurs, the processing unit S2 is activated with S2Event as a trigger as shown in FIG. The processing unit S2 tries to open a file (S21). As a result (S22), if the file open is successful, S3Event is generated (S23). If the file open is unsuccessful, E2Event is generated (S24), and the processing unit S2 ends the processing.
[0019]
When S3Event (S23) occurs, the processing unit S3 is activated using S3Event as a trigger, as shown in FIG. The processing unit S3 tries to read the file (S31). As a result (S32), if the file read is successful, S4Event is generated (S33). If the file read is unsuccessful, E3Event is generated (S34), and the processing unit S3 ends the processing.
[0020]
When S4Event (S33) occurs, the processing unit S4 is activated with S4Event as a trigger, as shown in FIG. The processing unit S4 performs calculation processing (S41). When the calculation process ends, E5Event is generated (S42), and the process unit S4 ends the process.
[0021]
When S5Event (S42) occurs, the processing unit S5 is activated with S5Event as a trigger, as shown in FIG. The processing unit S5 closes the file (S51). Then, this process ends.
[0022]
Next, processing when an error occurs will be described.
[0023]
When E1Event is generated by the code S14, the processing unit E1 is activated using E1Event as a trigger as shown in FIG. The processing unit E1 displays an error (E11). Then, this process ends.
[0024]
When E2Event (S24) occurs, the processing unit E2 is activated using E2Event as a trigger, as shown in FIG. 4B. The processing unit E2 displays an error (E21). Then, this process ends.
[0025]
When E3Event (S34) occurs, the processing unit E3 is activated using E3Event as a trigger as shown in FIG. The processing unit E3 displays an error (E31). Then, S5Event is generated (E32), and the processing unit E3 finishes the processing.
[0026]
As described above, the program control method according to the present invention is based on generating an event according to the branch condition when using an IF (determination) statement during processing. However, it is possible to provide an exception depending on settings in processing provided in advance. And the process after a branch starts another processing unit according to an event. When the processing unit is called as an external function, an internal event is generated by determining the return status.
[0027]
This method does not depend on a specific programming language, and can be applied to any language. Furthermore, it is possible to define a programming language optimized for an internal / external event-driven system.
[0028]
Next, the concept of the stage used in the program control method using the internal / external event-driven method will be described. A stage is a collection of several processes, and a hierarchical structure can be constructed. FIG. 5 is a conceptual diagram of a hierarchical structure of stages.
[0029]
In this figure, stage 0 (30) is the highest stage. Stage 0 has stage 1 (31) and stage 2 (36) as lower stages. Stage 1 has stage 1-1 (32) and stage 1-2 (35) which are lower stages. The stage 1-1 has a subordinate stage 1-1-1 (33) and a stage 1-1-2 (34).
[0030]
Based on the fact that the flow of program execution due to events changes only between stages in the same layer and between adjacent upper and lower stages, movements skipping between stages are not permitted, and errors such as compilers or construction tools Is generated. For this reason, the theoretical structure can be clarified. However, an exception can be made in the processing when a serious error occurs during execution.
[0031]
FIG. 6 is a conceptual diagram in which a stage is combined with a GUI (Graphical User Interface) screen.
[0032]
In this figure, the entire screen (40) is the highest stage (Stage 1) in this example. The entire screen (40) includes a displayed item 1 (41), a displayed item 2 (42), a button 1 (43), a button 2 (44), and a group of buttons ( 45) as lower stages, which are lower stages of Stage1. That is, in this example, the entire screen 40 that is the highest stage is defined first, and then the items 41 and 42, buttons 43 and 44, and the screen operation button group 45 that are each processing unit are defined as lower stages belonging to Stage1. Will be.
[0033]
As described above, the program control method based on the internal / external event-driven method executes various processing units using an external event and an internal event as a trigger. As a result, each processing unit can be shortened and the control structure can be clarified, so that the program can be easily standardized. In addition, since error processing can be described independently as one processing unit, it is possible to avoid multiple definitions, complicated hierarchies, and the like.
[0034]
On the other hand, at the time of development, a break for each event or a break for each processing unit can be easily realized, so that efficient debugging work including division of labor can be performed.
[0035]
Next, a compiler for a program using an internal / external event-driven method will be described. This compiler has means for managing external events and internal events and creating an event correspondence table, and the event correspondence table is created at the time of compilation. The compiler also has means for managing the stage.
[0036]
FIG. 7 shows a conceptual diagram of the event correspondence table. In the figure, reference numeral 100 denotes an event correspondence table. Reference numeral 200 denotes a program code group (201a, 201b,... 201y) for each processing unit. The event correspondence table 100 includes an event ID part 101 and a process execution address part 102. The event ID unit 101 manages an event identification code, and the process execution address unit 102 manages a start address of a program code of a processing unit to be activated with an event as a trigger.
[0037]
The address here is not limited to the start address of the program code, but may be a process execution symbol, No, an Internet URL address, or the like. In this example, there is one process execution address, but a plurality of process execution addresses may be specified.
[0038]
There may be a plurality of processing modules (processing units) that are activated in response to the generated internal / external event, and the activation of the plurality of processing modules is, for example, an activation method in which an order is determined, or multitasking, multithreading In addition, as shown in Table 1, it is possible to use a method of starting the multi-CPU by allocating to the Internet server.
[0039]
[Table 1]
Figure 0004925514
[0040]
As shown in Table 2, when a ranking is provided, the ranking can be managed by providing a ranking and an address portion in the address information portion. Thereafter, all addresses are stored in the stack or the like, and control is performed so as not to execute the next event until all modules finish the execution process.
[0041]
[Table 2]
Figure 0004925514
[0042]
When allocating to a mechanism such as a multi-thread, a program by an internal / external event-driven system can be activated on the processing side, and the end code in this case is an event code for the activation source.
[0043]
FIG. 8 is a conceptual diagram of an event correspondence table that manages internal events and external events separately. In the figure, reference numeral 110 is an internal event correspondence table, and reference numeral 120 is an external event correspondence table. Other structures are the same as the event correspondence table of FIG.
[0044]
FIG. 9 is a conceptual diagram when the event correspondence table is managed for each stage. In the figure, reference numerals 50, 51, 52, 53, and 54 are event tables arranged for each stage. At the time of processing execution, a processing unit is identified by an event correspondence table corresponding to each stage.
[0045]
Next, a CPU that executes an internal / external event-driven program will be described. The internal / external event-driven program can be executed by a general CPU. In this case, the event correspondence table created at the time of compiling is stored in the main memory when the program is loaded, so that the corresponding processing is performed with reference to the event correspondence table at the time of execution.
[0046]
Further, by using a CPU optimized for the internal / external event-driven system, the internal / external event-driven system program can be executed at higher speed. A CPU that is optimized for an internal / external event-driven system and has an event management function is referred to as an “Event Code CPU”. As the event code CPU, for example, an event bus dedicated to event signals may be provided. By providing such an event bus, it is possible to perform event control, reference to an event correspondence table, determination, activation of a processing module, etc. without interposing an address bus / data bus. It is also possible to implement an event management memory provided with a memory area dedicated to the event correspondence table. An instruction code for generating an event can also be executed via this bus.
[0047]
Generally, in order to execute in a multiprocessor environment, it is necessary to synchronize each process. However, in the internal / external event-driven method of the present invention, processing is allocated to another CPU for each processing unit, and when the end event of each processing is completed, the event of the next processing can be generated. Easy to take. For this reason, what has been consciously managed by a program in a multiprocessor environment until now can be easily constructed by using this method. In addition, the utilization efficiency of each CPU can be increased.
[0048]
Here, a process of generating an event of the next process when the above-described end events of each process are completed will be described. A mechanism for realizing this processing is called an event matching mechanism. FIG. 10 is a diagram for explaining the event matching mechanism. In this figure, when process 1 (301) is completed, Event1 (302) is generated, when process 2 (303) is completed, Event2 (304) is generated, and when process 3 (305) is completed, Event3 (306) is generated. Will occur. When all of Event 1 (302), Event 2 (304), and Event 3 (306) are generated, Event 4 (307) is generated. The order of occurrence of Event1 (302), Event2 (304), and Event3 (306) does not matter. The process 4 (308) starts the process with the Event 4 (307) as a trigger. In this way, synchronization can be achieved even when each process is allocated to each processor. In addition to performing these processes on a program, they can be incorporated into firmware and behave as if they were external events outside the program. Further, there may be a case where a plurality of processes for an event occur other than the multiprocessor, and the next event is generated after all the processes that have occurred are completed.
[0049]
Further, even if not all of them are completed, the next event may be generated even when a predetermined event condition occurs, and another process may be started. Examples of defined event conditions include the occurrence of a severe error event, event logic synthesis, time over, and the like. In addition, when a plurality of processing modules are started, each processing is started as a separate task and the next processing module is executed when a predetermined event occurs in the method of waiting for an event return from each task. After executing the module, an event from another task occurs. There are a method of ignoring this event and a method of executing the next processing module continuously. In the method of continuing, the next process can be performed by starting another task or the like. Execution processing is expanded by this method, and a plurality of results are obtained. This method enables parallel information collection on the network, parallel information processing on the database, and the like.
[0050]
Next, a specific embodiment of program construction using the internal / external event driven system will be described. In this embodiment, a case will be described in which a program for extracting data satisfying a predetermined condition is created from personal data registered in a name list database in advance in a portable terminal.
[0051]
As described above, the portable terminal can be realized by the hardware configuration shown in FIG. However, in order to place importance on portability, the keyboard 507 is usually integrated with the main body 500, and the monitor 509 is also integrated with the main body 500 by adopting a liquid crystal screen. In some cases, the mouse 508 is not connected and is replaced by a key or the like provided on the keyboard 507. .
[0052]
The portable terminal is not limited to a downsized computer, and for example, a mobile phone can be used. In this case, a dial push button can be used as the keyboard 507.
[0053]
In this embodiment, a tool for supporting program creation is recorded in advance in the external storage device (auxiliary storage device) 504 of the portable terminal. This tool applies an internal / external event-driven system. By using this tool, the user can easily create a program that performs a desired operation.
[0054]
FIG. 12 is a flowchart for explaining processing when a user creates a program. As shown in the flowchart, the user selects a processing module (S101), and repeats the setting of properties of the processing module (S102) and the operation of setting the relationship between the processing modules (S103) (S104). Thus, a desired program can be created. The relationship between the processing modules realizes the above-described internal / external event driven system. Note that the processing module selection processing (S101), property setting (S102), and operation for setting the relationship between processing modules (S103) are not necessarily performed in this order, and the actual processing order is determined by the user. It is entrusted.
[0055]
That is, in the present embodiment, the portable terminal has a means for accepting selection of a processing module, a means for accepting setting contents of a property for a processing module that has accepted the selection, and setting contents of a relationship between the selected processing modules. And at least receiving means. In addition, it is possible to have means for displaying a list of processing modules, means for displaying accepted setting contents, and the like.
[0056]
In this embodiment, processing modules as shown in Table 3 as examples are prepared. Each processing module defines a processing module ID, a processing module name, and a processing content. A property corresponding to the processing content is provided.
[0057]
[Table 3]
Figure 0004925514
[0058]
The processing module ID and the processing module name are identifiers for identifying the processing module. The processing content defines a predetermined processing module operation, for example, “designate input and output files”. The property is an item for the user to set specific processing of the processing module, for example, the file name of the input file.
[0059]
Of course, these processing modules are examples, and the present invention is not limited to these.
[0060]
In such a case, a procedure for creating a program for causing the portable terminal to perform the processing shown in the flowchart of FIG. 13 will be described.
[0061]
In the process in the flowchart, first, an input / output file is set (S201). Next, it is determined whether next data exists in the input file (S202). If the next data does not exist, the processed data is displayed (S206), an end message is displayed (S207), and the process is terminated. If the next data exists, the data is read (S203). Next, it is determined whether or not the read data satisfies a predetermined condition (S204). If it is satisfied, the data is written to the output file (S205).
[0062]
Thereafter, the process returns to S202 again, and it is determined whether or not the next data exists in the input file, and the subsequent processing is repeated.
[0063]
Specifically, a person who satisfies a predetermined condition is extracted from information in the name list file 600 (file name “name list DB”) registered in the auxiliary storage device 504 in advance, and a new file (file name “extraction name list”) is extracted. )) Is created.
[0064]
Here, the “name list DB” has a structure and data as shown in FIG. 14 and includes data items related to the name 601, the telephone number 602, the mail address 603, and the group 604. The extraction condition is “the group is A”.
[0065]
At the time of creating a program, the portable terminal displays a processing module list in which processing module names are listed on the liquid crystal screen 509 so that the user's selection can be accepted. The user can select a desired processing module using an input device such as the keyboard 507.
[0066]
For example, when the user performs processing for specifying an input file and an output file, a processing module called “file configuration processing” with ID001M in which “specification of input file and output file” is defined as processing can be selected. .
[0067]
The selected processing module accepts the property settings. The property is a parameter for controlling the processing module and can be set by the user.
[0068]
In this embodiment, this module has three properties. The first property is an input file setting. The second property is an output file setting. The third property is an output file configuration setting.
[0069]
A property value is displayed by selecting a group of items that can be specified, and the user selects and sets the property value. Of course, the user can arbitrarily input depending on the property.
[0070]
Here, for the first property, a list of files that can be read by the portable terminal is displayed and the user's selection is accepted. The second property can accept selection from a list of files that can be written, and can accept any file designation of the user. The third property is a property for setting the configuration of the output file set by the second property. Here, since the process of writing out data satisfying a predetermined condition among the data included in the read file is performed, the configuration of the output file is assumed to be the same as the configuration of the input file.
[0071]
By setting these properties, if this module is processed during program execution, the file set in the first property becomes the current file for data reading, and the second property for data writing. The set file becomes the current file. It is assumed that the current file specification is defined in advance as the specification of the processing module.
[0072]
The processing module selected by the user accepts the setting of an event (start event) that triggers the start of the processing module and an event (end event) that occurs when the processing module ends. By setting these events, the user can define the relationship between the processing modules, thereby enabling desired program control.
[0073]
Here, it is assumed that the “file configuration processing” module is executed when the program is started, and if the event that occurs when the program starts is S1, S1 is set as the startup event of the “file configuration processing” module. Although the end event can be set arbitrarily, it is assumed here that event S2 occurs.
[0074]
Depending on the processing module, a plurality of end events can be set. Thereby, for example, in the case of a processing module that performs a branch process, it is possible to generate an event according to the result of the branch condition determination. It is also possible to set a plurality of activation events and adjust the processing procedure for each activation event. In this case, for example, when a processing module is called for the first time, initialization is performed and predetermined processing is performed, and when returning from a lower stage, control can be performed without performing initialization. It becomes. Furthermore, an event may be set in the property.
[0075]
Next, the input file data is read line by line (S203), and data satisfying a predetermined condition (S204) is written to the output file (S205). The program is created for the last data of the input file (S202). Will be described.
[0076]
The user can select the “repetitive processing” module in correspondence with the above processing (S202). In the “repetitive processing” module, “repeatedly perform lower-stage processing” is defined as processing. That is, if the stage to which this module is applied is the highest stage 0, the processing module activated by this module is stage 1, which is a lower stage.
[0077]
One property is prepared for the “repetition processing” module. This property specifies the condition for repeating the process. Here, “read data exists” can be selected as the property value. By performing such settings, the portable terminal performs predetermined processing of the data in the “name list DB”, which is the current input file, line by line up to the last line.
[0078]
The activation event of the “repetition processing” module can be set to S2 if it is desired to activate the “file configuration processing” module after the completion. The end event generates S11 when the repetition condition is satisfied, and generates an END event when the repetition condition is not satisfied. Here, by generating the END event, the program processing can be terminated when the program is executed.
[0079]
Similarly, the user can select a processing module for realizing the flow diagram shown in FIG. 13 and specify each property and event.
[0080]
FIG. 15 is an image diagram showing an example of display and operation when a module is selected and the above properties, start event, and end event are set. In this figure, reference numeral 700 denotes a display image when a module is selected, and “file configuration processing”, “repetition processing”, and “display processing” are selected by the user. Here, the module relating to the highest stage 0 is selected. In each module, a start event and an end event are set by the user. Also, the user can change the event settings on this screen.
[0081]
In this state, when the designation of the part displayed as “file configuration processing” is received, the portable terminal displays a screen 710 displaying the properties of “file configuration processing”. A property number 711 and a property name 712 are arranged on the property setting screen 710. The designation from the user may be received by, for example, displaying an arrow pointer on the liquid crystal screen 509 and moving the pointer by a predetermined button operation by the user so as to accept the designation of the pointed portion.
[0082]
For example, when the designation of the property name portion displayed as “input file” is accepted, a screen 720 for accepting property settings is displayed on the liquid crystal screen 509. User property settings can be accepted on this screen.
[0083]
On the other hand, since the module “repetition processing” can call the processing of the lower stage, an asterisk “*” indicating that fact is displayed in the corresponding column of the lower stage 704. When the designation of the “*” portion from the user is accepted, the portable terminal displays on the liquid crystal screen 509 a screen 730 for accepting selection of the module of stage 1 which is a lower module. Then, the user setting is accepted in the same manner as described above.
[0084]
In this way, the user can set and confirm the processing content on the liquid crystal screen 509 of the portable terminal.
Table 4 shows the processing modules and properties, start events, and end events selected in this example. The activation event here is represented by alphanumeric characters, but is not limited thereto, and may be a name, No, or the like. Alternatively, it may be created by another information processing apparatus such as a personal computer and downloaded to a portable terminal.
[0085]
[Table 4]
Figure 0004925514
[0086]
Next, processing when the portable terminal executes a program created by the user by the above method will be described.
[0087]
The portable terminal has control means for interpreting a program and performing processing. This process is performed based on, for example, the flowchart shown in FIG.
[0088]
When the control means receives a program execution command from the user (S301), it generates an S1 event (S302). Then, a processing module having the S1 event as a startup event is called (S303).
[0089]
The called processing module performs predetermined processing according to the specified processing content and the specified property value (S304). When the process ends, an end event that is predetermined or according to the process result is generated (S305).
[0090]
Then, it is determined whether or not the end event is an END event indicating the end of the program (S306).
[0091]
As a result, if the event is an END event, the execution of the program is terminated. On the other hand, if it is not an END event, a processing module that is activated by an end event is called (S303). At this time, when the upper stage is called, the storage area secured when the lower stage is executed is released. And the process after S304 is repeated.
[0092]
In the above description, the data definition and usage method are not described, but the data definition is internally held or automatically secured by each processing module. The effective use range of data shall be mutually effective within the upper level or within its own stage.
[0093]
In the method of using the data defined area, the data definition, name, symbol, attribute, structure, etc. are defined in advance, and the data is moved, converted, calculated, etc. by specifying the name in the properties of each processing module To do. For this reason, in this execution system, a data management module for processing these is incorporated. In addition, the support system has a function of checking a list of data or a correlation between data areas designated by each processing module and pointing out a designation error. In the support system, a conventional flowchart, an event list, a structure, and the like may be displayed, an execution simulation function, a debugging function, and the like may be added.
[0094]
Thus, according to the present embodiment, a desired program can be easily created by selecting a processing module, specifying a property, and managing an event. For this reason, it is not necessary to learn complicated programming language grammar, and it is possible to give everyone the opportunity to program. In addition, it is possible to apply to a thought support system that supports human thinking by verifying a test result by changing an event of a processing module with a certain logic.
[0095]
【Effect of the invention】
As described above, according to the present invention, it is possible to improve the efficiency of control of processing groups during software development and software execution, and to realize a defined and organized program structure.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an outline of a program control system according to the present invention.
FIG. 2 is a flowchart showing the concept of processing using an internal / external event-driven program control method.
FIG. 3 is a diagram for explaining the contents of a processing unit.
FIG. 4 is a diagram for explaining the contents of a processing unit.
FIG. 5 is a conceptual diagram of a hierarchical structure of stages.
FIG. 6 is a conceptual diagram in which a stage is combined with a GUI screen.
FIG. 7 is a conceptual diagram of an event correspondence table.
FIG. 8 is a conceptual diagram of an event correspondence table for managing external events and internal events separately.
FIG. 9 is a conceptual diagram when managing an event correspondence table for each stage.
FIG. 10 is a diagram for explaining an event matching mechanism.
FIG. 11 is a block diagram showing a configuration of a general computer.
FIG. 12 is a flowchart illustrating processing when a user creates a program.
FIG. 13 is a flowchart for explaining processing contents of a program to be created.
FIG. 14 is an image diagram illustrating the structure and data of a “name list DB”.
FIG. 15 is an image diagram showing an example of display and operation when a module is selected and the above properties, start event, and end event are set.
FIG. 16 is a flowchart when a portable terminal interprets a program and performs processing.
[Explanation of symbols]
S1, S2, S3, Sn, E1, E2, En... Processing unit.

Claims (4)

コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳する装置であって、
前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成し、
前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、
前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、
前記実行コードは、
コンピュータを、
処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、
を実施する処理手段として機能させるイベント駆動型の実行制御方法において、
前記コンピュータに対して、
前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出された手続きを複数実行する手順を実施させる、
ことを特徴とする装置。
An apparatus that translates code describing a computer procedure into executable code executable by a computer or executable code that can be processed by another program,
Wherein an event that specifies the procedures to carry out the connection processing after the procedure, the table that associates a procedure to be executed in response to occurrence of said event, generates code that is stored in a storage device of a computer at run time,
The table includes information in which a plurality of procedures are associated with one event,
The event includes an internal event generated by the processing module according to a processing state during execution of the processing module constituting a part of the execution code, and an external event generated due to an external input device. And
The execution code is
Computer
Generating an event that can send a message to another processing means that should perform subsequent processing at the end of execution of the processing or at the time of execution;
Causing the other processing means to execute in response to the occurrence of the event;
In the event-driven execution control method that functions as processing means for implementing
For the computer
In response to the occurrence of the internal event, the one or more procedures associated with the internal event, read and identified from the table, when the procedure has been read there are multiple, the read procedure Have a procedure to execute multiple times,
A device characterized by that.
コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳するプログラムであって、
前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成し、
前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、
前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、
前記実行コードは、
コンピュータを、
処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、
を実施する処理手段として機能させるイベント駆動型の実行制御方法において、
前記コンピュータに対して、
前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出された手続きを複数実行する手順を実行させる、
ことを特徴とするプログラム。
A program that translates code that describes computer procedures into executable code that can be executed by a computer or executable code that can be processed by another program,
Wherein an event that specifies the procedures to carry out the connection processing after the procedure, the table that associates a procedure to be executed in response to occurrence of said event, generates code that is stored in a storage device of a computer at run time,
The table includes information in which a plurality of procedures are associated with one event,
The event includes an internal event generated by the processing module according to a processing state during execution of the processing module constituting a part of the execution code, and an external event generated due to an external input device. And
The execution code is
Computer
Generating an event that can send a message to another processing means that should perform subsequent processing at the end of execution of the processing or at the time of execution;
Causing the other processing means to execute in response to the occurrence of the event;
In the event-driven execution control method that functions as processing means for implementing
For the computer
In response to the occurrence of the internal event, the one or more procedures associated with the internal event, read and identified from the table, when the procedure has been read there are multiple, the read procedure Have multiple steps executed,
A program characterized by that.
コンピュータの手続きを記述したコードを、コンピュータが実行可能な実行コードあるいは他のプログラムが処理可能な実行コードに翻訳する装置の翻訳方法であって、
前記装置は、
前記手続きの後続処理を行うべき手続きを指定するイベントと、該イベントの発生に応動して実行する手続きとを対応させたテーブルを、実行時にコンピュータの記憶装置上に格納させるコードを生成するステップを実施し、
前記テーブルには、一のイベントについて複数の前記手続きが対応付けられた情報が含まれ、
前記イベントには、前記実行コードの一部を構成する処理モジュールの実行中に前記処理モジュールが処理状態に応じて発生させる内部イベントと、外部入力装置に起因して発生する外部イベントと、が含まれ、
前記実行コードは、
コンピュータを、
処理の実行終了時、もしくは、実行時において、後続処理を行うべき他の処理手段に対してメッセージを送付可能なイベントを発生させるステップと、
前記イベントの発生に応動して、前記他の処理手段を実行させるステップと、
を実施する処理手段として機能させるイベント駆動型の実行制御方法において、
前記コンピュータに対して、
前記内部イベントの発生に応じて、前記内部イベントに対応づけられた手続きを一つ又は複数、前記テーブルから特定して読み出し、読み出された手続きが複数ある場合には、読み出された手続きを複数実行する手順を実施させる、
ことを特徴とする翻訳方法。
A translation method for an apparatus for translating a code describing a computer procedure into an executable code executable by a computer or an executable code that can be processed by another program,
The device is
Generating a code for storing an event that specifies the procedures to carry out the connection processing after the procedure, a table that associates a procedure to be executed in response to occurrence of the event, on the memory of a computer at run time Carried out
The table includes information in which a plurality of procedures are associated with one event,
The event includes an internal event generated by the processing module according to a processing state during execution of the processing module constituting a part of the execution code, and an external event generated due to an external input device. And
The execution code is
Computer
Generating an event that can send a message to another processing means that should perform subsequent processing at the end of execution of the processing or at the time of execution;
Causing the other processing means to execute in response to the occurrence of the event;
In the event-driven execution control method that functions as processing means for implementing
For the computer
In response to the occurrence of the internal event, the one or more procedures associated with the internal event, read and identified from the table, when the procedure has been read there are multiple, the read procedure Have a procedure to execute multiple times,
A translation method characterized by the above.
請求項2に記載のプログラムを記録した記録媒体。  A recording medium on which the program according to claim 2 is recorded.
JP2001051886A 2000-02-29 2001-02-27 Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system Expired - Fee Related JP4925514B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001051886A JP4925514B2 (en) 2000-02-29 2001-02-27 Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2000-54944 2000-02-29
JP2000054944 2000-02-29
JP2000054944 2000-02-29
JP2001051886A JP4925514B2 (en) 2000-02-29 2001-02-27 Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011265499A Division JP2012094167A (en) 2000-02-29 2011-12-05 Program execution control method by internal/external event driven procedure, recording medium and program creation support system

Publications (2)

Publication Number Publication Date
JP2001318796A JP2001318796A (en) 2001-11-16
JP4925514B2 true JP4925514B2 (en) 2012-04-25

Family

ID=26586467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001051886A Expired - Fee Related JP4925514B2 (en) 2000-02-29 2001-02-27 Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system

Country Status (1)

Country Link
JP (1) JP4925514B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
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 (en) * 2017-06-30 2020-02-07 武汉斗鱼网络科技有限公司 Design method and device of button with trigger function
JP7380406B2 (en) 2020-04-28 2023-11-15 株式会社デンソー Real-time arithmetic processing unit

Also Published As

Publication number Publication date
JP2001318796A (en) 2001-11-16

Similar Documents

Publication Publication Date Title
US7490298B2 (en) Creating documentation screenshots on demand
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
JP2006099743A (en) System and method for selecting test case execution behavior of reproducible test automation
CN101256482A (en) Development system and method for built-in application program
JP2006048645A (en) Method and system for embedding context information in document
US5781905A (en) Program generating method combining data item part with database manipulation part
JP4925514B2 (en) Program execution control method, program, execution control apparatus, and recording medium by internal / external event driven system
TW201324347A (en) System and method for managing commands of function module
AU748105B2 (en) System to associate control with applications using drag and drop interface
JP4328328B2 (en) Software development tool program
US7134114B2 (en) Apparatus, method, and program product for supporting programming
JP2009223471A (en) Simulation system
JP2007080049A (en) Built-in program generation method, built-in program development system and information table section
Smyth Android Studio 3.0 Development Essentials-Android 8 Edition
JP7294609B2 (en) Program, Method, and Device for Supporting Software Operation Scenario Generation
JP5804898B2 (en) Software development support apparatus and program
JP2012094167A (en) Program execution control method by internal/external event driven procedure, recording medium and program creation support system
JP2013029999A (en) Test code generation device, test code generation method, and test code generation program
JP3697274B2 (en) Software development support device
JP2007115155A (en) Program structure management device and program structure management program
JP2007041707A (en) System design support program
JPH09305366A (en) Screen display optimization method
JPH0954688A (en) Gui design supporting method
JP2022132049A (en) System development support apparatus, system development support method, and system development support program
JP5251863B2 (en) Program for recording user interface component information and recording / reproducing user interface operations using a tree structure

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