JP2005173645A - プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体 - Google Patents
プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体 Download PDFInfo
- Publication number
- JP2005173645A JP2005173645A JP2003408096A JP2003408096A JP2005173645A JP 2005173645 A JP2005173645 A JP 2005173645A JP 2003408096 A JP2003408096 A JP 2003408096A JP 2003408096 A JP2003408096 A JP 2003408096A JP 2005173645 A JP2005173645 A JP 2005173645A
- Authority
- JP
- Japan
- Prior art keywords
- event
- events
- parallel execution
- unit
- execution unit
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】 情報処理装置においてそれぞれ実行される複数の事象をグループ化して、互いに並列に実行される複数の並列実行単位に分割するプログラム開発支援装置であって、複数の事象のそれぞれを頂点とし、複数の事象のうち2つの事象の間における実行順序の制約を有向枝として表現した有向グラフデータを取得する有向グラフ取得部と、複数の事象のうち少なくとも2つの事象の組であって、当該事象の組に属する一の事象から有向枝を順方向へたどっていくことにより当該事象の組に属する他の事象へ到達可能でない事象の組である反鎖部分集合を、有向グラフデータから抽出する反鎖部分集合抽出部と、反鎖部分集合に属する複数の事象を、互いに異なる並列実行単位に割り当てる並列実行単位割当部とを備える。
【選択図】図1
Description
C.A.R. Hoare、"Communicating Sequential Processes"、Communications of the ACM 21(8)、1978年8月 R.P. Dilworth、"A decomposition theorem for partially ordered sets"、Ann. of Mathematics 51、p.161−166、1950年
このような情報処理装置は、例えば工場内に配置された各種のFA機器を制御する制御装置や、乗り物内に設けられた各種の機器を制御する制御装置や、コンピュータの入出力デバイス等の制御を行う組込み用コンピュータ等であってよく、プログラム開発支援装置は、このような情報処理装置がFA機器等の制御や入出力デバイス等の制御を行うためのプログラムの開発を支援する。
有向グラフ取得部95は、開発者からプログラムのモデルを入力し、入力されたモデルをグラフ構造のデータに変換する。より具体的には、有向グラフ取得部95は、入力されたモデルから、複数の事象及びこれらの実行順序を示す有向グラフデータを取得する。
また、ユーザインターフェイス部100は、モデルに記述された各事象の処理内容を入力し、事象を識別する識別情報及び当該事象の処理内容を対応付けて処理DB110へ格納する。また、ユーザインターフェイス部100は、複数の事象を複数の並列実行単位に割り当てる方法が2種類以上ある場合に、いずれかの割当方法を開発者に選択させる。
より具体的には、実行命令列生成部160は、プロセス式及び状態遷移モデルの少なくとも1つに基づいて、並列実行単位の状態毎に実行可能な事象を特定する。そして、実行命令列生成部160は、状態毎に実行可能な事象の識別情報を検索キーとして処理DB110から当該事象の処理内容を検索して、当該状態において当該処理内容を実行する実行命令列を生成する。
まず、ユーザインターフェイス部100は、プログラムのモデルを入力し、モデルDB105に格納する。また、ユーザインターフェイス部100は、当該モデルに含まれる複数の事象のそれぞれの処理内容を入力し、処理DB110に格納する(ステップS200)。次に、モデル変換部115は、モデルDB105へ格納されたモデルから有向グラフデータを取得し、グラフDB120へ格納する(S210)。ここで、循環経路を有しない反順序構造をとり、かつ、選択的に実行される2以上の事象を含まない場合に、この有向グラフデータをハッセ図と呼ぶ。
以上において、並列実行単位割当部140は、事象分割部122により循環経路上の1つの事象から分割された第1分割事象及び第2分割事象を同一の並列実行単位に割り当てる。これにより、同一の処理を行うべき2つの分割事象を同一の並列実行単位に割り当てて、当該並列実行単位により処理させることができる。
なお、状態遷移モデル生成部155は、少なくとも1つの並列実行単位の全部又は一部について、当該部分の状態遷移モデルをユーザインターフェイス部100を介して開発者から入力し、当該状態遷移モデルを状態遷移モデル生成部155が生成した状態遷移モデルの全部又は一部として組み込んでもよい。
ここで実行命令列生成部160は、実行前に初期化処理を行うべき一の事象については、当該一の事象を終点とするいずれかの有向枝の始点に接続された事象が実行されたことを条件として、当該一の事象の初期化処理を行わせる実効命令列を生成する。
開発対象システム290は、供給部300、ハンドA310、ターンテーブル320、検査機330、ハンドB340、パス容器350、及びゴミ容器360を備える。供給部300は、製品を供給する。ハンドA310は、供給部300により供給された製品をターンテーブル320上の「set1」の位置に移動させる。ターンテーブル320は、ターンテーブルの回転部分を回転させて、「set1」の位置に載置された製品を「set2」の位置に移動させる。検査機330は、「set2」の位置に移動された製品を検査する。ハンドB340は、検査機330による検査の結果正常と判定された製品をパス容器350に移動し、異常と判定された製品をゴミ容器360に移動する。
以下、上記の開発対象システム290を制御する情報処理装置のプログラムを開発する場合を例として、プログラム開発支援装置10の動作を示す。
供給部300は、製品を供給(supply)し、供給した製品がハンドA310により取り上げられる(pickup1)と次の製品を供給する。ハンドA310は、供給部300から製品を取り上げて、ターンテーブル320に載置する(set1)。ターンテーブル320は、製品がターンテーブル320に載置されると(set1)、回転し(rotate)、「set2」の位置に製品を移動する。ここで、連続して製品を検査する場合、ターンテーブル320は、検査機330による検査(scan)を終え、製品がハンドB340により取り上げられた(pickup2)後に、回転を行う。
そして、モデル変換部115は、これらの事象対を結合して有向グラフデータを生成する。
この結果、例えば工場内に配置された各種のFA機器や、乗り物内に設けられた各種の機器や、コンピュータの入出力デバイス等の制御を行う組込み用コンピュータ上で実行される制御用プログラムをマルチタスク環境で実行させる場合において、当該制御用プログラムの制御対象となる各種の動作の並列性を適切に抽出して並列実行単位を割り当てることができる。これによりプログラム開発支援装置10は、限られた処理能力の組込み用コンピュータを用いてより多くの処理を効率良く行わせることができる制御用プログラムを提供することができる。
95 有向グラフ取得部
100 ユーザインターフェイス部
105 モデルDB
110 処理DB
115 モデル変換部
120 グラフDB
122 事象分割部
125 有向枝置換部
130 選択事象置換部
135 反鎖部分集合抽出部
140 並列実行単位割当部
145 プロセス式生成部
150 初期化処理挿入部
155 状態遷移モデル生成部
160 実行命令列生成部
290 開発対象システム
300 供給部
310 ハンドA
320 ターンテーブル
330 検査機
340 ハンドB
350 パス容器
360 ゴミ容器
600a〜l 事象
650 最大反鎖部分集合
700 並列実行単位
1200 CPU
1210 ROM
1220 RAM
1230 通信インターフェイス
1235 無線通信インターフェイス
1240 ハードディスク・ドライブ
1250 フレキシブルディスク・ドライブ
1260 CD−ROMドライブ
1270 入出力チップ
1275 グラフィック・コントローラ
1280 表示装置
1282 ホスト・コントローラ
1284 入出力コントローラ
1290 フレキシブルディスク
1295 CD−ROM
1300 コンピュータ
Claims (12)
- 情報処理装置においてそれぞれ実行される複数の事象をグループ化して、互いに並列に実行される複数の並列実行単位に分割するプログラム開発支援装置であって、
前記複数の事象のそれぞれを頂点とし、前記複数の事象のうち2つの前記事象の間における実行順序の制約を有向枝として表現した有向グラフデータを取得する有向グラフ取得部と、
各事象から前記有向枝を順方向へたどっていくことにより他のいずれの前記事象にも到達可能でない関係を有する前記事象の組である反鎖部分集合を、前記有向グラフデータから抽出する反鎖部分集合抽出部と、
前記反鎖部分集合に属する複数の事象を、互いに異なる前記並列実行単位に割り当てる並列実行単位割当部と
を備えるプログラム開発支援装置。 - 前記反鎖部分集合抽出部は、複数の前記反鎖部分集合のうち当該反鎖部分集合に属する前記事象の数が最大である前記反鎖部分集合を、前記有向グラフデータから抽出し、
前記並列実行単位割当部は、前記反鎖部分集合に属する複数の事象を、前記反鎖部分集合に属する前記事象の数と同数の前記並列実行単位に割り当てる請求項1記載のプログラム開発支援装置。 - 前記並列実行単位割当部は、前記反鎖部分集合に属する事象のそれぞれについて、当該事象、及び、当該事象から前記有向枝を順方向及び逆方向の少なくとも一方へたどっていくことにより順次到達可能な前記事象を、同一の前記並列実行単位に割り当てる請求項1記載のプログラム開発支援装置。
- 前記並列実行単位割当部は、前記反鎖部分集合に属する事象のそれぞれについて、当該事象、及び、当該事象から前記有向枝を順方向及び逆方向の少なくとも一方へたどっていくことにより順次到達可能な前記事象を、当該事象から到達可能な前記事象が他の前記並列実行単位に割り当てられていないことを条件として、同一の前記並列実行単位に割り当てる請求項3記載のプログラム開発支援装置。
- 前記複数の並列実行単位のそれぞれについて、当該並列実行単位に割り当てられた各事象が終点となる各有向枝に基づいて、当該並列実行単位に割り当てられた各事象の実行順序の関係を示す式であるプロセス式を生成するプロセス式生成部と、
当該並列実行単位に属する前記事象、又は、前記有向枝により当該並列実行単位に属する前記事象に接続される、当該並列実行単位に属さない前記事象の各々が実行されたか否かを特定する複数の状態と、当該複数の状態間の遷移条件とを含む、当該並列実行単位の状態遷移モデルを、前記プロセス式に基づいて生成する状態遷移モデル生成部と
を備える請求項1記載のプログラム開発支援装置。 - 前記複数の並列実行単位のそれぞれについて、当該並列実行単位の前記プロセス式及び前記状態遷移モデルの少なくとも1つに基づいて、当該並列実行単位に属する前記事象に前記有向枝により接続される、当該並列実行単位に属さない前記事象の実行結果を入力として、当該並列実行単位に属する前記事象に対応する処理を前記情報処理装置に実行させると共に、前記状態遷移モデルに基づく状態遷移を前記情報処理装置に行わせる、当該並列実行単位の実行命令列を生成する実行命令列生成部を更に備える請求項5記載のプログラム開発支援装置。
- 前記実効命令列生成部は、実行前に初期化処理を行うべき一の前記事象について、当該一の事象を終点とするいずれかの前記有向枝の始点に接続された前記事象が実行されたことを条件として、当該一の事象の初期化処理を行わせる前記実効命令列を生成する請求項6記載のプログラム開発支援装置。
- 前記複数の事象のうち、前記情報処理装置において繰り返し実行される前記事象について、当該事象を第1分割事象及び第2分割事象に分割する事象分割部と、
前記有向グラフデータにおける当該事象から前記有向枝を順方向へたどっていくことにより当該事象へ到達する循環経路における、当該事象を始点とする前記有向枝を前記第1分割事象を始点とする前記有向枝に置換し、当該事象を終点とする前記有向枝を前記第2分割事象を終点とする前記有向枝に置換する有向枝置換部と
を更に備え、
前記並列実行単位割当部は、前記第1分割事象及び前記第2分割事象を同一の前記並列実行単位に割り当てる
請求項1記載のプログラム開発支援装置。 - 前記複数の事象は、選択的に実行される2以上の選択事象と、前記2以上の選択事象のそれぞれに対応してそれぞれ設けられ、対応する前記選択事象が実行された場合に実行される2以上の対応事象とを含み、
前記有向グラフデータにおける前記2以上の選択事象を1つの前記事象に置換し、前記2以上の対応事象を1つの前記事象に置換する選択事象置換部を更に備え、
前記反鎖部分集合抽出部は、前記選択事象置換部により前記2以上の選択事象及び前記2以上の対応事象がそれぞれ1つの前記事象に置換された前記有向グラフデータから前記反鎖部分集合を抽出する
請求項1記載のプログラム開発支援装置。 - コンピュータにより、情報処理装置においてそれぞれ実行される複数の事象をグループ化して、互いに並列に実行される複数の並列実行単位に分割するプログラム開発支援方法であって、
前記複数の事象のそれぞれを頂点とし、前記複数の事象のうち2つの前記事象の間における実行順序の制約を有向枝として表現した有向グラフデータを前記コンピュータにより取得する有向グラフ取得段階と、
各事象から前記有向枝を順方向へたどっていくことにより他のいずれの前記事象にも到達可能でない関係を有する前記事象の組である反鎖部分集合を、前記有向グラフデータから前記コンピュータにより抽出する反鎖部分集合抽出段階と、
前記反鎖部分集合に属する複数の事象を、互いに異なる前記並列実行単位に前記コンピュータにより割り当てる並列実行単位割当段階と
を備えるプログラム開発支援方法。 - コンピュータを、情報処理装置においてそれぞれ実行される複数の事象をグループ化して、互いに並列に実行される複数の並列実行単位に分割するプログラム開発支援装置として機能させるプログラムであって、
前記コンピュータを、
前記複数の事象のそれぞれを頂点とし、前記複数の事象のうち2つの前記事象の間における実行順序の制約を有向枝として表現した有向グラフデータを取得する有向グラフ取得部と、
各事象から前記有向枝を順方向へたどっていくことにより他のいずれの前記事象にも到達可能でない関係を有する前記事象の組である反鎖部分集合を、前記有向グラフデータから抽出する反鎖部分集合抽出部と、
前記反鎖部分集合に属する複数の事象を、互いに異なる前記並列実行単位に割り当てる並列実行単位割当部と
して機能させるプログラム。 - 請求項11記載のプログラムを記録した記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003408096A JP2005173645A (ja) | 2003-12-05 | 2003-12-05 | プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体 |
US11/001,972 US7516481B2 (en) | 2003-12-05 | 2004-12-02 | Program development supporting apparatus, method, program and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003408096A JP2005173645A (ja) | 2003-12-05 | 2003-12-05 | プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005173645A true JP2005173645A (ja) | 2005-06-30 |
Family
ID=34631773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003408096A Pending JP2005173645A (ja) | 2003-12-05 | 2003-12-05 | プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7516481B2 (ja) |
JP (1) | JP2005173645A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011509458A (ja) * | 2008-01-08 | 2011-03-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サービス指向アーキテクチャ(soa)対応のアプリケーションを検証するための方法、データ処理システム及びコンピュータ・プログラム |
US10514908B2 (en) | 2017-04-14 | 2019-12-24 | Fujitsu Limited | Program analysis device for classifying programs into program groups based on call relationship between programs, program analysis method for classifying programs into program groups based on call relationship between programs, and recording medium storing analysis program for classifying programs into program groups based on a call relationship between programs |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120614A1 (en) * | 2006-11-21 | 2008-05-22 | Brother Kogyo Kabushiki Kaisha | Device, Method, and Computer Usable Medium for Installing Programs |
US9348884B2 (en) | 2008-05-28 | 2016-05-24 | International Business Machines Corporation | Methods and apparatus for reuse optimization of a data storage process using an ordered structure |
US8566844B2 (en) * | 2009-11-03 | 2013-10-22 | Disney Enterprises, Inc. | Generalized event and response system (GEARS) |
US9733905B1 (en) * | 2016-03-21 | 2017-08-15 | International Business Machines Corporation | Embedded location awareness in UML modeling for mobile and IoT development |
CN109799973B (zh) * | 2018-12-11 | 2022-02-11 | 极道科技(北京)有限公司 | 一种数据驱动的用户透明的可扩展编程方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5827367U (ja) * | 1981-08-12 | 1983-02-22 | トヨタ自動車株式会社 | フエライト電極 |
US4972314A (en) * | 1985-05-20 | 1990-11-20 | Hughes Aircraft Company | Data flow signal processor method and apparatus |
US4755418A (en) * | 1985-08-12 | 1988-07-05 | Basf Corporation | Nonyellowing cathodic electrocoat |
DE3720956A1 (de) * | 1987-06-25 | 1989-01-05 | Basf Lacke & Farben | Stickstoffbasische gruppen tragendes kunstharz, dessen herstellung und verwendung |
DE3902441A1 (de) * | 1989-01-27 | 1990-08-16 | Basf Lacke & Farben | Hitzehaertbares ueberzugsmittel fuer die kathodische elektrotauchlackierung |
US5260135A (en) * | 1991-07-26 | 1993-11-09 | Ppg Industries, Inc. | Photodegradation-resistant electrodepositable primer compositions |
JP3246668B2 (ja) | 1991-09-27 | 2002-01-15 | 日東精工株式会社 | 並列処理プログラムコンパイル装置 |
JPH05113885A (ja) | 1991-10-23 | 1993-05-07 | Nitto Seiko Co Ltd | 並列処理プログラム開発装置 |
US5205916A (en) * | 1991-12-11 | 1993-04-27 | E. I. Du Pont De Nemours And Company | Cathodic electrodeposition coatings containing an antioxidant additive |
DE4207653A1 (de) * | 1992-03-11 | 1993-09-16 | Basf Lacke & Farben | Kunstharze |
GB9305263D0 (en) * | 1993-03-15 | 1993-05-05 | Univ Westminster | Parrallel computation |
DE19541230A1 (de) * | 1995-11-06 | 1997-05-07 | Basf Lacke & Farben | Elektrisch abscheidbares Überzugsmittel |
JP3327818B2 (ja) * | 1997-08-29 | 2002-09-24 | 松下電器産業株式会社 | プログラム変換装置及び記録媒体 |
US6438747B1 (en) * | 1999-08-20 | 2002-08-20 | Hewlett-Packard Company | Programmatic iteration scheduling for parallel processors |
US6398934B1 (en) * | 2000-10-19 | 2002-06-04 | E. I. Du Pont De Nemours And Company | Concentrate suitable for the preparation of cathodic electrodeposition coating compositions |
-
2003
- 2003-12-05 JP JP2003408096A patent/JP2005173645A/ja active Pending
-
2004
- 2004-12-02 US US11/001,972 patent/US7516481B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011509458A (ja) * | 2008-01-08 | 2011-03-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サービス指向アーキテクチャ(soa)対応のアプリケーションを検証するための方法、データ処理システム及びコンピュータ・プログラム |
US10514908B2 (en) | 2017-04-14 | 2019-12-24 | Fujitsu Limited | Program analysis device for classifying programs into program groups based on call relationship between programs, program analysis method for classifying programs into program groups based on call relationship between programs, and recording medium storing analysis program for classifying programs into program groups based on a call relationship between programs |
Also Published As
Publication number | Publication date |
---|---|
US20050125775A1 (en) | 2005-06-09 |
US7516481B2 (en) | 2009-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042369B1 (en) | Systems and methods for modernizing and optimizing legacy source code | |
US20210365248A1 (en) | Methods and apparatus to detect and annotate backedges in a dataflow graph | |
KR101279179B1 (ko) | 병렬 프로그램 생성 방법 | |
US10965536B2 (en) | Methods and apparatus to insert buffers in a dataflow graph | |
US20130139137A1 (en) | Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies | |
JP2002099312A (ja) | プログラマブルコントローラおよび制御プログラム開発支援装置 | |
US9256437B2 (en) | Code generation method, and information processing apparatus | |
US10295985B2 (en) | Program processing apparatus and program | |
US8266416B2 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
CN103493015A (zh) | 生成资源高效的计算机程序代码的方法和装置 | |
US11016745B2 (en) | Systems and methods for generating distributed software packages using non-distributed source code | |
JP2011128975A (ja) | システム、方法、プログラムおよびコード生成装置 | |
JP2005173645A (ja) | プログラム開発支援装置、プログラム開発支援方法、プログラム、及び、記録媒体 | |
CN117075909A (zh) | 用于实现并行编程的编译方法、电子设备和介质 | |
CN110442347A (zh) | 安装包编译方法、装置、电子设备及可读存储介质 | |
US9553761B2 (en) | Dynamic server to server configuration and initialization | |
JP2009169864A (ja) | コンパイル方法およびコンパイルプログラム | |
US20230385039A1 (en) | Code generation tool for cloud-native high-performance computing | |
JP2009211424A (ja) | 最適化箇所判定装置及び最適化箇所判定システム及びコンピュータプログラム及び最適化箇所判定方法 | |
US20110289298A1 (en) | Semiconductor circuit and designing apparatus | |
US20230087152A1 (en) | Computer-readable recording medium storing program and information processing method | |
US20210182041A1 (en) | Method and apparatus for enabling autonomous acceleration of dataflow ai applications | |
JP7381290B2 (ja) | 計算機システム及びデータの管理方法 | |
JP2014228990A (ja) | 制御プログラム作成装置および制御プログラム作成方法 | |
CN113031952A (zh) | 深度学习模型的执行代码的确定方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061010 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070319 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070529 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20070613 |