JPH11175369A - Program development supporting device, program development supporting method and medium recording program development supporting program - Google Patents
Program development supporting device, program development supporting method and medium recording program development supporting programInfo
- Publication number
- JPH11175369A JPH11175369A JP9339608A JP33960897A JPH11175369A JP H11175369 A JPH11175369 A JP H11175369A JP 9339608 A JP9339608 A JP 9339608A JP 33960897 A JP33960897 A JP 33960897A JP H11175369 A JPH11175369 A JP H11175369A
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution
- information
- scenario
- comparison
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は情報処理装置のソフ
トウェアプログラムの開発を支援するための装置及び方
法に係り、特に、高信頼のプログラムの作成・実行を可
能とするプログラム開発支援装置、プログラム開発支援
方法及びプログラム開発支援プログラムを記録した媒体
に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus and a method for supporting the development of a software program for an information processing apparatus, and more particularly, to a program development support apparatus and a program development which enable creation and execution of a highly reliable program. The present invention relates to a support method and a medium recording a program development support program.
【0002】[0002]
【従来の技術】近年、半導体集積回路技術の進歩によ
り、複雑なプロセッサ及び大容量のメモリが小型かつ低
価格で実現できるようになり、多数のプロセッサからな
る並行処理システムや分散処理システムとして構築され
たハードウエアが実用化されている。このようなハード
ウエアに対しては、並列プログラムや分散処理プログラ
ム等の専用のプログラム(以下「並行プログラム」とい
う)を用いなければならない。2. Description of the Related Art In recent years, with the advance of semiconductor integrated circuit technology, a complicated processor and a large capacity memory can be realized at a small size and at a low price, and a parallel processing system or a distributed processing system including a large number of processors has been constructed. Hardware has been put to practical use. For such hardware, a dedicated program such as a parallel program or a distributed processing program (hereinafter referred to as a “parallel program”) must be used.
【0003】この並行プログラムは、複数のプロセスが
同時並行的に動作するプログラムであって、その一類型
としては、複数のCPUを有する並列計算機上で、複数
のプログラムが物理的に並行に動くプログラムが挙げら
れる。また、単一のCPU上で物理的には逐次的に動作
する場合であっても、マルチタスクシステムのように複
数のプロセスが論理的に並行に動作するプログラムは、
並行プログラムである。なお、このように物理的又は論
理的な並行性を持つシステムを並行システムと呼び、並
行システムにおいては一般に並行プログラムが動作す
る。このような並行プログラムをいかに効率よく開発す
るかは、優れたアルゴリズムを検討する場合と同様に重
要な課題となっている。[0003] The parallel program is a program in which a plurality of processes operate concurrently in parallel. One type is a program in which a plurality of programs run physically in parallel on a parallel computer having a plurality of CPUs. Is mentioned. In addition, even when physically operating sequentially on a single CPU, a program in which a plurality of processes operate logically in parallel, such as a multitask system,
It is a concurrent program. A system having such physical or logical concurrency is called a concurrent system, and a concurrent program generally runs in the concurrent system. How to develop such a concurrent program efficiently is an important issue as in the case of examining an excellent algorithm.
【0004】ところで、プログラム開発においては、テ
スト・デバッグと呼ばれる工程が開発効率に大きく影響
する。このテスト・デバッグとは、プログラム中のバグ
を見付け修正することであり、通常の逐次プログラムの
開発では比較的容易に行うことができるものである。し
かし、並行プログラムの開発においては、「非決定性
(nondeterminism)」と呼ばれる並行プ
ログラム特有の性質に基づく問題を考慮する必要があ
る。つまり、並行プログラムを構成する各プロセスは、
各プロセス間における相互作用のタイミングによって、
通常の逐次プログラムでは遭遇することのない様々な振
る舞いをする可能性があり、これを一般に「非決定性」
と呼ぶ。並行プログラムは、この「非決定性」を持って
いるために、プログラム全体が正しく動作しないという
事態が生じる可能性を含んでいる。In program development, a process called test / debug greatly affects development efficiency. The test / debugging is to find and correct a bug in a program, and can be performed relatively easily in the development of a normal sequential program. However, in the development of a concurrent program, it is necessary to consider a problem based on a characteristic of the concurrent program called "nondeterminism". In other words, each process that makes up the concurrent program
Depending on the timing of the interaction between each process,
They can behave in a variety of ways that are not encountered in a regular sequential program, and are commonly referred to as "non-deterministic"
Call. Concurrent programs include the possibility that, due to this "non-determinism", the whole program may not operate correctly.
【0005】ここで、「非決定性」を持つプログラムと
は、プログラムの実行時の挙動が非決定的であるプログ
ラムと定義づけることができる。これに対し、入力が決
まれば挙動が一意に決まるプログラムは決定的なプログ
ラムと呼ぶ。上記の並行プログラムは「非決定性」を持
つプログラムの代表例であるが、プログラムそのものに
は並行性がない場合でも、外部からの入力のタイミング
などで実行順序に「非決定性」が発生する場合もある。
例えば、IF−THENルール型のプログラムでは、外
部からの入力のタイミングでルールの実行順序が変わっ
てしまう場合がある。また、プログラム言語の意味論が
あいまいであり、処理系によって挙動が異なる場合、あ
るいは処理系の不安定性によって挙動が異なる場合、な
どの原因により生じる挙動の「非決定性」もある。Here, a program having "non-determinism" can be defined as a program whose behavior at the time of execution of the program is non-deterministic. On the other hand, a program whose behavior is uniquely determined when an input is determined is called a definitive program. The above parallel program is a typical example of a program with "non-determinism" .However, even if the program itself has no concurrency, "non-determinism" may occur in the execution order due to the timing of external input etc. is there.
For example, in an IF-THEN rule-type program, the execution order of rules may change at the timing of input from the outside. In addition, there is “non-determinism” in behavior caused by causes such as when the semantics of the programming language is ambiguous and the behavior differs depending on the processing system, or when the behavior differs depending on the instability of the processing system.
【0006】このような「非決定性」は、「良い非決定
性」、「無害の非決定性」、「悪い非決定性」に分類す
ることができる。このうち「良い非決定性」は、プログ
ラムの設計者の実現したい非決定性であり、この「良い
非決定性」が存在することによって、外部からの非決定
的な入力があっても、これに対して適切に応答すること
ができ、プロセスの柔軟性、再利用性、拡張性が実現可
能となる。[0006] Such "nondeterminism" can be classified into "good nondeterminism", "harmless nondeterminism", and "bad nondeterminism". Of these, “good non-determinism” is the non-determinism that the program designer wants to realize, and the existence of this “good non-determinism” makes it possible to respond to external non-deterministic inputs And the process is flexible, reusable and scalable.
【0007】また、「無害の非決定性」とは、その非決
定的な選択肢の選択が、実行効率に影響することはあっ
ても、最終的に得られる結果には悪影響を与えない場合
の非決定性である。[0007] "Harmless non-determinism" refers to non-determinism in which the selection of a non-deterministic option does not adversely affect the final result, although it may affect execution efficiency. It is.
【0008】一方、「悪い非決定性」とは、設計者が予
想・期待しない非決定性であり、しばしばプログラムの
機能不全を生じさせるものである。すなわち、人間の一
般的思考形態は本来逐次的であるため、並行プログラム
の複数のプロセス間で実際に生じ得るすべての場面を網
羅して予想することは困難である。このため、設計時に
は予想しなかったケースが、実際の並行プログラムの実
行においては多々発生する。[0008] On the other hand, "bad nondeterminism" is nondeterminism that a designer does not expect or expect, and often causes malfunction of a program. In other words, since the general form of thinking of human beings is sequential in nature, it is difficult to predict all situations that can actually occur between a plurality of processes of a concurrent program. For this reason, many cases that were not expected at the time of design occur in the execution of the actual concurrent program.
【0009】以上のような並行プログラムに代表される
「非決定性」を持つプログラムに対して、テスト・デバ
ッグを行うことは、テストケースの組合せ的爆発やバグ
の再現性のなさ等の問題が生じるため、非常に難しい作
業である。これに対処するために、例えば、並行プログ
ラムの作成支援装置及び生成支援方法として、特開平8
−16429号に示すものが提案されている。これは、
並行プログラムを一旦逐次化することにより、従来の逐
次プログラムに対するのと同様の容易さでテスト・デバ
ッグを行い、その後、並行性を復元するものである。Performing test / debugging on a program having "non-determinism" typified by the above-mentioned concurrent programs causes problems such as combinatorial explosion of test cases and lack of reproducibility of bugs. This is a very difficult task. To deal with this, for example, Japanese Patent Application Laid-Open No.
No. 16429 has been proposed. this is,
By serializing a concurrent program once, test / debug is performed with the same ease as for a conventional sequential program, and thereafter, parallelism is restored.
【0010】このように、オリジナルの並行プログラム
の並行構造に関する情報を保ちながら逐次化したプログ
ラムを「超逐次プログラム」と呼ぶ。このような「超逐
次プログラム」を作成し、これに対してテスト・デバッ
グを行うプログラム開発支援装置の一例を、図18に示
す。すなわち、このプログラム開発支援装置は、逐次化
手段22、テスト・デバッグ手段26、良い非決定性導
入手段27、並行化手段24を有している。[0010] A program serialized while maintaining information on the parallel structure of the original parallel program is called a "super-sequential program". FIG. 18 shows an example of a program development support device for creating such a “super-sequential program” and performing test / debugging on the “super-sequential program”. That is, this program development support device includes the serialization unit 22, the test / debugging unit 26, the good non-deterministic introduction unit 27, and the parallelization unit 24.
【0011】このようなプログラム開発支援装置におい
ては、並行プログラム1は逐次化手段22によって超逐
次プログラム23とされ、この超逐次プログラム23に
対してテスト・デバッグ手段26によってテスト・デバ
ッグが行われる。テスト・デバッグにより正常に動作す
ることが確認された超逐次プログラム23に対しては、
良い非決定性導入手段27によって、部分的に良い非決
定性に関する情報が導入される。このように部分的に良
い非決定性が導入された超逐次プログラムを「部分超逐
次プログラム」と呼ぶ。ここで、「良い非決定性の導
入」の具体的な一例としては、「複数の正しい逐次プロ
グラムを用意すること」がある。In such a program development support apparatus, the parallel program 1 is converted into a hyper-sequential program 23 by the serialization means 22, and the super-sequential program 23 is subjected to test debugging by the test debugging means 26. For the ultra-sequential program 23 confirmed to operate normally by test / debug,
Good non-determinism introduction means 27 introduces information about partially good non-determinism. Such a super-sequential program in which good nondeterminism is partially introduced is called a "partial super-sequential program". Here, a specific example of “introduction of good nondeterminism” is “preparing a plurality of correct sequential programs”.
【0012】この部分超逐次プログラムに対して、さら
にテスト・デバッグが行われるが、良い非決定性に関す
る情報の導入された部分については、非決定的な振る舞
いをするので、その振る舞いすべてについてテスト・デ
バッグが行われる。[0012] Test / debug is further performed on the partial hyper-sequential program. However, since the part where information regarding good non-determinism is introduced, non-deterministic behavior is performed, so that test / debug is performed on all of the behavior. Done.
【0013】このように、テスト・デバッグ及び良い非
決定性に関する情報の導入を繰り返し、良い非決定性に
関する情報を徐々に付加していく。そして、並行化手段
24において、良い非決定性の導入が行われた部分超逐
次プログラムのうち無害な非決定性部分を抽出し、部分
超逐次プログラム全体を並行化することにより、並行プ
ログラム25を復元する。As described above, the test / debugging and the introduction of the information regarding the good non-determinism are repeated, and the information regarding the good non-determinism is gradually added. Then, the parallelizing means 24 extracts a harmless nondeterministic part from the partially hypersequential program into which good nondeterminism has been introduced, and restores the parallel program 25 by parallelizing the entire partial hypersequential program. .
【0014】なお、図19に示すように、良い非決定性
導入手段27を有しないものも構成可能である。この場
合には、テスト・デバッグ手段26によるテスト・デバ
ッグによって正しいと判断された複数の超逐次プログラ
ム23の集合に基づいて、並行化装置24によって並行
プログラム25が生成される。[0014] As shown in FIG. 19, a device without good non-determinism introducing means 27 can also be configured. In this case, a parallel program 25 is generated by the parallelization device 24 based on a set of a plurality of super-sequential programs 23 determined to be correct by the test debug by the test debug means 26.
【0015】[0015]
【発明が解決しようとする課題】ところで、上記の技術
は、「良い非決定性の導入された部分超逐次プログラ
ム」又は「テスト・デバッグによって、正しいと判断さ
れた複数の逐次プログラムの集合」から、目的の並行プ
ログラムを生成するものである。しかし、これらの過程
で得られるすべての情報を、再構成した並行プログラム
のソースコードとして挿入することには以下のような問
題点がある。By the way, the above technique is based on "a partial super-sequential program in which good nondeterminism is introduced" or "a set of a plurality of sequential programs determined to be correct by test debugging". This is to generate the desired concurrent program. However, inserting all the information obtained in these processes as the source code of the reconstructed concurrent program has the following problems.
【0016】(1)ソースコードが長くなるので、プロ
グラムを格納する記憶媒体が余計に必要となる。これ
は、組み込みマイコンシステムなどのメモリの制約の大
きいシステムにおいては大きな制約となる。(1) Since the source code becomes long, a storage medium for storing the program is additionally required. This is a great limitation in systems with large memory constraints, such as embedded microcomputer systems.
【0017】(2)実行時のオーバヘッドが大きくな
る。(2) The overhead during execution increases.
【0018】(3)挿入されたコードにより、デッドロ
ック等の望ましくない挙動が発生する可能性がある。(3) The inserted code may cause an undesirable behavior such as deadlock.
【0019】本発明は、上記のような従来技術の課題を
解決するために提案されたものであり、その目的は、プ
ログラム実行時において、シナリオ情報以外の挙動が実
行された場合には、警告等の信号をユーザに表示するこ
とにより、プログラムの信頼性を確保できるプログラム
開発支援装置、プログラム開発支援方法及びプログラム
開発支援プログラムを記録した媒体を提供することにあ
る。The present invention has been proposed to solve the above-mentioned problems of the prior art, and an object of the present invention is to provide a warning when a behavior other than the scenario information is executed during execution of a program. It is an object of the present invention to provide a program development support device, a program development support method, and a medium on which a program development support program is recorded, which can ensure the reliability of a program by displaying a signal such as this to a user.
【0020】本発明の他の目的は、プログラム実行時に
おいて、シナリオ情報以外の挙動が抑制されるように制
御することにより、プログラムの高信頼化を達成できる
プログラム開発支援装置、プログラム開発支援方法及び
プログラム開発支援プログラムを記録した媒体を提供す
ることにある。Another object of the present invention is to provide a program development support apparatus, a program development support method, and a program development control method capable of achieving high reliability of a program by controlling a behavior other than scenario information during execution of the program. An object of the present invention is to provide a medium recording a program development support program.
【0021】[0021]
【課題を解決するための手段】上記の目的を達成するた
めに、請求項1記載の発明は、プログラムの開発を支援
するプログラム開発支援装置において、与えられたプロ
グラムから、シナリオ情報を作成するシナリオ作成手段
と、前記プログラムを実行する実行手段と、前記実行手
段によって実行されたプログラムの実行情報と前記シナ
リオ情報とを比較する比較手段と、前記比較手段による
比較結果を表示する表示手段とを有することを特徴とす
る。また、請求項14記載の発明は、請求項1記載の発
明を方法の観点から把握したものであって、プログラム
の開発を支援するプログラム開発支援方法において、与
えられたプログラムからシナリオ情報を作成し、前記プ
ログラムを実行し、前記プログラムの実行情報と前記シ
ナリオ情報とを比較し、その比較結果を表示することを
特徴とする。以上のような請求項1、請求項14記載の
発明によれば、比較手段において、シナリオ情報とプロ
グラムの実行情報が比較され、その比較結果が表示され
るので、正しいシナリオ以外の挙動が実行された場合に
は、これをユーザが明確に認識して、実行を抑制するな
どの対応措置をとることができる。According to an aspect of the present invention, there is provided a program development support apparatus for supporting program development, wherein scenario information is created from a given program. Creating means; executing means for executing the program; comparing means for comparing execution information of the program executed by the executing means with the scenario information; and display means for displaying a result of the comparison by the comparing means. It is characterized by the following. According to a fourteenth aspect of the present invention, there is provided a program development support method for supporting program development, wherein scenario information is created from a given program. Executing the program, comparing execution information of the program with the scenario information, and displaying a result of the comparison. According to the first and fourteenth aspects of the present invention, the comparing means compares the scenario information with the execution information of the program, and displays the result of the comparison. In this case, the user can clearly recognize this and take a countermeasure such as suppressing the execution.
【0022】請求項2記載の発明は、プログラムの開発
を支援するプログラム開発支援装置において、与えられ
たプログラムから、シナリオ情報を作成するシナリオ作
成手段と、前記プログラムを実行する実行手段と、前記
実行手段によって実行されたプログラムの実行情報と前
記シナリオ情報とを比較する比較手段とを有し、前記実
行手段が、前記比較手段による比較結果に基づいて、前
記プログラムの実行を制御することを特徴とする。ま
た、請求項15記載の発明は、請求項2記載の発明を方
法の観点から把握したものであって、プログラムの開発
を支援するプログラム開発支援方法において、与えられ
たプログラムからシナリオ情報を作成し、前記プログラ
ムを実行し、前記プログラムの実行情報と前記シナリオ
情報とを比較し、その比較結果に基づいて、前記プログ
ラムの実行を制御することを特徴とする。以上のような
請求項2、請求項15記載の発明では、比較手段におい
て、シナリオ情報とプログラムの実行状態が比較され、
その比較結果に基づいてプログラムの実行が制御される
ので、正しいシナリオ以外の挙動は、ユーザの確認を待
つまでもなく、実行が抑制される。According to a second aspect of the present invention, there is provided a program development support device for supporting program development, wherein scenario creation means for creating scenario information from a given program; execution means for executing the program; Comparing means for comparing execution information of the program executed by the means with the scenario information, wherein the executing means controls the execution of the program based on a comparison result by the comparing means. I do. According to a fifteenth aspect of the present invention, the invention of the second aspect is grasped from the viewpoint of a method. In a program development support method for supporting program development, scenario information is created from a given program. Executing the program, comparing the execution information of the program with the scenario information, and controlling the execution of the program based on the comparison result. According to the second and fifteenth aspects of the present invention, the comparing means compares the scenario information with the execution state of the program.
Since the execution of the program is controlled based on the comparison result, the behavior other than the correct scenario is suppressed without waiting for the user's confirmation.
【0023】請求項3記載の発明は、請求項2記載のプ
ログラム開発支援装置において、前記比較手段による比
較結果を表示する表示手段を有することを特徴とする。
以上のような請求項3記載の発明では、比較手段におい
て、シナリオ情報とプログラムの実行情報が比較され、
その比較結果が表示されるので、正しいシナリオ以外の
挙動が実行された場合には、これをユーザが明確に認識
して、実行を抑制するなどの対応措置をとることができ
る。According to a third aspect of the present invention, there is provided the program development support apparatus according to the second aspect, further comprising display means for displaying a comparison result by the comparing means.
According to the third aspect of the present invention, the comparing means compares the scenario information with the execution information of the program.
Since the comparison result is displayed, when a behavior other than the correct scenario is executed, the user can clearly recognize this and take a countermeasure such as suppressing the execution.
【0024】請求項4記載の発明は、請求項1〜3のい
ずれか1項に記載のプログラム開発支援装置において、
前記シナリオ情報に新しいシナリオを追加する登録手段
を有することを特徴とする。以上のような請求項4記載
の発明では、正しいシナリオ以外の挙動については、ユ
ーザの判断により問題があるものと問題がないものとに
区別して、問題のないものは新たなシナリオとして登録
し、問題のある挙動の実行は抑制することができるの
で、より正確に信頼性の高いプログラム作成を行うこと
ができる。According to a fourth aspect of the present invention, there is provided the program development support apparatus according to any one of the first to third aspects,
It is characterized by having registration means for adding a new scenario to the scenario information. In the invention according to claim 4 described above, behaviors other than the correct scenario are distinguished into those having a problem and those having no problem by the judgment of the user, and those having no problem are registered as new scenarios. Since the execution of the problematic behavior can be suppressed, a highly reliable program can be created more accurately.
【0025】請求項5記載の発明は、請求項1〜4のい
ずれか1項に記載のプログラム開発支援装置において、
前記プログラムの実行状態を抽象化する状態抽象化手段
と、前記状態抽象化手段によって得られた抽象化関数に
基づいて、前記シナリオ情報を有限状態遷移グラフで表
すシナリオグラフ生成手段とを有することを特徴とす
る。以上のような請求項5記載の発明では、シナリオ情
報を、抽象化関数に基づいて、有限状態遷移グラフであ
るシナリオグラフで表現できるので、シナリオで許され
ている挙動のみを実行する信頼度の高いプログラムの作
成がより容易なものとなる。According to a fifth aspect of the present invention, there is provided the program development support apparatus according to any one of the first to fourth aspects,
State abstraction means for abstracting the execution state of the program, and scenario graph generation means for expressing the scenario information in a finite state transition graph based on an abstraction function obtained by the state abstraction means. Features. According to the fifth aspect of the present invention, the scenario information can be represented by a scenario graph, which is a finite state transition graph, based on the abstraction function. Creating expensive programs becomes easier.
【0026】請求項6記載の発明は、請求項5記載のプ
ログラム開発支援装置において、前記抽象化関数が、ハ
ッシュ関数であることを特徴とする。以上のような請求
項6記載の発明では、状態抽象化に多量の情報を1つの
整数値で表現できるハッシュ関数を用いるので、効率の
よい抽象化が可能となる。According to a sixth aspect of the present invention, in the program development support apparatus of the fifth aspect, the abstraction function is a hash function. In the invention according to claim 6 described above, since a hash function capable of expressing a large amount of information by one integer value is used for state abstraction, efficient abstraction can be performed.
【0027】請求項7記載の発明は、請求項5又は請求
項6記載のプログラム開発支援装置において、前記プロ
グラムの状態を構成する要素の部分集合を指定する指定
手段を有し、前記状態抽象化手段は、前記指定手段によ
って指定された部分集合の要素のみを対象とすることを
特徴とする。以上のような請求項7記載の発明では、ユ
ーザが指定手段によって指定した部分集合の要素以外
は、状態抽象化の対象とならずに無視されるので、ユー
ザの選択によって、適切なプログラムを迅速に生成する
ことができる。According to a seventh aspect of the present invention, in the program development support apparatus of the fifth or sixth aspect, there is provided designating means for designating a subset of elements constituting a state of the program, and the state abstraction is provided. The means targets only the elements of the subset specified by the specifying means. According to the seventh aspect of the present invention, elements other than the subset specified by the user by the specifying means are not subject to state abstraction and are ignored, so that an appropriate program can be promptly selected by the user. Can be generated.
【0028】請求項8記載の発明は、請求項1又は請求
項2記載のプログラム開発支援装置において、前記シナ
リオ情報には、実行の優先度が設定されていることを特
徴とする。以上のような請求項8記載の発明では、優先
度が高いシナリオに対応する実行可能な望ましい挙動が
存在しない場合であっても、優先順位に従って、次善の
シナリオに基づくプログラムの作成が容易となる。According to an eighth aspect of the present invention, in the program development support apparatus according to the first or second aspect, the scenario information is set with a priority of execution. According to the above-described invention, it is easy to create a program based on the next best scenario in accordance with the priority even when there is no desirable behavior that can be executed corresponding to the scenario with a high priority. Become.
【0029】請求項9記載の発明は、請求項1又は請求
項2記載のプログラム開発支援装置において、前記プロ
グラムの実行情報に、前記シナリオ情報と一致する挙動
が存在しない場合に、実行手段においてプログラムの状
態を強制的に安全状態にする安全状態記憶手段を有する
ことを特徴とする。以上のような請求項9記載の発明に
よれば、シナリオと一致する挙動が存在しない場合に、
プログラムの状態を強制的に安全状態にするので、危険
性の高い設備の制御システムに適したプログラムを実現
できる。According to a ninth aspect of the present invention, in the program development support device according to the first or second aspect, when there is no behavior that matches the scenario information in the execution information of the program, the execution means executes the program. And a safe state storage means for forcibly changing the state of the device to the safe state. According to the ninth aspect of the invention, when there is no behavior that matches the scenario,
Since the state of the program is forcibly changed to the safe state, it is possible to realize a program suitable for a control system for equipment having a high risk.
【0030】請求項10記載の発明は、請求項1又は請
求項2記載のプログラム開発支援装置において、前記実
行手段は、実行タスクの切替えによってシナリオの選択
を行う実行タスク切替え部と、前記プログラムの実行を
制御する情報に基づいて、割り込み処理を行う割り込み
処理部を有することを特徴とする。以上のような請求項
10記載の発明では、プログラムの各命令実行ごとにテ
ーブル比較及びタスクの切替えを行なう必要がなく、テ
ーブル比較とプログラムの実行を可能な限り並行に行な
うことができるので、実行のオーバヘッドが大きくなる
ことがない。According to a tenth aspect of the present invention, in the program development support device according to the first or second aspect, the execution means includes an execution task switching unit for selecting a scenario by switching an execution task; An interrupt processing unit that performs an interrupt process based on information for controlling execution is provided. According to the tenth aspect of the present invention, it is not necessary to perform table comparison and task switching for each instruction execution of the program, and the table comparison and program execution can be performed as parallel as possible. Does not increase the overhead.
【0031】請求項11記載の発明は、並行プログラム
の開発を支援するプログラム開発支援装置において、与
えられた並行プログラムを、逐次実行可能な超逐次プロ
グラムに変換する逐次化手段と、前記超逐次プログラム
から実行時比較情報を生成する実行時比較情報生成手段
と、前記並行プログラムを実行する実行手段と、前記実
行手段によって実行された前記並行プログラムの実行情
報と、前記実行時比較情報とを比較する比較手段と、前
記比較手段による比較結果を表示する表示手段とを有す
ることを特徴とする。以上のような請求項11記載の発
明では、比較手段において、実行時比較情報と並行プロ
グラムの実行情報が比較され、その比較結果が表示され
るので、ユーザは、あらかじめ正しさが確認された挙動
以外の挙動が実行された場合には、これを明確に認識し
て、実行を制御するなどの対応措置をとることができ
る。According to an eleventh aspect of the present invention, in the program development supporting apparatus for supporting the development of a concurrent program, a serializing means for converting a given parallel program into a hyper-sequential program which can be sequentially executed; A runtime comparison information generating unit that generates runtime comparison information from the execution program, an execution unit that executes the parallel program, and a comparison between the execution information of the parallel program executed by the execution unit and the runtime comparison information. It is characterized by having comparison means and display means for displaying a result of comparison by the comparison means. According to the above-described invention, the comparing means compares the execution-time comparison information with the execution information of the concurrent program, and displays a result of the comparison. When a behavior other than the above is executed, it is possible to clearly recognize the behavior and take a countermeasure such as controlling the execution.
【0032】請求項12記載の発明は、並行プログラム
の開発を支援するプログラム開発支援装置において、与
えられた並行プログラムを、逐次実行可能な超逐次プロ
グラムに変換する逐次化手段と、前記超逐次プログラム
から実行時比較情報を生成する実行時比較情報生成手段
と、前記並行プログラムを実行する実行手段と、前記実
行手段によって実行された前記並行プログラムの実行情
報と、前記実行時比較情報とを比較する比較手段と、前
記実行手段が、前記比較手段による比較結果に基づい
て、前記並行プログラムの実行を制御することを特徴と
する。以上のような請求項12記載の発明では、比較手
段において、シナリオ情報と並行プログラムの実行状態
が比較され、その比較結果に基づいて並行プログラムの
実行が制御されるので、正しいシナリオ以外の挙動は、
ユーザの確認を待つまでもなく、実行が抑制される。According to a twelfth aspect of the present invention, in the program development supporting apparatus for supporting the development of a parallel program, a serializing means for converting a given parallel program into a hyper-sequential program which can be sequentially executed; A runtime comparison information generating unit that generates runtime comparison information from the execution program, an execution unit that executes the parallel program, and a comparison between the execution information of the parallel program executed by the execution unit and the runtime comparison information. A comparison unit and the execution unit control execution of the concurrent program based on a comparison result by the comparison unit. In the invention according to the twelfth aspect, the comparing means compares the scenario information with the execution state of the concurrent program, and controls the execution of the concurrent program based on the comparison result. ,
The execution is suppressed without waiting for the confirmation of the user.
【0033】請求項13記載の発明は、請求項11又は
請求項12記載のプログラム開発支援装置において、前
記超逐次プログラムに良い非決定性を導入する導入手段
を有し、前記実行時比較情報生成手段は、良い非決定性
が導入された超逐次プログラムから、前記実行時比較情
報を生成することを特徴とする。以上のような請求項1
3記載の発明では、良い非決定性が導入された逐次プロ
グラムに基づいて実行時比較情報が作成されるので、よ
り信頼性の高いプログラムの作成・実行が可能となる。According to a thirteenth aspect of the present invention, in the program development support device according to the eleventh or twelfth aspect, there is provided an introduction means for introducing good non-determinism into the hyper-sequential program, and the runtime comparison information generating means is provided. Is characterized in that the runtime comparison information is generated from a hyper-sequential program into which good nondeterminism is introduced. Claim 1 as described above
According to the invention described in 3, the runtime comparison information is created based on the sequential program in which good nondeterminism is introduced, so that a more reliable program can be created and executed.
【0034】[0034]
【発明の実施の形態】本発明の実施の形態を図面に従っ
て以下に説明する。なお、実施の形態の各機能は、所定
のソフトウエアがコンピュータ及び周辺機器を制御する
ことで実現されるものであり、本明細書では、発明及び
実施の形態を、各機能や各処理に対応する「〜手段」な
どの仮想的回路ブロックを想定して説明している。この
ため、各ブロックに対して、各ハードウエア要素やソフ
トウエア要素は1対1には対応しない。Embodiments of the present invention will be described below with reference to the drawings. Each function of the embodiment is realized by predetermined software controlling a computer and peripheral devices. In this specification, the invention and the embodiment correspond to each function and each process. The description is made assuming a virtual circuit block such as “-means”. Therefore, each hardware element and each software element do not correspond one-to-one to each block.
【0035】[1.コンピュータシステムの構成]ま
ず、本実施の形態を実現するためのコンピュータシステ
ムとして、マルチCPUによるものを、図1の概念図を
用いて説明する。すなわち、並行プログラムを同時に実
行することができるN台のプロセッサ101−1,10
1−2,101−3,…,101−Nは、それぞれI/
Oインタフェィス102を介して共有メモリ103及び
周辺装置とアクセス可能に設けられている。周辺装置
は、入力装置104、出力装置105及び外部記憶装置
106によって構成されている。[1. Configuration of Computer System] First, a computer system for realizing the present embodiment using a multi-CPU will be described with reference to the conceptual diagram of FIG. That is, N processors 101-1 and 101-10 capable of simultaneously executing a concurrent program
, 101-3,..., 101-N are I /
It is provided so as to be able to access the shared memory 103 and peripheral devices via the O interface 102. The peripheral device includes an input device 104, an output device 105, and an external storage device 106.
【0036】そして、入力装置104は、ユーザが各種
コマンドやデータを入力可能なキーボードやポインティ
ングデバイス等からなる。出力装置105は、ソースプ
ログラムやデバッグ状況に関する情報等をテキスト又は
グラフィック表示して、ユーザに提示可能なCRTディ
スプレイ等からなる。外部記憶装置106は、ソースプ
ログラムやデバッグ状況に関する情報を書き込み又は読
み出し可能な磁気ディスクや光磁気ディスク等からな
る。The input device 104 includes a keyboard, a pointing device, and the like that allow the user to input various commands and data. The output device 105 includes a CRT display or the like that can display a source program, information on a debugging situation, or the like in text or graphic form and present it to the user. The external storage device 106 is composed of a magnetic disk, a magneto-optical disk, or the like on which a source program and information on a debugging situation can be written or read.
【0037】[2.実施の形態] (1)第1の実施の形態 (構成)本実施の形態は、請求項1及び請求項14記載
の発明に対応するものであり、図2に示すように、並行
プログラム1の「シナリオ」を作成するシナリオ作成手
段2を有している。ここで、「シナリオ」とは、並行プ
ログラム1の挙動を逐次的に表現したものであり、並行
プログラムを逐次的に実行した場合の実行ログは、「シ
ナリオ」の典型例である。そして、「シナリオ」の集合
が「シナリオ情報3」を構成するが、図16に示した従
来技術における「超逐次プログラム23」の一形態は、
「シナリオ情報3」である。[2. Embodiment] (1) First Embodiment (Configuration) This embodiment corresponds to the invention described in claim 1 and claim 14, and as shown in FIG. It has a scenario creating means 2 for creating a “scenario”. Here, the “scenario” sequentially represents the behavior of the concurrent program 1, and an execution log when the concurrent program is sequentially executed is a typical example of the “scenario”. Then, a set of “scenarios” constitutes “scenario information 3”. One form of “super-sequential program 23” in the related art shown in FIG.
This is “scenario information 3”.
【0038】また、本実施の形態は、シナリオ情報3の
正しさを確認し、もしバグがあればオリジナルの並行プ
ログラムを修正するテスト・デバッグ手段6、並行プロ
グラムの実行手段8、プログラムの実行状態を表す実行
情報9とシナリオ情報3とを比較する比較手段10、比
較手段10における比較結果を表示する比較結果表示手
段11を有している。In this embodiment, the test / debugging means 6 for checking the correctness of the scenario information 3 and correcting the original concurrent program if there is a bug, the concurrent program executing means 8, the execution state of the program And a comparison result display means 11 for displaying a comparison result in the comparison means 10.
【0039】(作用)以上のような構成を有する本実施
の形態においては、まず、並行プログラム1に基づい
て、シナリオ作成手段2においてシナリオを作成し、シ
ナリオ情報3として集積する。このシナリオ情報3の各
シナリオの正しさを、テスト・デバッグ手段6によって
確認し、もしバグがあればオリジナルの並行プログラム
1を修正する。(Operation) In the present embodiment having the above-described configuration, first, a scenario is created by the scenario creating means 2 based on the concurrent program 1 and accumulated as scenario information 3. The correctness of each scenario in the scenario information 3 is confirmed by the test / debugging means 6, and if there is a bug, the original concurrent program 1 is corrected.
【0040】そして、実行手段8による並行プログラム
1の実行時に、比較手段10によって、実行手段8で得
られるプログラムの実行情報9とシナリオ情報3とを比
較して、もし並行プログラム1の実行がシナリオにない
挙動をしている場合は、比較結果表示手段11によって
ユーザに警告する。When the execution means 8 executes the concurrent program 1, the comparing means 10 compares the execution information 9 of the program obtained by the execution means 8 with the scenario information 3. If the behavior is not described above, the comparison result display means 11 warns the user.
【0041】(効果)以上のような本実施の形態によれ
ば、あらかじめ正しく動くことが確認されたシナリオ以
外の挙動が実行された場合には、ユーザに警告が示され
るので、ユーザはプログラムにおいて抑制すべき挙動を
明確に判断することができ、信頼性の高いプログラム作
成を容易に行うことができる。(Effects) According to the present embodiment as described above, if a behavior other than the scenario confirmed to operate correctly in advance is executed, a warning is displayed to the user, so that the user can execute the program in the program. The behavior to be suppressed can be clearly determined, and a highly reliable program can be easily created.
【0042】また、従来技術のように、並行プログラム
の逐次化、良い並行性の導入、並行プログラムの復元と
いう過程で得られるすべての情報を、再構成した並行プ
ログラムのソースコードとして挿入する必要はないの
で、メモリの節約、オーバヘッドの短縮化、デッドロッ
ク等の発生の防止につながる。Further, it is not necessary to insert all information obtained in the process of serializing a parallel program, introducing good concurrency, and restoring a parallel program as the source code of a reconstructed parallel program as in the prior art. Since this does not exist, it leads to saving of memory, shortening of overhead, and prevention of occurrence of deadlock and the like.
【0043】(2)第2の実施の形態 (構成)本実施の形態は、請求項2及び請求項15記載
の発明に対応するものであり、図3に示すように、第1
の実施の形態とほぼ同様の構成であるが、比較結果表示
手段11を有していない。そして、比較手段10は、実
行手段8で得られるプログラムの実行情報9とシナリオ
情報3との比較結果に基づいて、シナリオ情報3にない
挙動では並行プログラム1が動かないように、並行プロ
グラム1の実行を制御する実行制御情報21を生成し
て、実行手段8の実行を制御するように構成されてい
る。(2) Second Embodiment (Structure) This embodiment corresponds to the invention described in claims 2 and 15, and as shown in FIG.
Although the configuration is almost the same as that of the first embodiment, the comparison result display means 11 is not provided. Then, based on a comparison result between the execution information 9 of the program obtained by the execution means 8 and the scenario information 3, the comparing means 10 determines whether the concurrent program 1 does not operate in a behavior not included in the scenario information 3. It is configured to generate execution control information 21 for controlling execution and control execution of the execution means 8.
【0044】(作用)以上のような構成を有する本実施
の形態においては、まず、並行プログラム1に基づい
て、シナリオ作成手段2においてシナリオを作成し、シ
ナリオ情報3として集積する。このシナリオ情報3の各
シナリオの正しさを、テスト・デバッグ手段6によって
確認し、もしバグがあればオリジナルの並行プログラム
1を修正する。(Operation) In the present embodiment having the above-described configuration, first, a scenario is created by the scenario creating means 2 based on the concurrent program 1 and accumulated as scenario information 3. The correctness of each scenario in the scenario information 3 is confirmed by the test / debugging means 6, and if there is a bug, the original concurrent program 1 is corrected.
【0045】そして、実行手段8による並行プログラム
1の実行時に、比較手段10によって、プログラムの実
行情報9とシナリオ情報3とを比較して、もし並行プロ
グラム1の実行がシナリオにない挙動をしている場合
は、比較手段10によって、実行制御情報21が生成さ
れる。さらに、この実行制御情報21に基づいて、シナ
リオになかった挙動では動かないように、実行手段8に
おける並行プログラム1の実行が制御される。When the concurrent program 1 is executed by the executing means 8, the comparing means 10 compares the program execution information 9 with the scenario information 3, and if the execution of the concurrent program 1 does not behave in the scenario. If there is, the execution control information 21 is generated by the comparing means 10. Further, based on the execution control information 21, the execution of the concurrent program 1 by the execution means 8 is controlled so as not to move in a behavior not included in the scenario.
【0046】(効果)以上のような本実施の形態によれ
ば、あらかじめ正しく動くことが確認されたシナリオ以
外の挙動は、ユーザの確認を待つまでもなく、その実行
が自動的に抑制されるので、信頼性の高いプログラムを
容易に作成することができる。(Effect) According to the present embodiment as described above, the execution of the behavior other than the scenario confirmed to operate correctly beforehand is automatically suppressed without waiting for the user's confirmation. Therefore, a highly reliable program can be easily created.
【0047】また、第1の実施の形態と同様に、ソース
コードの長大化防止によるメモリの節約、オーバヘッド
の短縮化、デッドロック等の発生防止が可能となる。Further, as in the first embodiment, it is possible to save memory by reducing the length of the source code, reduce overhead, and prevent occurrence of deadlock.
【0048】(3)第3の実施の形態 (構成)本実施の形態は、請求項1及び請求項4記載の
発明に対応するものであり、上記第1の実施の形態をさ
らに改良したものである。すなわち、図4に示したよう
に、本実施の形態においては、図2の構成要件に加え
て、比較結果表示手段11によって表示された比較結果
に基づいて、警告されたシナリオにない挙動に問題があ
るか否かの判断結果を指示するための指示手段13と、
ユーザの指示によってシナリオ情報3へのシナリオの登
録を行うシナリオ登録手段12が設けられている。(3) Third Embodiment (Structure) This embodiment corresponds to the first and fourth aspects of the present invention, and is a further improvement of the first embodiment. It is. That is, as shown in FIG. 4, in the present embodiment, in addition to the configuration requirements of FIG. Instruction means 13 for instructing a result of determination as to whether or not there is
A scenario registration unit 12 for registering a scenario in the scenario information 3 according to a user's instruction is provided.
【0049】(作用)以上のような構成を有する本実施
の形態においては、まず、並行プログラム1に基づい
て、シナリオ作成手段2においてシナリオを作成し、シ
ナリオ情報3として集積する。このシナリオ情報3の各
シナリオの正しさを、テスト・デバッグ手段6によって
確認し、もしバグがあればオリジナルの並行プログラム
1を修正する。(Operation) In the present embodiment having the above configuration, first, a scenario is created by the scenario creating means 2 based on the concurrent program 1, and is accumulated as scenario information 3. The correctness of each scenario in the scenario information 3 is confirmed by the test / debugging means 6, and if there is a bug, the original concurrent program 1 is corrected.
【0050】そして、実行手段8による並行プログラム
1の実行時に、比較手段10によって、プログラムの実
行情報9とシナリオ情報3とを比較して、もし並行プロ
グラム1の実行がシナリオにない挙動をしている場合
は、比較結果表示手段11によってユーザに警告する。
ユーザは、警告されたシナリオにない挙動が、実際には
問題ないと判断した場合には、指示手段13によって、
警告されたシナリオにない挙動も正しいシナリオとして
シナリオ情報3に登録するようシナリオ登録手段12に
指示する。その結果、問題ないとユーザが判断した挙動
も、正しいシナリオとしてシナリオ情報3に登録され
る。Then, when the execution means 8 executes the concurrent program 1, the comparing means 10 compares the execution information 9 of the program with the scenario information 3, and if the execution of the concurrent program 1 does not behave in the scenario. If yes, the comparison result display means 11 warns the user.
When the user determines that the behavior not in the warned scenario is not actually a problem, the instruction unit 13
The scenario registering unit 12 is instructed to register the behavior not included in the warned scenario as the correct scenario in the scenario information 3. As a result, the behavior determined by the user as having no problem is also registered in the scenario information 3 as a correct scenario.
【0051】(効果)以上のような本実施の形態によれ
ば、第1の実施の形態と同様の効果が得られるととも
に、シナリオ情報3として蓄積されていなかった挙動
(換言すれば、正しさが確認されていない挙動)であっ
ても、実際に問題はないとのユーザの判断に基づいて、
シナリオ情報に追加することができる。これにより、テ
スト・デバッグを実行しなくても新たなシナリオを登録
でき、プログラムの作成をより容易なものとすることが
できる。(Effect) According to the present embodiment as described above, the same effect as that of the first embodiment can be obtained, and the behavior that has not been stored as the scenario information 3 (in other words, correctness) Is not confirmed), but based on the user's judgment that there is no actual problem,
It can be added to the scenario information. As a result, a new scenario can be registered without executing test / debugging, thereby making it easier to create a program.
【0052】(4)第4の実施の形態 本実施の形態は、請求項2〜4記載の発明に対応するも
のであり、上記の第2の実施の形態と、第3の実施の形
態とを組み合わせたものである。すなわち、本実施の形
態においては、実行時にシナリオ情報3になかった挙動
が発生した場合、その挙動を強制的に抑制するのではな
く、比較結果表示手段11によってユーザにその挙動が
問題がないか否かを問い合わせる。そして、ユーザが問
題ないと判断した挙動を指示手段13によって指示する
と、シナリオ登録手段12が正しいシナリオとしてシナ
リオ情報に登録する。(4) Fourth Embodiment The present embodiment corresponds to the second to fourth aspects of the present invention. Are combined. That is, in the present embodiment, when a behavior that is not included in the scenario information 3 occurs at the time of execution, the behavior is not forcibly suppressed, but the user is asked whether the behavior is satisfactory by the comparison result display unit 11. Inquire whether or not. Then, when the user instructs the behavior judged to be no problem by the instruction means 13, the scenario registration means 12 registers the correct scenario in the scenario information.
【0053】また、問題があるとユーザが判断した挙動
の場合には、実行手段8によるその挙動の実行が抑制さ
れる。この場合には、実行を終了し、並行プログラム1
のテスト・デバッグを行うこともできる。When the behavior is judged by the user to have a problem, execution of the behavior by the execution means 8 is suppressed. In this case, the execution ends and the parallel program 1
You can also test / debug.
【0054】以上のような本実施の形態によれば、あら
かじめ正しく動くことが確認されたシナリオ以外の挙動
については、ユーザの判断により問題があるものと問題
がないものとに区別して、問題のないものは新たなシナ
リオとして登録し、問題のある挙動の実行は抑制するこ
とができるので、より正確に信頼性の高いプログラム作
成を行うことができる。According to the present embodiment as described above, behaviors other than the scenario confirmed to operate correctly in advance are distinguished into those having a problem and those having no problem by the judgment of the user, and Those that do not exist are registered as new scenarios, and execution of problematic behaviors can be suppressed, so that a more reliable program can be created more accurately.
【0055】(5)第5の実施の形態 (構成)本実施の形態は、請求項1〜3,請求項5〜7
記載の発明に対応するものであり、図5に示すように、
並行プログラム1を作成するプログラム作成手段(図示
せず)と、並行プログラム1を実行する実行手段8と、
並行プログラム1のシナリオを作成するシナリオ作成手
段30と、シナリオの正しさを確認するテスト・デバッ
グ手段6と、並行プログラム1から状態抽象化関数37
を設定する状態抽象化関数設定手段36と、シナリオの
集合31と状態抽象化関数37からシナリオグラフ33
を生成するシナリオグラフ生成手段32とを有する。(5) Fifth Embodiment (Structure) This embodiment relates to claims 1 to 3, and claims 5 to 7.
It corresponds to the described invention, and as shown in FIG.
A program creating means (not shown) for creating the concurrent program 1, an executing means 8 for executing the concurrent program 1,
Scenario creating means 30 for creating a scenario of the concurrent program 1, test / debugging means 6 for confirming the correctness of the scenario, and a state abstraction function 37 from the concurrent program 1.
, A scenario graph 33 from a set of scenarios 31 and a state abstraction function 37.
And a scenario graph generating means 32 for generating
【0056】さらに、本実施の形態は、シナリオグラフ
33から実行時制御テーブル35を作成する実行時制御
テーブル作成手段34と、プログラムの実行情報9と実
行時制御テーブル35とを比較し、その比較結果に基づ
いて、並行プログラム1の実行を制御する実行制御情報
21を生成するテーブル比較手段38と、テーブル比較
手段38における比較結果を表示する比較結果表示手段
11とを有する。Further, in the present embodiment, the execution control table creating means 34 for creating the execution control table 35 from the scenario graph 33 is compared with the execution information 9 of the program and the execution control table 35. It has a table comparison means 38 for generating execution control information 21 for controlling the execution of the concurrent program 1 based on the result, and a comparison result display means 11 for displaying a comparison result in the table comparison means 38.
【0057】(作用)以上のような構成を有する本実施
の形態の作用を、図6のフローチャートに従って以下に
説明する。(Operation) The operation of the present embodiment having the above configuration will be described below with reference to the flowchart of FIG.
【0058】並行プログラムの作成 まず、プログラム作成手段によって、並行プログラム1
を作成する(ステップ601)。ここで、並行プログラ
ム1の構造の一例を、図7に示す。この並行プログラム
においては、P1とP2が単一のCPUで並行に動くプ
ロセス(タスクあるいはスレッドでも同様)であり、P
1とP2は、共有メモリMにアクセスしている。並行プ
ログラムP=P1|P2は、ソースコードとしては、例
えば、図8に示すように記述される。ここで、P1|P
2は、P1|P2が論理的に並行に実行されることを意
味する。なお、この並行プログラム1は、図9に示すよ
うに、等価な状態遷移システムとして表すこともでき
る。Creation of Concurrent Program First, the concurrent program 1 is created by the program creation means.
Is created (step 601). Here, an example of the structure of the concurrent program 1 is shown in FIG. In this concurrent program, P1 and P2 are processes (similarly for tasks or threads) that run in parallel on a single CPU.
1 and P2 are accessing the shared memory M. The parallel program P = P1 | P2 is described as a source code, for example, as shown in FIG. Where P1 | P
2 means that P1 | P2 is executed logically in parallel. The parallel program 1 can be expressed as an equivalent state transition system as shown in FIG.
【0059】実行状態抽象化関数の設定 次に、状態抽象化関数設定手段36により状態抽象化関
数37を得る(ステップ602)。これは、シナリオを
有限状態グラフで表したシナリオグラフ33とするため
には、並行プログラム1の実行状態の抽象化が必要であ
り、一般に、プログラムの可能な状態は無限個ありうる
ので、抽象化なしには有限状態グラフで表すことができ
ないからである。Setting of execution state abstraction function Next, the state abstraction function 37 is obtained by the state abstraction function setting means 36 (step 602). This is because the execution state of the concurrent program 1 needs to be abstracted in order to make the scenario a scenario graph 33 that is represented by a finite state graph. Without it, it cannot be represented by a finite state graph.
【0060】例えば、並行プログラムPの実行状態を抽
象化する関数としてfabs を設定する。ここでf
abs は、P1とP2のプログラムカウンタの組のみを状
態として採用し、変数x,y,M,sum の値は無視する抽象化
関数とする。For example, f abs is set as a function that abstracts the execution state of the concurrent program P. Where f
abs is an abstract function that employs only a set of the program counters P1 and P2 as states and ignores the values of the variables x, y, M, and sum.
【0061】[0061]
【数1】(〈P1の状態〉,〈P2の状態〉)=fabs
([〈P1の状態〉,〈P2の状態〉,〈変数の値〉,
…]) これ以外にも、ユーザの指定した状態以外は無視するな
どの、様々な抽象化関数が考えられる。例えば、ハッシ
ュ関数を用いる方法や、部分的にハッシュ関数を用いる
方法などがある。ここで、ハッシュ関数とは多量の情報
を1つの整数値で表現するテクニックであり、文献「エ
イホ、ホップクロフト、ウルマン著: データ構造とアル
ゴリズム(倍風館)」に載っている公知の技術である。
このハッシュ関数を用いれば、プログラムの状態[〈P
1の状態〉,〈P2の状態〉,〈変数の値〉,…]を1
つの整数で表現することができ、効率のよい抽象化が可
能となる。(1) (<P1 state>, <P2 state>) = f abs
([<P1 state>, <P2 state>, <variable value>,
…]) In addition, various other abstraction functions, such as ignoring a state other than the state specified by the user, can be considered. For example, there are a method using a hash function and a method using a hash function partially. Here, the hash function is a technique for expressing a large amount of information by one integer value, and is a well-known technique described in the document "Aeho, Hopcroft, Ullman: Data Structure and Algorithm (Boufukan)". is there.
If this hash function is used, the state of the program [<P
1 state, <P2 state>, <variable value>,.
It can be represented by two integers, which enables efficient abstraction.
【0062】また、ユーザが、プログラムの状態を構成
する要素の部分集合を指定できる指定手段を設け、状態
抽象化関数設定手段36が、前記指定手段によって指定
された部分集合の要素のみを対象として状態抽象化関数
37を設定する構成とすることも可能である。かかる構
成とすれば、ユーザが指定した状態以外は無視されるの
で、ユーザの選択によって、適切なプログラムを迅速に
生成することができる。Further, there is provided designation means for allowing a user to designate a subset of elements constituting the state of the program, and the state abstraction function setting means 36 targets only the elements of the subset designated by the designation means. It is also possible to adopt a configuration in which the state abstraction function 37 is set. With such a configuration, a state other than the state designated by the user is ignored, so that an appropriate program can be quickly generated by the user's selection.
【0063】シナリオの作成及びテストの実行 続いて、並行プログラム1のいくつかのシナリオをシナ
リオ作成手段30で作成し(ステップ603)、テスト
・デバッグ手段6で正しさを確認する(ステップ60
4)。シナリオに誤りがあれば、オリジナルの並行プロ
グラム1を修正し(ステップ605,606)、再度シ
ナリオ生成及びテストを行ない、正しいと確認されたシ
ナリオの集合31を得る(ステップ607)。Creation of Scenario and Execution of Test Subsequently, several scenarios of the concurrent program 1 are created by the scenario creation means 30 (step 603), and correctness is confirmed by the test / debugging means 6 (step 60).
4). If there is an error in the scenario, the original concurrent program 1 is modified (steps 605 and 606), and a scenario is generated and tested again to obtain a set 31 of scenarios confirmed to be correct (step 607).
【0064】シナリオグラフの生成 次に、実行状態抽象化関数37を用いて、シナリオの集
合31からシナリオグラフ生成手段32によってシナリ
オグラフ33を生成する(ステップ608)。例えば、
並行プログラム1の実行状態を実行状態抽象化関数37
で抽象化したものをノードとし、実行状態の遷移をエッ
ジとすると、図10に示すようなシナリオグラフ33を
作成することができる。この例では、シナリオグラフ3
3上の任意のパスが、ステップ604,605で正しい
ことが確認されたシナリオを表現している。Generation of Scenario Graph Next, the scenario graph 33 is generated by the scenario graph generation means 32 from the set of scenarios 31 using the execution state abstraction function 37 (step 608). For example,
The execution state of the concurrent program 1 is converted to the execution state abstraction function 37.
Assuming that the node abstracted by the above is a node and the transition of the execution state is an edge, a scenario graph 33 as shown in FIG. 10 can be created. In this example, scenario graph 3
3 represents a scenario that was confirmed to be correct in steps 604 and 605.
【0065】実行時制御テーブルの作成 上記のように作成されたシナリオグラフ33から、実行
時制御テーブル作成手段34によって、実行時制御テー
ブル35を作成する(ステップ609)。なお、実行時
制御テーブル35は、シナリオグラフ33の情報を、プ
ログラムの実行時に参照が容易なテーブル形式で表現し
なおしたものである。Creation of Runtime Control Table From the scenario graph 33 created as described above, the runtime control table creating means 34 creates the runtime control table 35 (step 609). The execution control table 35 re-expresses the information of the scenario graph 33 in a table format that can be easily referred to when the program is executed.
【0066】例えば、説明の簡略化のために、図10に
示したシナリオグラフ33と一対一に対応する実行時制
御テーブル35を作成したとする(図11、図12参
照)。ここで、図11は各実行状態において、次に実行
可能なトランジション(実行指示)を表したテーブルで
あり、t/sは、トランジションtが実行されると、実
行状態はsに遷移することを意味する。また、c:t
は,条件cが満たされる時、トランジションtが実行可
能であることを意味する。For example, for the sake of simplicity, it is assumed that a run-time control table 35 corresponding to the scenario graph 33 shown in FIG. 10 on a one-to-one basis has been created (see FIGS. 11 and 12). Here, FIG. 11 is a table showing the next executable transition (execution instruction) in each execution state, and t / s indicates that the execution state transits to s when the transition t is executed. means. Also, c: t
Means that transition t is executable when condition c is satisfied.
【0067】図12は、各実行状態でのタスク(プロセ
ス)切替えを表したテーブルであり、P/sは、まずP
にプロセスを切替えて、一単位処理を実行すると、実行
状態はsに遷移することを意味する。また、−/sは、
プロセス切替えなしで、一単位処理を実行すると、実行
状態はsに遷移することを意味する。なお、通常のリア
ルタイムOSを用いる場合は、図12の実行時制御テー
ブルが用いられる。FIG. 12 is a table showing task (process) switching in each execution state.
When the process is switched to and the one-unit process is executed, the execution state transits to s. Also,-/ s is
When one-unit processing is executed without switching the process, the execution state transits to s. When a normal real-time OS is used, the runtime control table in FIG. 12 is used.
【0068】なお、本出願人が別途提案したプログラム
解析による並行化技術を用いれば、より制約の少ない実
行時制御テーブル35を作成することが可能である。If the parallelization technique based on program analysis separately proposed by the present applicant is used, it is possible to create the runtime control table 35 with less restrictions.
【0069】並行プログラムの実行と警告表示 次に、実行手段8によって並行プログラム1を実行する
が(ステップ610)、このとき、テーブル比較手段3
8において、実行情報9と実行時制御テーブル35とが
比較され(ステップ611)、実行時制御テーブル35
に基づいて実行可能な挙動からシナリオで許された挙動
だけが選出される(ステップ612)。そして、選出さ
れた挙動だけが実行されるように、実行制御情報21が
生成され、これによってシナリオで許されていない挙動
の実行が抑制される(ステップ613)。一方、シナリ
オで許された挙動が存在しない場合には、比較結果表示
手段11によって、ユーザに警告を行なう(ステップ6
14)。Execution of Concurrent Program and Warning Display Next, the concurrent program 1 is executed by the execution means 8 (step 610).
At 8, the execution information 9 is compared with the execution control table 35 (step 611), and the execution control table 35 is compared.
Only the behaviors allowed in the scenario are selected from the executable behaviors based on (step 612). Then, the execution control information 21 is generated so that only the selected behavior is executed, whereby the execution of the behavior not permitted in the scenario is suppressed (step 613). On the other hand, if the behavior permitted in the scenario does not exist, a warning is issued to the user by the comparison result display means 11 (step 6).
14).
【0070】ここで、例えば、図12に示す実行時制御
テーブル35を用いた場合の単位命令の実行サイクル
を、図13のフローチャートに従って以下に説明する。
すなわち、実行時制御テーブル35から、現在の状態S
1に対応する制御情報I(S1)を求める(ステップ1
300,1301)。そして、制御情報I(S1)の中
から、S1において条件Cを満たすC:P/S2を求め
る(ステップ1302)。Cを満たすC:P/S2があ
れば(ステップ1303)、ステップ1305に進む。
Cを満たすものがなければ、「シナリオにない挙動をし
ています」を意味する警告を表示する(ステップ130
4)。なお、警告を表示した後、以下のいずれかの処理
を行う。Here, for example, the execution cycle of the unit instruction when the execution control table 35 shown in FIG. 12 is used will be described with reference to the flowchart of FIG.
That is, from the runtime control table 35, the current state S
1 is obtained (step 1).
300, 1301). Then, C: P / S2 satisfying the condition C in S1 is obtained from the control information I (S1) (step 1302). If there is C: P / S2 that satisfies C (step 1303), the process proceeds to step 1305.
If there is nothing that satisfies C, a warning indicating "behavior not in the scenario" is displayed (step 130).
4). After the warning is displayed, one of the following processes is performed.
【0071】α:プログラムを安全に停止する β:ある安全状態(例えば初期状態)までバックトラッ
クして実行を再開する γ:そのまま実行を継続する さらに、C:P/S2のPが明記されていれば(ステッ
プ1305)、Pにプロセスを切替えてPの単位命令を
実行する(ステップ1306)。C:P/S2のPが明
記されていれいなければ(C:−/P) 、プロセス切替
を行なわずに単位命令を実行する(ステップ130
7)。以上のように、単位命令を実行して、ステップ1
300に戻る。Α: Stop the program safely. Β: Backtrack to a certain safe state (for example, initial state) and resume execution. Γ: Continue execution. Further, C: P of P / S2 is specified. If it is (Step 1305), the process is switched to P and the P unit instruction is executed (Step 1306). If the P of C: P / S2 is not specified (C:-/ P), the unit instruction is executed without performing the process switching (step 130).
7). As described above, the unit instruction is executed, and step 1 is executed.
Return to 300.
【0072】(効果)以上のような本実施の形態によれ
ば、状態抽象化関数37を用いることによって、並行プ
ログラム1をシナリオグラフ33として表現するととも
に、参照が容易なテーブル形式で記述した実行時制御テ
ーブル35を用いることによって、並行プログラム1の
実行を制御することができるので、シナリオで許されて
いる挙動のみを実行する信頼度の高いプログラムの作成
がより容易なものとなる。(Effect) According to the present embodiment as described above, by using the state abstraction function 37, the concurrent program 1 is expressed as the scenario graph 33, and the execution is described in a table format that can be easily referred to. Since the execution of the concurrent program 1 can be controlled by using the time control table 35, it becomes easier to create a highly reliable program that executes only the behavior permitted in the scenario.
【0073】(6)第6の実施の形態 (構成)本実施の形態は、請求項1〜5記載の発明に対
応するものであり、上記の第5の実施の形態に、第2の
実施の形態と同様のシナリオ登録手段12を追加したも
のである。(6) Sixth Embodiment (Structure) This embodiment corresponds to the first to fifth aspects of the present invention. In this embodiment, the same scenario registration means 12 as that of the first embodiment is added.
【0074】(作用)以上のような構成を有する本実施
の形態においては、上記の第5の実施の形態のステップ
1304において、警告を表示してそのまま実行を継続
した場合、その実行に問題がなければ、その実行も新し
いシナリオとして、シナリオ登録手段12によって実行
時制御テーブル35に付加する。そして、それ以降は、
同様な状態になった場合であっても、警告を表示せずに
実行制御テーブル35に基づいて実行を進める。(Operation) In the present embodiment having the above configuration, if a warning is displayed and the execution is continued in step 1304 of the fifth embodiment, there is no problem in the execution. If not, the execution is added as a new scenario to the runtime control table 35 by the scenario registration means 12. And after that,
Even in a similar case, the execution is advanced based on the execution control table 35 without displaying a warning.
【0075】(効果)以上のような本実施の形態によれ
ば、最初の段階ではシナリオが不十分で警告が多い場合
であっても、実際にソフトウェアが使われていく過程
で、シナリオが増えて警告が少なくなってくる。従っ
て、例えば、安全性が重要視されるプラント等では、警
告のたびに運転員が緊急時に備えて待機する必要がある
が、システムが使い込まれていくに従って警告の回数が
減り、本当に重要な場合のみ待機すればよくなる。この
ように、本実施の形態によれば、信頼性の高いプログラ
ムの作成がより容易となる。(Effects) According to the present embodiment as described above, even if the scenario is insufficient at the initial stage and there are many warnings, the number of scenarios increases in the process of actually using the software. Warnings will be reduced. Therefore, for example, in a plant or the like where safety is considered important, it is necessary for the operator to wait for an emergency in case of warning, but the number of warnings decreases as the system is used, You only have to wait. As described above, according to the present embodiment, it is easier to create a highly reliable program.
【0076】(7)第7の実施の形態 本実施の形態は、請求項8記載の発明に対応するもので
あり、上記の第5の実施の形態において、各シナリオに
対応する挙動について、実行の優先度を導入し、実行可
能な望ましいシナリオに高い優先度を設定し、一方、シ
ナリオ情報には登録されていないが実行可能な挙動につ
いては、実行の優先度を最低に設定したものである。(7) Seventh Embodiment This embodiment corresponds to the eighth aspect of the present invention. In the fifth embodiment, the behavior corresponding to each scenario is executed. And set a high priority to a desirable scenario that can be executed, and set the execution priority to the lowest for behaviors that are not registered in the scenario information but are executable. .
【0077】このような本実施の形態においては、上記
の第5の実施の形態におけるステップ611,612に
おいて、実行時制御テーブル22に優先度が高いシナリ
オに対応する実行可能な挙動が存在しない場合には、そ
れより優先度が低いシナリオに対応する実行可能な挙動
が実行される。一方、シナリオと一致する挙動が存在し
ない場合には、優先度が最低の実行可能な挙動が実行さ
れる。In this embodiment, when there is no executable behavior corresponding to a high priority scenario in the run-time control table 22 in steps 611 and 612 in the fifth embodiment described above. , An executable behavior corresponding to a scenario having a lower priority is executed. On the other hand, if there is no behavior that matches the scenario, the executable behavior with the lowest priority is executed.
【0078】このように、本実施の形態によれば、実行
可能な望ましいシナリオが存在しない場合であっても、
優先順位に従って、次善のシナリオに基づくプログラム
の作成が可能となる。As described above, according to the present embodiment, even if there is no desirable scenario that can be executed,
According to the priority, it is possible to create a program based on a suboptimal scenario.
【0079】(8)第8の実施の形態 本実施の形態は、請求項9記載の発明に対応するもので
あり、上記の第5の実施の形態におけるステップ61
1,612において、実行時制御テーブル22にシナリ
オと一致する挙動が存在しない場合に、実行手段8にお
けるプログラムの状態を強制的に安全状態にする安全状
態記憶装置を導入したものである。例えば、原子力発電
所の制御システムで用いられる緊急停止状態も安全状態
の一つである。このような本実施の形態によれば、警告
に基づいてユーザが判断するまでもなく、システムが自
動的に安全状態となるので、危険性の高い設備の制御シ
ステムに適したプログラムを作成することができる。(8) Eighth Embodiment This embodiment corresponds to the ninth aspect of the present invention, and corresponds to step 61 in the fifth embodiment.
1 and 612, a safe state storage device for forcibly setting the state of the program in the execution means 8 to a safe state when there is no behavior matching the scenario in the run-time control table 22 is introduced. For example, an emergency stop state used in a control system of a nuclear power plant is one of the safe states. According to the present embodiment, since the system automatically enters the safe state without the user making a determination based on the warning, it is possible to create a program suitable for a control system of a high-risk facility. Can be.
【0080】(9)第9の実施の形態 (構成)本実施の形態は、請求項10記載の発明に対応
する実施の形態であり、図14に示すように、実行手段
8がプログラム実行タスク切替え部81と、割り込み処
理部82を有するものである。また、実行制御情報21
は、割り込みフラグ71及びタスク情報72によって構
成されている。なお、本実施の形態は、より具体的に
は、図15に示すように、テーブル比較手段38をAI
SCなどのハードウェア、実行手段8をリアルタイムO
Sで実現することができる。(9) Ninth Embodiment (Structure) This embodiment is an embodiment corresponding to the tenth aspect of the present invention. As shown in FIG. It has a switching unit 81 and an interrupt processing unit 82. Also, the execution control information 21
Is composed of an interrupt flag 71 and task information 72. In the present embodiment, more specifically, as shown in FIG.
Hardware such as SC and execution means 8 in real time O
S can be realized.
【0081】(作用)以上のような構成を有する本実施
の形態においては、通常のプログラム実行は、OSにお
けるプログラム実行タスク切替え部81によるシナリオ
の選択によって実現される。そして、プログラムの実行
を制御するためにタスクを切替える必要のある場合だ
け、割り込み処理部82で対応する。(Operation) In the present embodiment having the above configuration, normal program execution is realized by selecting a scenario by the program execution task switching unit 81 in the OS. Then, only when it is necessary to switch the task in order to control the execution of the program, the interrupt processing unit 82 copes.
【0082】より具体的には、図15に示すように、プ
ログラムの状態をメモリ/レジスタからハードウェア的
に直接読み込み、シナリオに適合したタスク切替の必要
性の有無をAISC化されたテーブル比較手段38によ
って瞬時に判定する。判定の結果は、タスク切替が必要
な場合は割り込みフラグ71をハードウェア的に立て
る。するとCPUはOSの通常の処理を中断し、指定さ
れた割り込み処理プログラムを実行する。この割り込み
処理プログラムにおいて、現タスクをOSのサスペンド
命令でサスペンドし、アクティブにすべきタスクをOS
のレジューム命令でアクティブにする。この割り込み処
理が終り次第、通常のOSの処理へ制御を戻す。More specifically, as shown in FIG. 15, the state of the program is read directly from the memory / register in a hardware manner, and the necessity of task switching suitable for the scenario is determined by the AISC-based table comparing means. 38 to determine instantaneously. As a result of the determination, when task switching is required, the interrupt flag 71 is set in hardware. Then, the CPU interrupts the normal processing of the OS and executes the specified interrupt processing program. In this interrupt processing program, the current task is suspended by the suspend instruction of the OS, and the task to be activated is determined by the OS.
Activate with resume command. As soon as this interrupt processing is completed, the control is returned to the normal OS processing.
【0083】(効果)以上のような本実施の形態によれ
ば、プログラムの各命令実行ごとにテーブル比較及びタ
スクの切替えを行なう必要がなく、テーブル比較とプロ
グラムの実行を可能な限り並行に行なうことができるの
で、実行のオーバヘッドが大きくなることがない。特
に、上記のようなASICによるテーブル比較と割り込
み処理により、実行時のオーバーヘッドを大幅に軽減で
きる。(Effect) According to the present embodiment as described above, there is no need to perform table comparison and task switching for each instruction execution of the program, and the table comparison and program execution are performed as parallel as possible. The execution overhead does not increase. In particular, the overhead at the time of execution can be significantly reduced by the table comparison and interrupt processing by the ASIC as described above.
【0084】(10)第10の実施の形態 (構成)本実施の形態は、請求項11記載の発明に対応
する実施の形態である。上記の各実施の形態は、逐次的
な実行履歴としてのシナリオ情報を対象としていたが、
本実施の形態は、シナリオ情報を生成できる超逐次プロ
グラムを対象としたものである。すなわち、本実施の形
態は、図16に示すように、逐次化手段22、テスト・
デバッグ手段26、実行時比較情報生成手段41、実行
手段8、比較手段10、比較結果表示手段11によって
構成されている。(10) Tenth Embodiment (Structure) This embodiment is an embodiment corresponding to the eleventh aspect of the present invention. In each of the above embodiments, scenario information as a sequential execution history has been targeted.
This embodiment is directed to a super-sequential program capable of generating scenario information. That is, in the present embodiment, as shown in FIG.
It comprises a debugging unit 26, a runtime comparison information generation unit 41, an execution unit 8, a comparison unit 10, and a comparison result display unit 11.
【0085】(作用)以上のような構成の本実施の形態
では、並行プログラム1は、逐次化手段22において超
逐次プログラム23とされ、この超逐次プログラム23
に対してテスト・デバッグ手段26によってテスト・デ
バッグが行われる。このように、テスト・デバッグによ
り正常に動作することが確認された超逐次プログラム2
3から、実行時比較情報生成手段41によって、実行時
比較情報42を生成する。(Operation) In the present embodiment having the above-described configuration, the parallel program 1 is converted into a super-sequential program 23 by the serialization means 22.
Is subjected to test debugging by the test debugging means 26. As described above, the ultra-sequential program 2 confirmed to operate normally by test / debugging
3, the runtime comparison information generating means 41 generates runtime comparison information 42.
【0086】そして、実行手段8による並行プログラム
1の実行時に、比較手段10によって、プログラムの実
行情報9と実行時比較情報42とを比較して、もし並行
プログラム1の実行が実行時比較情報42にない挙動を
している場合は、比較結果表示手段11によってユーザ
に警告する。Then, when the concurrent program 1 is executed by the execution means 8, the comparing means 10 compares the execution information 9 of the program with the comparison information 42 at the time of execution. If the behavior is not described above, the comparison result display means 11 warns the user.
【0087】(効果)以上のような本実施の形態によれ
ば、上記の第1の実施の形態と同様の効果が得られると
ともに、一般に、シナリオ情報自体よりもそのシナリオ
情報を生成するプログラム(ここでは超逐次プログラム
23)を対象とする方が、その記憶容量が小さいので、
メモリを有効に活用することができるとともに、迅速な
処理が可能となる。(Effects) According to the present embodiment as described above, the same effects as those of the first embodiment can be obtained, and in general, a program (scenario information) for generating the scenario information rather than the scenario information itself. Here, the super-sequential program 23) has a smaller storage capacity because it is targeted.
The memory can be effectively used, and quick processing can be performed.
【0088】(11)第11の実施の形態 (構成)本実施の形態は、請求項12記載の発明に対応
するものであり、図17に示すように、第10の実施の
形態とほぼ同様の構成であるが、比較結果表示手段11
を有していない。そして、実行時比較情報42にない挙
動では並行プログラム1が動かないように、比較手段1
0が、プログラムの実行情報9と実行時比較情報42と
の比較結果に基づいて、並行プログラム1の実行を制御
する実行制御情報21を生成して、実行手段8の実行を
制御するように構成されている。(11) Eleventh Embodiment (Structure) This embodiment corresponds to the invention described in claim 12, and is substantially the same as the tenth embodiment as shown in FIG. The comparison result display means 11
Do not have. Then, the comparing means 1 operates so that the concurrent program 1 does not operate in the behavior not included in the runtime comparison information 42.
0 generates the execution control information 21 for controlling the execution of the concurrent program 1 based on the comparison result between the execution information 9 of the program and the comparison information 42 at the time of execution, and controls the execution of the execution means 8. Have been.
【0089】(作用)以上のような構成の本実施の形態
では、並行プログラム1は、逐次化手段22によって超
逐次プログラム23とされ、この超逐次プログラム23
に対してテスト・デバッグ手段26によってテスト・デ
バッグが行われる。このように、テスト・デバッグによ
り正常に動作することが確認された超逐次プログラム2
3から、実行時比較情報生成手段41によって、実行時
比較情報42を生成する。(Operation) In the present embodiment having the above-described configuration, the parallel program 1 is converted into a super-sequential program 23 by the serializing means 22.
Is subjected to test debugging by the test debugging means 26. As described above, the ultra-sequential program 2 confirmed to operate normally by test / debugging
3, the runtime comparison information generating means 41 generates runtime comparison information 42.
【0090】そして、実行手段8による並行プログラム
1の実行時に、比較手段10によって、プログラムの実
行情報9と実行時比較情報42を比較して、もし並行プ
ログラム1の実行が実行時比較情報42にない挙動をし
ている場合は、比較手段10によって実行制御情報21
が生成される。そして、この実行制御情報21に基づい
て、実行時比較情報42になかった挙動では動かないよ
うに、実行手段8における並行プログラム1の実行が制
御される。When the execution means 8 executes the concurrent program 1, the comparing means 10 compares the execution information 9 of the program with the comparison information 42 at the time of execution. If the behavior does not exist, the comparing means 10 executes the execution control information 21.
Is generated. Then, based on the execution control information 21, the execution of the concurrent program 1 by the execution means 8 is controlled so as not to move in a behavior not included in the execution time comparison information 42.
【0091】(効果)以上のような本実施の形態によれ
ば、第2の実施の形態と同様の効果が得られるととも
に、第10の実施の形態と同様に、メモリの有効活用、
迅速処理が可能となる。(Effects) According to the present embodiment as described above, the same effects as those of the second embodiment can be obtained, and the effective use of the memory,
Rapid processing becomes possible.
【0092】(12)第12の実施の形態 (構成)本実施の形態は、請求項13記載の発明に対応
するものであり、第10の実施の形態又は第11の実施
の形態をさらに改良したものである。すなわち、超逐次
プログラム23に対して良い非決定性の導入を行う良い
非決定性導入手段を有している点が異なる。(12) Twelfth Embodiment (Structure) This embodiment corresponds to the invention described in claim 13, and further improves the tenth embodiment or the eleventh embodiment. It was done. That is, the difference is that a good non-deterministic introduction means for introducing good non-determinism into the super-sequential program 23 is provided.
【0093】(作用)以上のような本実施の形態では、
並行プログラム1は逐次化手段22において超逐次プロ
グラム23とされ、この超逐次プログラム23に対して
テスト・デバッグ手段26によってテスト・デバッグが
行われる。テスト・デバッグにより正常に動作すること
が確認された超逐次プログラム23に対しては、良い非
決定性導入手段27によって、部分的に良い非決定性に
関する情報が導入される。(Operation) In the present embodiment as described above,
The parallel program 1 is converted into a super-sequential program 23 by the serialization means 22, and the super-sequential program 23 is tested and debugged by the test debugging means 26. Good nondeterminism introduction means 27 partially introduces information about good nondeterminism into the ultra-sequential program 23 that has been confirmed to operate normally by test / debug.
【0094】このように部分的に良い非決定性が導入さ
れた部分超逐次プログラムに対して、さらにテスト・デ
バッグが行われるが、良い非決定性に関する部分につい
ては、非決定的な振る舞いをするので、その振る舞いす
べてについてテスト・デバッグが行われる。このよう
に、テスト・デバッグ及び良い非決定性に関する情報の
導入を繰り返し、良い非決定性に関する情報を徐々に付
加していく。Test and debug are further performed on the partially super-sequential program into which good nondeterminism has been partially introduced as described above. However, since the part related to good nondeterminism behaves nondeterministically, Test and debug for all behavior. In this manner, the test / debug and the introduction of the information about the good non-determinism are repeated, and the information about the good non-determinism is gradually added.
【0095】さらに、良い非決定性の導入が行われた部
分超逐次プログラムから、実行時比較情報生成手段41
によって、実行時比較情報42を生成する。そして、実
行手段8による並行プログラム1の実行時に、比較手段
10によって、プログラムの実行情報9と実行時比較情
報42とを比較する。Further, from the partial hyper-sequential program into which good non-determinism has been introduced, the runtime comparison information generating means 41
Thus, the runtime comparison information 42 is generated. Then, when the execution program 8 executes the concurrent program 1, the comparison program 10 compares the execution information 9 of the program with the execution comparison data 42.
【0096】ここで、第10の実施の形態を改良した実
施の形態では、もし並行プログラム1の実行が実行時比
較情報42にない挙動をしている場合は、比較結果表示
手段11によってユ−ザに警告する。また、第11の実
施の形態を改良した実施の形態では、もし並行プログラ
ム1の実行が実行時比較情報42にない挙動をしている
場合は、比較手段10によって実行制御情報21が生成
される。そして、、この実行制御情報21に基づいて、
実行時比較情報42になかった挙動では動かないよう
に、実行手段8における並行プログラム1の実行が制御
される。Here, in an embodiment obtained by improving the tenth embodiment, if the execution of the concurrent program 1 is not in the execution-time comparison information 42, the comparison result display means 11 uses the user. Warn the. Further, in an embodiment in which the eleventh embodiment is improved, if the execution of the concurrent program 1 is not behaving in the runtime comparison information 42, the execution control information 21 is generated by the comparing means 10. . Then, based on the execution control information 21,
The execution of the concurrent program 1 in the execution means 8 is controlled so as not to move in a behavior not included in the execution time comparison information 42.
【0097】(効果)以上のような本実施の形態によれ
ば、第10の実施の形態及び第11の実施の形態と同様
の効果が得られるとともに、良い非決定性の導入された
部分超逐次プログラムに基づいて実行時比較情報42が
作成されるので、より信頼性の高いプログラムの作成・
実行が可能となる。(Effect) According to the present embodiment as described above, the same effects as those of the tenth and eleventh embodiments can be obtained, and the partial super-sequential Since the run-time comparison information 42 is created based on the program, it is possible to create a more reliable program.
Execution is possible.
【0098】(13)他の実施の形態 上記の実施の形態は、一般的に開発が難しいとされる並
行プログラムを対象としているが、外部からの入力によ
る非決定性や処理系の問題による非決定性を有する逐次
プログラムに関しても適用可能である。(13) Other Embodiments The above embodiments are directed to concurrent programs which are generally difficult to develop, but are nondeterministic due to external input or nondeterminism due to processing system problems. The present invention is also applicable to a sequential program having
【0099】また、本発明を実現するコンピュータの規
模・構成やCPUの数・形式は自由で、例えば、コンピ
ュータネットワーク、分散処理など各種の構成を自由に
用い得る。すなわち、本発明は、上記のようなマルチC
PUによる構成例に限定されるものではなく、共有メモ
リのある並列計算機、共有メモリのない並列計算機、分
散ネットワーク計算機システム、単一のCPUにおける
マルチタスクシステムでもよい。なお、単一のCPUに
おけるマルチタスクシステムの場合は、1つのCPUに
複数のプロセスが存在しうる。The size and the configuration of the computer for realizing the present invention and the number and the form of the CPU are free. For example, various configurations such as a computer network and distributed processing can be used freely. That is, the present invention provides a multi-C
The present invention is not limited to the configuration example using the PU, and may be a parallel computer having a shared memory, a parallel computer having no shared memory, a distributed network computer system, or a multitask system using a single CPU. In the case of a multitask system using a single CPU, a plurality of processes can exist in one CPU.
【0100】さらに、請求項16及び請求項17記載の
発明として、上記の実施の形態を実現するソフトウエア
を記録した媒体を構成することも可能である。Further, as the invention of the sixteenth and seventeenth aspects, it is possible to configure a medium in which software for realizing the above embodiment is recorded.
【0101】[0101]
【発明の効果】以上説明したように、本発明によれば、
プログラム実行時において、シナリオ以外の挙動が実行
された場合には、警告等の信号をユーザに表示すること
により、プログラムの信頼性を確保できるプログラム開
発支援装置、プログラム開発支援方法及びプログラム開
発支援プログラムを記録した媒体を提供することができ
る。As described above, according to the present invention,
A program development support device, a program development support method, and a program development support program that can ensure the reliability of a program by displaying a signal such as a warning to a user when a behavior other than a scenario is executed during program execution. Can be provided.
【0102】また、本発明によれば、プログラム実行時
において、シナリオ以外の挙動が抑制されるように制御
することにより、プログラムの高信頼化を達成できるプ
ログラム開発支援装置、プログラム開発支援方法及びプ
ログラム開発支援プログラムを記録した媒体を提供する
ことができる。Further, according to the present invention, a program development support apparatus, a program development support method, and a program capable of achieving high reliability of a program by controlling behavior other than a scenario during execution of the program are controlled. A medium on which the development support program is recorded can be provided.
【図1】本発明を実現するコンピュータシステムの一例
を示す構成図である。FIG. 1 is a configuration diagram illustrating an example of a computer system that implements the present invention.
【図2】本発明の第1の実施の形態を示すブロック図で
ある。FIG. 2 is a block diagram showing a first embodiment of the present invention.
【図3】本発明の第2の実施の形態を示すブロック図で
ある。FIG. 3 is a block diagram showing a second embodiment of the present invention.
【図4】本発明の第3の実施の形態を示すブロック図で
ある。FIG. 4 is a block diagram showing a third embodiment of the present invention.
【図5】本発明の第5の実施の形態を示すブロック図で
ある。FIG. 5 is a block diagram showing a fifth embodiment of the present invention.
【図6】図5の実施の形態における処理手順を示すフロ
ーチャートである。FIG. 6 is a flowchart showing a processing procedure in the embodiment of FIG.
【図7】並行プログラムの一例を示す構造図である。FIG. 7 is a structural diagram showing an example of a concurrent program.
【図8】図6の並行プログラムをソースコードで表現し
たものの一例を示す説明図である。FIG. 8 is an explanatory diagram showing an example of the parallel program of FIG. 6 expressed in source code.
【図9】図6の並行プログラムを状態遷移システムで表
現したものの一例を示す説明図である。FIG. 9 is an explanatory diagram showing an example of the parallel program of FIG. 6 expressed by a state transition system.
【図10】図5の実施の形態におけるシナリオグラフの
一例を示す説明図である。FIG. 10 is an explanatory diagram showing an example of a scenario graph in the embodiment of FIG.
【図11】図5の実施の形態における実行可能なトラン
ジションを表した実行時制御テーブルの一例を示す説明
図である。FIG. 11 is an explanatory diagram showing an example of a run-time control table representing executable transitions in the embodiment of FIG. 5;
【図12】図5の実施の形態における実行状態でのタス
ク切替えを表した実行時制御テーブルの一例を示す説明
図である。FIG. 12 is an explanatory diagram showing an example of a run-time control table representing task switching in an execution state in the embodiment of FIG. 5;
【図13】図5の実施の形態における並行プログラムの
実行と警告表示の手順を示すフローチャートである。FIG. 13 is a flowchart showing a procedure of executing a concurrent program and displaying a warning in the embodiment of FIG. 5;
【図14】本発明の第9の実施の形態を示すブロック図
である。FIG. 14 is a block diagram showing a ninth embodiment of the present invention.
【図15】図14の実施の形態をハードウエア化したも
のの一例を示すブロック図である。FIG. 15 is a block diagram showing an example in which the embodiment of FIG. 14 is implemented in hardware.
【図16】本発明の第10の実施の形態を示すブロック
図である。FIG. 16 is a block diagram showing a tenth embodiment of the present invention.
【図17】本発明の第11の実施の形態を示すブロック
図である。FIG. 17 is a block diagram showing an eleventh embodiment of the present invention.
【図18】並行プログラムの作成支援装置の一例を示す
ブロック図である。FIG. 18 is a block diagram illustrating an example of a parallel program creation support device.
【図19】並行プログラムの作成支援装置の他の一例を
示すブロック図である。FIG. 19 is a block diagram showing another example of the parallel program creation support device.
1…並行プログラム 2,30…シナリオ作成手段 3…シナリオ情報 6,26…テスト・デバッグ手段 8…実行手段 9…プログラムの実行情報 10…比較手段 11…比較結果表示手段 12…シナリオ登録手段 13…ユーザ指示 20…実行抑制手段 21…実行抑制情報 22…逐次化手段 23…超逐次プログラム 24…並行化手段 25…並行プログラム 27…良い並行性導入手段 31…シナリオの集合 32…シナリオグラフ生成手段 33…シナリオグラフ 34…実行時制御テーブル作成手段 35…実行時制御テーブル 36…状態抽象化関数設定手段 37…状態抽象化関数 38…テーブル比較手段 41…実行時比較情報抽出手段 42…実行時制御情報 71…割り込みフラグ 72…タスク情報 81…プログラム実行タスク切替え手段 82…割り込み処理手段 101−1〜101−N…プロセッサ 102…I/Oインタフェイス 103…共有メモリ 104…出力装置 105…入力装置 106…外部記憶装置 601以降、1300以降…手順の各ステップ DESCRIPTION OF SYMBOLS 1 ... Concurrent program 2, 30 ... Scenario creation means 3 ... Scenario information 6, 26 ... Test / debugging means 8 ... Execution means 9 ... Program execution information 10 ... Comparison means 11 ... Comparison result display means 12 ... Scenario registration means 13 ... User instruction 20 ... Execution suppression means 21 ... Execution suppression information 22 ... Serialization means 23 ... Super-sequential program 24 ... Parallelization means 25 ... Parallel program 27 ... Good concurrency introduction means 31 ... Scenario set 32 ... Scenario graph generation means 33 ... Scenario graph 34 ... Run-time control table creation means 35 ... Run-time control table 36 ... State abstraction function setting means 37 ... State abstraction function 38 ... Table comparison means 41 ... Run-time comparison information extraction means 42 ... Run-time control information 71: interrupt flag 72: task information 81: program execution task switching 82 ... interruption processing unit 101-1 to 101-N ... processor 102 ... I / O interface 103 ... shared memory 104 ... output device 105 ... input device 106 ... external storage device 601 and later steps of the 1300 or later ... Procedure
Claims (17)
開発支援装置において、 与えられたプログラムから、シナリオ情報を作成するシ
ナリオ作成手段と、 前記プログラムを実行する実行手段と、 前記実行手段によって実行されたプログラムの実行情報
と前記シナリオ情報とを比較する比較手段と、 前記比較手段による比較結果を表示する表示手段とを有
することを特徴とするプログラム開発支援装置。1. A program development support device for supporting development of a program, comprising: scenario creation means for creating scenario information from a given program; execution means for executing the program; and program executed by the execution means. A program development support device, comprising: comparison means for comparing the execution information with the scenario information; and display means for displaying a comparison result by the comparison means.
開発支援装置において、 与えられたプログラムから、シナリオ情報を作成するシ
ナリオ作成手段と、 前記プログラムを実行する実行手段と、 前記実行手段によって実行されたプログラムの実行情報
と前記シナリオ情報とを比較する比較手段とを有し、 前記実行手段が、前記比較手段による比較結果に基づい
て、前記プログラムの実行を制御することを特徴とする
プログラム開発支援装置。2. A program development support device for supporting program development, wherein: a scenario creation unit that creates scenario information from a given program; an execution unit that executes the program; and a program executed by the execution unit. And a comparison means for comparing the execution information of the program with the scenario information, wherein the execution means controls the execution of the program based on a comparison result by the comparison means.
表示手段を有することを特徴とする請求項2記載のプロ
グラム開発支援装置。3. The program development support device according to claim 2, further comprising display means for displaying a result of comparison by said comparison means.
加する登録手段を有することを特徴とする請求項1〜3
のいずれか1項に記載のプログラム開発支援装置。4. The apparatus according to claim 1, further comprising a registration unit for adding a new scenario to said scenario information.
The program development support device according to any one of the preceding claims.
状態抽象化手段と、 前記状態抽象化手段によって得られた抽象化関数に基づ
いて、前記シナリオ情報を有限状態遷移グラフで表すシ
ナリオグラフ生成手段とを有することを特徴とする請求
項1〜4のいずれか1項に記載のプログラム開発支援装
置。5. State abstraction means for abstracting the execution state of the program, and scenario graph generation means for representing the scenario information as a finite state transition graph based on an abstraction function obtained by the state abstraction means The program development support device according to any one of claims 1 to 4, further comprising:
ことを特徴とする請求項5記載のプログラム開発支援装
置。6. The program development support device according to claim 5, wherein the abstraction function is a hash function.
部分集合を指定する指定手段を有し、 前記状態抽象化手段は、前記指定手段によって指定され
た部分集合の要素のみを対象とすることを特徴とする請
求項5又は請求項6記載のプログラム開発支援装置。7. A program according to claim 7, further comprising a designation unit for designating a subset of elements constituting a state of the program, wherein the state abstraction unit targets only the elements of the subset designated by the designation unit. The program development support device according to claim 5 or 6, wherein
設定されていることを特徴とする請求項1又は請求項2
記載のプログラム開発支援装置。8. The scenario information according to claim 1, wherein an execution priority is set in the scenario information.
The described program development support device.
リオ情報と一致する挙動が存在しない場合に、実行手段
においてプログラムの状態を強制的に安全状態にする安
全状態記憶手段を有することを特徴とする請求項1又は
請求項2記載のプログラム開発支援装置。9. A program according to claim 7, wherein said execution information includes a safe state storage means for forcibly changing the state of the program to a safe state when there is no behavior matching the scenario information. The program development support device according to claim 1 or 2.
によってシナリオの選択を行う実行タスク切替え部と、
前記プログラムの実行を制御する情報に基づいて、割り
込み処理を行う割り込み処理部を有することを特徴とす
る請求項1又は請求項2記載のプログラム開発支援装
置。10. An execution task switching unit for selecting a scenario by switching execution tasks, wherein the execution means includes:
3. The program development support device according to claim 1, further comprising an interrupt processing unit that performs an interrupt process based on information for controlling execution of the program.
グラム開発支援装置において、 与えられた並行プログラムを、逐次実行可能な超逐次プ
ログラムに変換する逐次化手段と、 前記超逐次プログラムから実行時比較情報を生成する実
行時比較情報生成手段と、 前記並行プログラムを実行する実行手段と、 前記実行手段によって実行された前記並行プログラムの
実行情報と、前記実行時比較情報とを比較する比較手段
と、 前記比較手段による比較結果を表示する表示手段とを有
することを特徴とするプログラム開発支援装置。11. A program development support device for supporting the development of a concurrent program, comprising: a serializing means for converting a given concurrent program into a super-sequential program that can be sequentially executed; Runtime comparison information generating means for generating; execution means for executing the concurrent program; execution information of the concurrent program executed by the execution means; and comparison means for comparing the runtime comparison information; And a display means for displaying a result of comparison by the means.
グラム開発支援装置において、 与えられた並行プログラムを、逐次実行可能な超逐次プ
ログラムに変換する逐次化手段と、 前記超逐次プログラムから実行時比較情報を生成する実
行時比較情報生成手段と、 前記並行プログラムを実行する実行手段と、 前記実行手段によって実行された前記並行プログラムの
実行情報と、前記実行時比較情報とを比較する比較手段
と、 前記実行手段が、前記比較手段による比較結果に基づい
て、前記並行プログラムの実行を制御することを特徴と
するプログラム開発支援装置。12. A program development support apparatus for supporting the development of a concurrent program, comprising: a serializing means for converting a given concurrent program into a hyper-sequential program that can be sequentially executed; Runtime comparison information generating means for generating; execution means for executing the concurrent program; execution information of the concurrent program executed by the execution means; and comparison means for comparing the runtime comparison information; Means for controlling execution of the concurrent program based on a result of comparison by the comparing means.
を導入する導入手段を有し、 前記実行時比較情報生成手段は、良い非決定性が導入さ
れた超逐次プログラムから、前記実行時比較情報を生成
することを特徴とする請求項11又は請求項12記載の
プログラム開発支援装置。13. An ultra-sequential program having an introduction unit for introducing good non-determinism into the super-sequential program, wherein the run-time comparison information generation unit generates the run-time comparison information from the hyper-sequential program into which good non-determinism is introduced. 13. The program development support apparatus according to claim 11, wherein
ム開発支援方法において、 与えられたプログラムからシナリオ情報を作成し、 前記プログラムを実行し、 前記プログラムの実行情報と前記シナリオ情報とを比較
し、 その比較結果を表示することを特徴とするプログラム開
発支援方法。14. A program development support method for supporting program development, comprising: creating scenario information from a given program; executing the program; comparing execution information of the program with the scenario information; A program development support method characterized by displaying a result.
ム開発支援方法において、 与えられたプログラムからシナリオ情報を作成し、 前記プログラムを実行し、 前記プログラムの実行情報と前記シナリオ情報とを比較
し、 その比較結果に基づいて、前記プログラムの実行を制御
することを特徴とするプログラム開発支援方法。15. A program development support method for supporting program development, comprising: creating scenario information from a given program; executing the program; comparing execution information of the program with the scenario information; A program development support method, wherein the execution of the program is controlled based on a result.
ム開発支援プログラムを記録した媒体において、 前記プログラムは、 与えられたプログラムからシナリオ情報を作成させるシ
ナリオ作成処理と、 前記プログラムを実行させる実行処理と、 前記プログラムの実行情報と前記シナリオ情報とを比較
させる比較処理と、 その比較結果を表示させる表示処理とを含むことを特徴
とするプログラム開発支援プログラムを記録した媒体。16. A medium on which a program development support program for supporting program development is recorded, the program comprising: a scenario creation process for creating scenario information from a given program; an execution process for executing the program; A medium recording a program development support program, comprising: a comparison process for comparing execution information of a program with the scenario information; and a display process for displaying a result of the comparison.
ム開発支援プログラムを記録した媒体において、 前記プログラムは、 与えられたプログラムからシナリオ情報を作成させるシ
ナリオ作成処理と、 前記プログラムを実行させる実行処理と、 前記プログラムの実行情報と前記シナリオ情報とを比較
させる比較処理と、 その比較結果に基づいて、前記プログラムの実行を制御
させる実行制御処理とを含むことを特徴とするプログラ
ム開発支援プログラムを記録した媒体。17. A medium recording a program development support program for supporting program development, wherein the program is a scenario creation process for creating scenario information from a given program; an execution process for executing the program; A medium recording a program development support program, comprising: a comparison process for comparing execution information of a program with the scenario information; and an execution control process for controlling execution of the program based on the comparison result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9339608A JPH11175369A (en) | 1997-12-10 | 1997-12-10 | Program development supporting device, program development supporting method and medium recording program development supporting program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9339608A JPH11175369A (en) | 1997-12-10 | 1997-12-10 | Program development supporting device, program development supporting method and medium recording program development supporting program |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11175369A true JPH11175369A (en) | 1999-07-02 |
Family
ID=18329104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9339608A Pending JPH11175369A (en) | 1997-12-10 | 1997-12-10 | Program development supporting device, program development supporting method and medium recording program development supporting program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11175369A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003248597A (en) * | 2002-02-25 | 2003-09-05 | Nec Corp | Regression test method and regression test device |
WO2008056419A1 (en) * | 2006-11-09 | 2008-05-15 | Panasonic Corporation | Software verifying device, and api interface evaluating method |
JP2008129661A (en) * | 2006-11-16 | 2008-06-05 | Internatl Business Mach Corp <Ibm> | Information processor, method, and program for determining priority of test case to be executed in regression test |
JP2008217235A (en) * | 2007-03-01 | 2008-09-18 | Fujitsu Ltd | System monitoring program, system monitoring method and system monitor |
KR100898748B1 (en) | 2007-08-01 | 2009-05-25 | 한국철도기술연구원 | Testing method for software safety evaluation of train control system |
JP2010231825A (en) * | 2010-07-21 | 2010-10-14 | Fujitsu Ltd | System monitoring program, system monitoring method, and system monitoring device |
CN107985349A (en) * | 2017-10-24 | 2018-05-04 | 北京全路通信信号研究设计院集团有限公司 | Method and device for realizing single hardware and multiple software and computer storage medium |
CN108351770A (en) * | 2016-02-09 | 2018-07-31 | 西门子公司 | Method and implementation environment for safely implementation procedure order |
JPWO2021140812A1 (en) * | 2020-01-09 | 2021-07-15 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0528010A (en) * | 1991-07-19 | 1993-02-05 | Hitachi Ltd | Method for inferring cause of software bug and expert system |
JPH06161760A (en) * | 1992-11-25 | 1994-06-10 | Toshiba Corp | System diagnostic device |
JPH0816429A (en) * | 1994-04-28 | 1996-01-19 | Toshiba Corp | Parallel program generation supporting device, parallel program generating method, and parallel program executing device |
JPH08123756A (en) * | 1994-10-27 | 1996-05-17 | Nippon Telegr & Teleph Corp <Ntt> | Method and device for executing operation scenario |
JPH08221295A (en) * | 1995-02-13 | 1996-08-30 | Mitsubishi Electric Corp | Fault supporting device |
JPH08249205A (en) * | 1995-03-13 | 1996-09-27 | Toshiba Corp | Visual scenario description debugger |
JPH09114693A (en) * | 1995-10-13 | 1997-05-02 | Toshiba Corp | Program development supporting device and program execution device |
JPH09237191A (en) * | 1995-12-26 | 1997-09-09 | Toshiba Corp | Programming supporting device, programming supporting method and medium recording programming supporting program |
-
1997
- 1997-12-10 JP JP9339608A patent/JPH11175369A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0528010A (en) * | 1991-07-19 | 1993-02-05 | Hitachi Ltd | Method for inferring cause of software bug and expert system |
JPH06161760A (en) * | 1992-11-25 | 1994-06-10 | Toshiba Corp | System diagnostic device |
JPH0816429A (en) * | 1994-04-28 | 1996-01-19 | Toshiba Corp | Parallel program generation supporting device, parallel program generating method, and parallel program executing device |
JPH08123756A (en) * | 1994-10-27 | 1996-05-17 | Nippon Telegr & Teleph Corp <Ntt> | Method and device for executing operation scenario |
JPH08221295A (en) * | 1995-02-13 | 1996-08-30 | Mitsubishi Electric Corp | Fault supporting device |
JPH08249205A (en) * | 1995-03-13 | 1996-09-27 | Toshiba Corp | Visual scenario description debugger |
JPH09114693A (en) * | 1995-10-13 | 1997-05-02 | Toshiba Corp | Program development supporting device and program execution device |
JPH09237191A (en) * | 1995-12-26 | 1997-09-09 | Toshiba Corp | Programming supporting device, programming supporting method and medium recording programming supporting program |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003248597A (en) * | 2002-02-25 | 2003-09-05 | Nec Corp | Regression test method and regression test device |
WO2008056419A1 (en) * | 2006-11-09 | 2008-05-15 | Panasonic Corporation | Software verifying device, and api interface evaluating method |
JP2008129661A (en) * | 2006-11-16 | 2008-06-05 | Internatl Business Mach Corp <Ibm> | Information processor, method, and program for determining priority of test case to be executed in regression test |
JP2008217235A (en) * | 2007-03-01 | 2008-09-18 | Fujitsu Ltd | System monitoring program, system monitoring method and system monitor |
KR100898748B1 (en) | 2007-08-01 | 2009-05-25 | 한국철도기술연구원 | Testing method for software safety evaluation of train control system |
JP2010231825A (en) * | 2010-07-21 | 2010-10-14 | Fujitsu Ltd | System monitoring program, system monitoring method, and system monitoring device |
CN108351770A (en) * | 2016-02-09 | 2018-07-31 | 西门子公司 | Method and implementation environment for safely implementation procedure order |
JP2018525697A (en) * | 2016-02-09 | 2018-09-06 | シーメンス アクチエンゲゼルシヤフトSiemens Aktiengesellschaft | Method and environment for safely executing program instructions |
US10489564B2 (en) | 2016-02-09 | 2019-11-26 | Siemens Aktiengesellschaft | Method and execution environment for the secure execution of program instructions |
CN107985349A (en) * | 2017-10-24 | 2018-05-04 | 北京全路通信信号研究设计院集团有限公司 | Method and device for realizing single hardware and multiple software and computer storage medium |
JPWO2021140812A1 (en) * | 2020-01-09 | 2021-07-15 | ||
WO2021140812A1 (en) * | 2020-01-09 | 2021-07-15 | 日立Astemo株式会社 | Computation device and inspection method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327336B2 (en) | Enhanced thread stepping | |
US7536605B2 (en) | Injection of software faults into an operational system | |
US8903703B2 (en) | Dynamically adjusting speed versus accuracy of computer platform simulation | |
US6895460B2 (en) | Synchronization of asynchronous emulated interrupts | |
US5815702A (en) | Method and software products for continued application execution after generation of fatal exceptions | |
US5611043A (en) | Debugger system and method for controlling child processes | |
US8793115B2 (en) | Interface converter for unified view of multiple computer system simulations | |
US9128837B2 (en) | Providing customizable, process-specific just-in-time debugging in an operating system | |
JP2002268914A (en) | Method for monitoring execution of privileged instruction | |
JPH07225693A (en) | Method for processing thread phenomenon over different address space | |
JPH03217949A (en) | Computer system | |
JPH0638234B2 (en) | System and method for maintaining source instruction atomicity of translated program code | |
US6295613B1 (en) | Debug watch mechanism and method for debugging a computer program | |
US6067415A (en) | System for assisting a programmer find errors in concurrent programs | |
US20040098639A1 (en) | Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems | |
JPH11175369A (en) | Program development supporting device, program development supporting method and medium recording program development supporting program | |
US6012149A (en) | Computer system with polymorphic fault processing | |
US20090271770A1 (en) | Method, system, and computer program product for generating unit testing scripts | |
Floridia et al. | Parallel software-based self-test suite for multi-core system-on-chip: Migration from single-core to multi-core automotive microcontrollers | |
Baur | Instrumenting Java bytecode to replay execution traces of multithreaded programs | |
Lemerre et al. | A model of parallel deterministic real-time computation | |
JPH09237191A (en) | Programming supporting device, programming supporting method and medium recording programming supporting program | |
JP2013109652A (en) | Compiler, control method of program module generated by compiler, and control device which achieves control method | |
JP2912269B2 (en) | Debug system and method | |
WO2006093762A1 (en) | Computer platform simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041228 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050419 |