JPH0916382A - プログラム開発支援システム - Google Patents
プログラム開発支援システムInfo
- Publication number
- JPH0916382A JPH0916382A JP7187894A JP18789495A JPH0916382A JP H0916382 A JPH0916382 A JP H0916382A JP 7187894 A JP7187894 A JP 7187894A JP 18789495 A JP18789495 A JP 18789495A JP H0916382 A JPH0916382 A JP H0916382A
- Authority
- JP
- Japan
- Prior art keywords
- program
- matrix
- code
- state
- dictionary
- 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
- Stored Programmes (AREA)
Abstract
(57)【要約】
【目的】 装置組み込みソフトウェアを容易に簡便に記
述し、自動的にそのソースプログラムコードを得る。 【構成】 マトリクスエディタ2を用いて入力するプロ
グラムは、丁度表計算ソフトのような表形式で表現され
る。WS上にビジュアルに記述される表の各欄に記入さ
れた処理を先頭から順に実行すればプログラムが実行で
きる。マトリクスコンパイラ4は、この表やその他の定
義図等に対応するプログラム辞書3を一定の規則に従っ
て、例えばC言語によるソースプログラムコードに変換
する。また、ファームウェアの特殊性からメカ制御専用
言語によるソースプログラムコードの生成も行う。
述し、自動的にそのソースプログラムコードを得る。 【構成】 マトリクスエディタ2を用いて入力するプロ
グラムは、丁度表計算ソフトのような表形式で表現され
る。WS上にビジュアルに記述される表の各欄に記入さ
れた処理を先頭から順に実行すればプログラムが実行で
きる。マトリクスコンパイラ4は、この表やその他の定
義図等に対応するプログラム辞書3を一定の規則に従っ
て、例えばC言語によるソースプログラムコードに変換
する。また、ファームウェアの特殊性からメカ制御専用
言語によるソースプログラムコードの生成も行う。
Description
【0001】
【産業上の利用分野】本発明は、プログラム開発、特に
装置組み込みソフトウェアの開発支援に利用されるプロ
グラム開発支援システムに関する。
装置組み込みソフトウェアの開発支援に利用されるプロ
グラム開発支援システムに関する。
【0002】
【従来の技術】ソフトウェアの1分野に装置組み込みソ
フトと言われるものがある。これは、ファームウェアと
呼ばれている。ファームウェアはハードウェアとアプリ
ケーションソフトウェアの中間に位置し、メカ制御、通
信制御、入出力制御等のハードウェア制御を主に担当す
る。このファームウェアは一般のソフトウェアと比べて
リアルタイム性の強い要求があり、マルチCPU、マル
チタスクといった並行処理が望ましく、ハードウェアに
密着しクロス開発環境を要求するといった特徴がある。
従って、一般のソフトウェアがハードウェアの独立化標
準化に伴ってパッケージ化の傾向にあるのに対し、ファ
ームウェアは処理時間やハードウェア資源の強い制約の
ため、装置毎に最適な構成がとられ、標準化及び生産性
向上が困難な特徴を持つ。
フトと言われるものがある。これは、ファームウェアと
呼ばれている。ファームウェアはハードウェアとアプリ
ケーションソフトウェアの中間に位置し、メカ制御、通
信制御、入出力制御等のハードウェア制御を主に担当す
る。このファームウェアは一般のソフトウェアと比べて
リアルタイム性の強い要求があり、マルチCPU、マル
チタスクといった並行処理が望ましく、ハードウェアに
密着しクロス開発環境を要求するといった特徴がある。
従って、一般のソフトウェアがハードウェアの独立化標
準化に伴ってパッケージ化の傾向にあるのに対し、ファ
ームウェアは処理時間やハードウェア資源の強い制約の
ため、装置毎に最適な構成がとられ、標準化及び生産性
向上が困難な特徴を持つ。
【0003】従って、一般の汎用性の高いソフトウェア
については、各種の簡便な開発ツールが登場し利用され
ているが、ファームウェアの開発支援のためには、例え
ばプログラムのフローチャートを解析してソースプログ
ラムのコードを得るといったものが紹介されているに過
ぎず(特公平6−40302号公報)、より具体的な簡
便なものは実用化されていない。
については、各種の簡便な開発ツールが登場し利用され
ているが、ファームウェアの開発支援のためには、例え
ばプログラムのフローチャートを解析してソースプログ
ラムのコードを得るといったものが紹介されているに過
ぎず(特公平6−40302号公報)、より具体的な簡
便なものは実用化されていない。
【0004】
【発明が解決しようとする課題】ところで、上記のよう
な従来のプログラム開発支援システムには次のような解
決すべき課題があった。プログラム開発支援は、プログ
ラマーに対し比較的簡単なプログラム内容の記述を要求
して、これを自動的に変換処理してソースプログラムコ
ード等を得ることを目的とする。従って、プログラムを
どう表現して開発支援システムに入力するかという点が
問題となる。従来、このようなプログラムの表現が専門
的な詳細な知識を必要とし、多くの変数の値に対する条
件を満たすバグの無いプログラムを作成するためには、
高度に熟練をする必要があった。
な従来のプログラム開発支援システムには次のような解
決すべき課題があった。プログラム開発支援は、プログ
ラマーに対し比較的簡単なプログラム内容の記述を要求
して、これを自動的に変換処理してソースプログラムコ
ード等を得ることを目的とする。従って、プログラムを
どう表現して開発支援システムに入力するかという点が
問題となる。従来、このようなプログラムの表現が専門
的な詳細な知識を必要とし、多くの変数の値に対する条
件を満たすバグの無いプログラムを作成するためには、
高度に熟練をする必要があった。
【0005】また、ファームウェア開発の生産性を上げ
るためには、できるだけ開発済みのファームウェアを流
用することが重要である。しかしながら、作成済みのソ
ースコードプログラムは必ずしもその処理内容を正確に
短時間に把握することが容易でないという問題があっ
た。
るためには、できるだけ開発済みのファームウェアを流
用することが重要である。しかしながら、作成済みのソ
ースコードプログラムは必ずしもその処理内容を正確に
短時間に把握することが容易でないという問題があっ
た。
【0006】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。本発明のプログラム開発
支援システムは、プログラムを構成する各処理の内容を
表の各欄に記入して、先頭から順にその表の内容を実行
することにより、そのプログラムを実行できるように表
示した表を入力するマトリクスエディタと、このマトリ
クスエディタで入力され生成されたプログラム辞書に、
ソースコード生成規則を適用して、表に対応するソース
プログラムコードを生成するマトリクスコンパイラとを
備える。
するため次の構成を採用する。本発明のプログラム開発
支援システムは、プログラムを構成する各処理の内容を
表の各欄に記入して、先頭から順にその表の内容を実行
することにより、そのプログラムを実行できるように表
示した表を入力するマトリクスエディタと、このマトリ
クスエディタで入力され生成されたプログラム辞書に、
ソースコード生成規則を適用して、表に対応するソース
プログラムコードを生成するマトリクスコンパイラとを
備える。
【0007】本発明の別のプログラム開発支援システム
は、プログラムを構成する各処理の内容を表の各欄に記
入して、先頭から順にその表の内容を実行することによ
り、そのプログラムを実行できるように表示した表を入
力するマトリクスエディタと、このマトリクスエディタ
で入力され生成されたプログラム辞書に、シミュレータ
実行形式コード生成規則を適用して、表に対応するシミ
ュレーション実行形式コードを生成するマトリクスコン
パイラとを備える。
は、プログラムを構成する各処理の内容を表の各欄に記
入して、先頭から順にその表の内容を実行することによ
り、そのプログラムを実行できるように表示した表を入
力するマトリクスエディタと、このマトリクスエディタ
で入力され生成されたプログラム辞書に、シミュレータ
実行形式コード生成規則を適用して、表に対応するシミ
ュレーション実行形式コードを生成するマトリクスコン
パイラとを備える。
【0008】なお、マトリクスエディタは、モジュール
定義図とデータ形式定義図と構造体定義図とデータ意味
定義図と表の入力を行い、C言語によるソースプログラ
ムコード生成のための意味解釈用のプログラム辞書を生
成することが好ましい。また、メカ動作規則とシミュレ
ータ実行形式コードとを参照して、プログラムの各命令
が実行されたときの制御対象装置の各部の状態を表す状
態情報を生成する状態更新部と、状態情報に従って状態
図を生成してプログラムの任意のステップでその状態図
を表示することが好ましい。
定義図とデータ形式定義図と構造体定義図とデータ意味
定義図と表の入力を行い、C言語によるソースプログラ
ムコード生成のための意味解釈用のプログラム辞書を生
成することが好ましい。また、メカ動作規則とシミュレ
ータ実行形式コードとを参照して、プログラムの各命令
が実行されたときの制御対象装置の各部の状態を表す状
態情報を生成する状態更新部と、状態情報に従って状態
図を生成してプログラムの任意のステップでその状態図
を表示することが好ましい。
【0009】
【作用】マトリクスエディタを用いて入力するプログラ
ムは、丁度表計算ソフトのような表形式で表現される。
WS(ワークステーション)上にビジュアルに記述され
る表の各欄に記入された処理を先頭から順に実行すれば
プログラムが実行できる。マトリクスコンパイラは、こ
の表やその他の定義図等に対応するプログラム辞書を一
定の規則に従って、例えばC言語によるソースプログラ
ムコードに変換する。また、ファームウェアの特殊性か
らメカ制御専用言語によるソースプログラムコードの生
成も行う。更に、プログラムのデバッグ作業を容易にす
るために、シミュレーション実行形式コードを生成す
る。例えば、1ステップずつシミュレーションが実行さ
れると、プログラムの制御の対象となる装置各部の状態
をアニメーション化して表示する。これらにより、分か
りやすく漏れが無くバグの少ないプログラム開発が可能
となる。
ムは、丁度表計算ソフトのような表形式で表現される。
WS(ワークステーション)上にビジュアルに記述され
る表の各欄に記入された処理を先頭から順に実行すれば
プログラムが実行できる。マトリクスコンパイラは、こ
の表やその他の定義図等に対応するプログラム辞書を一
定の規則に従って、例えばC言語によるソースプログラ
ムコードに変換する。また、ファームウェアの特殊性か
らメカ制御専用言語によるソースプログラムコードの生
成も行う。更に、プログラムのデバッグ作業を容易にす
るために、シミュレーション実行形式コードを生成す
る。例えば、1ステップずつシミュレーションが実行さ
れると、プログラムの制御の対象となる装置各部の状態
をアニメーション化して表示する。これらにより、分か
りやすく漏れが無くバグの少ないプログラム開発が可能
となる。
【0010】
【実施例】以下、本発明を図の実施例を用いて詳細に説
明する。 〈システム構成〉図1は、本発明のプログラム開発支援
システムの具体例を示すブロック図である。図のシステ
ムは、コンソール1と、これを用いてプログラムを表現
するための表を入力するマトリクスエディタ2と、これ
に生成されたプログラム辞書3、マトリクスコンパイラ
4、日本語変換辞書5、コード生成規則群6、マトリク
スコンパイラにより生成されたC言語によるソースプロ
グラムコード11、メカ制御専用言語によるソースプロ
グラムコード12、シミュレーション実行形式コード1
3、デバッグ作業のためのシミュレーションデバッガ1
4等から構成される。なお、図に示すディスプレイ16
はコンソール1に設けられたものを説明の都合上、右側
にも示したものである。
明する。 〈システム構成〉図1は、本発明のプログラム開発支援
システムの具体例を示すブロック図である。図のシステ
ムは、コンソール1と、これを用いてプログラムを表現
するための表を入力するマトリクスエディタ2と、これ
に生成されたプログラム辞書3、マトリクスコンパイラ
4、日本語変換辞書5、コード生成規則群6、マトリク
スコンパイラにより生成されたC言語によるソースプロ
グラムコード11、メカ制御専用言語によるソースプロ
グラムコード12、シミュレーション実行形式コード1
3、デバッグ作業のためのシミュレーションデバッガ1
4等から構成される。なお、図に示すディスプレイ16
はコンソール1に設けられたものを説明の都合上、右側
にも示したものである。
【0011】なお、このシステムは、例えば図2に示し
たようなハードウェアにより実現する。図2は、本発明
の実施のためのハードウェア説明図である。図の左側に
は、よく知られたワークステーション等のディスプレイ
21、制御部本体22及びキーボード23が斜視図で表
示されている。なお、キーボード23の他に、この装置
を操作するためにマウス26も利用される。また、この
装置の制御部本体22の内部には、図に示すように、中
央処理装置(CPU)24やハードディスク装置(HD
D)25等が設けられている。
たようなハードウェアにより実現する。図2は、本発明
の実施のためのハードウェア説明図である。図の左側に
は、よく知られたワークステーション等のディスプレイ
21、制御部本体22及びキーボード23が斜視図で表
示されている。なお、キーボード23の他に、この装置
を操作するためにマウス26も利用される。また、この
装置の制御部本体22の内部には、図に示すように、中
央処理装置(CPU)24やハードディスク装置(HD
D)25等が設けられている。
【0012】図1に示すコンソール1は、図2に示した
ワークステーション本体を示す。また、マトリクスエデ
ィタ2やマトリクスコンパイラ4、シミュレーションデ
バッガ14等は、ハードディスク装置25の中に格納さ
れた処理用プログラムによって構成される。プログラム
辞書3、日本語変換辞書5、コード生成規則群6や、マ
トリクスコンパイラ4により生成されたソースプログラ
ムコード11,12、シミュレーション実行形式コード
13等は、ハードディスク装置25やその他の記憶装置
に格納される。
ワークステーション本体を示す。また、マトリクスエデ
ィタ2やマトリクスコンパイラ4、シミュレーションデ
バッガ14等は、ハードディスク装置25の中に格納さ
れた処理用プログラムによって構成される。プログラム
辞書3、日本語変換辞書5、コード生成規則群6や、マ
トリクスコンパイラ4により生成されたソースプログラ
ムコード11,12、シミュレーション実行形式コード
13等は、ハードディスク装置25やその他の記憶装置
に格納される。
【0013】このシステムは、開発支援の対象となるプ
ログラムを表示する定義図や表のような各種チャートの
編集機能と、プログラムソースコードの生成機能及びシ
ミュレーションデバッグ機能を持つ。各種チャートの編
集は、マトリクスエディタ2により行う。プログラムソ
ースコードの生成は、マトリクスコンパイラ4により行
う。また、シミュレーションデバッグはシミュレーショ
ンデバッガ14により行う。
ログラムを表示する定義図や表のような各種チャートの
編集機能と、プログラムソースコードの生成機能及びシ
ミュレーションデバッグ機能を持つ。各種チャートの編
集は、マトリクスエディタ2により行う。プログラムソ
ースコードの生成は、マトリクスコンパイラ4により行
う。また、シミュレーションデバッグはシミュレーショ
ンデバッガ14により行う。
【0014】〈マトリクスエディタの機能〉本発明で
は、ファームウェアを如何に分かりやすく見せるかをフ
ァームウェア生産性向上のキーファクタとして捉え、フ
ァームウェアにマッチした表現形式として表を使用し
た。表はテキストスタイルの表現でありながら、絵的で
分かりやすい自然な表現である。表によりきちんと書い
たプログラムは分かりやすく漏れがなく、バグが少な
い。マトリクスエディタ2は、この目的のために、プロ
グラマーの操作によるモジュール定義図、データ形式定
義図、構造体型ページ図、データ意味定義図、表等の作
成図の入力を受け付け、対応するプログラム辞書を生成
する。このシステムでは、プログラミングを、プログラ
ム解釈のための辞書を作る過程と定義する。このプログ
ラム辞書とは、プログラマーがマトリクスエディタ2に
よって作るモジュール定義、データ定義や表の内容を記
述した情報である。
は、ファームウェアを如何に分かりやすく見せるかをフ
ァームウェア生産性向上のキーファクタとして捉え、フ
ァームウェアにマッチした表現形式として表を使用し
た。表はテキストスタイルの表現でありながら、絵的で
分かりやすい自然な表現である。表によりきちんと書い
たプログラムは分かりやすく漏れがなく、バグが少な
い。マトリクスエディタ2は、この目的のために、プロ
グラマーの操作によるモジュール定義図、データ形式定
義図、構造体型ページ図、データ意味定義図、表等の作
成図の入力を受け付け、対応するプログラム辞書を生成
する。このシステムでは、プログラミングを、プログラ
ム解釈のための辞書を作る過程と定義する。このプログ
ラム辞書とは、プログラマーがマトリクスエディタ2に
よって作るモジュール定義、データ定義や表の内容を記
述した情報である。
【0015】以下、プログラムをC言語で記述するため
に入力すべき表の具体例を説明する。 〈表の具体例〉図3〜図9は、マトリクスエディタで入
力される表の具体例を示す。図3は、モジュール定義図
の説明図、図4は、データ形式定義図の説明図、図5
は、構造体型定義図の説明図、図6は、データ意味定義
図の説明図、図7は表の例説明図である。なお、本発明
においては、上記モジュール定義図、データ形式定義
図、構造体型定義図、データ意味定義図及びその後で説
明するマトリクス状の表を含めて単に表というように表
現している。即ち、これらの表がマトリクスエディタに
より入力されることによって、最終的に図1に示すマト
リクスコンパイラが動作して必要なソースプログラムコ
ード等が生成される。
に入力すべき表の具体例を説明する。 〈表の具体例〉図3〜図9は、マトリクスエディタで入
力される表の具体例を示す。図3は、モジュール定義図
の説明図、図4は、データ形式定義図の説明図、図5
は、構造体型定義図の説明図、図6は、データ意味定義
図の説明図、図7は表の例説明図である。なお、本発明
においては、上記モジュール定義図、データ形式定義
図、構造体型定義図、データ意味定義図及びその後で説
明するマトリクス状の表を含めて単に表というように表
現している。即ち、これらの表がマトリクスエディタに
より入力されることによって、最終的に図1に示すマト
リクスコンパイラが動作して必要なソースプログラムコ
ード等が生成される。
【0016】図3に示すモジュール定義図は、これから
開発しようとするプログラムモジュール毎の入力31
と、これを処理するためのモジュール32と、出力33
との概要を明らかにしたものである。即ち、例えば図に
示すような入力変数A、入力変数B等を使用してモジュ
ールで一定の演算処理を実行し、その結果を出力する。
この場合の入力変数の概要やモジュールの処理概要、出
力されたデータの概要を図解しておくことによって、各
モジュールの役割をプログラマー本人や第三者が容易に
確認できるようにする。
開発しようとするプログラムモジュール毎の入力31
と、これを処理するためのモジュール32と、出力33
との概要を明らかにしたものである。即ち、例えば図に
示すような入力変数A、入力変数B等を使用してモジュ
ールで一定の演算処理を実行し、その結果を出力する。
この場合の入力変数の概要やモジュールの処理概要、出
力されたデータの概要を図解しておくことによって、各
モジュールの役割をプログラマー本人や第三者が容易に
確認できるようにする。
【0017】図4に示すデータ形式定義図では、ファイ
ルポインタ34、変数35,36、配列37、ポインタ
38等が定義され表形式に表現されている。これによ
り、データの形式やファイル形式を明確に表現する。こ
の例ではファイルポインタ34に“ファイルポインタ
A”が設定され、変数35には整数の“変数A”が設定
されるといった要領で定義が行われている。図5に示す
構造体型定義図によれば、構造体型名40や、メンバ名
41、メンバの型42、変数43、ポインタ44等が表
形式で明らかにされている。この例では、構造体型名4
0には“構造体型A”が設定され、以下、同様に変数等
が設定されている。
ルポインタ34、変数35,36、配列37、ポインタ
38等が定義され表形式に表現されている。これによ
り、データの形式やファイル形式を明確に表現する。こ
の例ではファイルポインタ34に“ファイルポインタ
A”が設定され、変数35には整数の“変数A”が設定
されるといった要領で定義が行われている。図5に示す
構造体型定義図によれば、構造体型名40や、メンバ名
41、メンバの型42、変数43、ポインタ44等が表
形式で明らかにされている。この例では、構造体型名4
0には“構造体型A”が設定され、以下、同様に変数等
が設定されている。
【0018】図3に示すモジュール定義図の入力31で
示した入力変数は、図4に示すデータ形式定義図等によ
って詳細に定義される。また、モジュール32の機能
は、図5に示した構造体型定義図等によって具体的に定
義される。そして、その処理の結果として得られる出力
33は、図6に示すようなデータ意味定義図によって明
確化される。即ち、図6の出力値の概要によれば、セン
サの出力45の意味がその下に具体的に表現されてい
る。即ち、出力の値が“1”であればセンサがONの状
態であり、出力値が“0”の場合にはセンサがOFFの
状態である。
示した入力変数は、図4に示すデータ形式定義図等によ
って詳細に定義される。また、モジュール32の機能
は、図5に示した構造体型定義図等によって具体的に定
義される。そして、その処理の結果として得られる出力
33は、図6に示すようなデータ意味定義図によって明
確化される。即ち、図6の出力値の概要によれば、セン
サの出力45の意味がその下に具体的に表現されてい
る。即ち、出力の値が“1”であればセンサがONの状
態であり、出力値が“0”の場合にはセンサがOFFの
状態である。
【0019】図7に示した表は、モジュールによる具体
的な処理内容を表形式に記述したものである。例えば、
この表50は図に示すように、T=1から10までの範
囲でTをインクリメントしながら、処理51と処理52
を繰り返すといった内容になっている。処理51の内容
は、ある演算処理ABCとする。また、処理52の内容
は、パラメータX,Yの内容に応じて4種類に分けられ
ている。このような表形式のプログラム表記は、例えば
次のような基本形を組み合わせて行う。図7に示す処理
の内容は次の基本形の説明によって明らかにする。
的な処理内容を表形式に記述したものである。例えば、
この表50は図に示すように、T=1から10までの範
囲でTをインクリメントしながら、処理51と処理52
を繰り返すといった内容になっている。処理51の内容
は、ある演算処理ABCとする。また、処理52の内容
は、パラメータX,Yの内容に応じて4種類に分けられ
ている。このような表形式のプログラム表記は、例えば
次のような基本形を組み合わせて行う。図7に示す処理
の内容は次の基本形の説明によって明らかにする。
【0020】図8には、基本形T1と基本形T2とを示
した。図8(a)は、基本形T1の内容を示し、左側が
条件記述欄、右側が処理内容の記述欄を示している。即
ち、図の例では、Xが1のときと2のときで処理内容を
分けている。Xが1のときは処理ABCを実行し、Xが
2のときは処理DEFを実行する。
した。図8(a)は、基本形T1の内容を示し、左側が
条件記述欄、右側が処理内容の記述欄を示している。即
ち、図の例では、Xが1のときと2のときで処理内容を
分けている。Xが1のときは処理ABCを実行し、Xが
2のときは処理DEFを実行する。
【0021】(b)は基本形T2の内容を示し、XとY
をパラメータとしてそれぞれその組合せによって処理の
内容を切り換えている。即ち、Xが1でYが1の場合に
は、処理ABCを実行し、Xが1でYが2の場合には、
処理DEFを実行する。また、Xが2でYが1の場合に
は、処理GHiを実行し、Xが2でYが2のとき、処理
JKLを実行する。(a)に示す例の場合、ソースコー
ドで記述しても表現上大きな差はないが、(b)のよう
な内容になると、ソースコードで記述した場合とこのよ
うな表形式で記述した場合とでは、まず一見して理解し
易いかどうかに大きな差がある。しかも、表形式の場
合、全ての条件を網羅し易く、記入漏れや記述ミスが生
じにくい。
をパラメータとしてそれぞれその組合せによって処理の
内容を切り換えている。即ち、Xが1でYが1の場合に
は、処理ABCを実行し、Xが1でYが2の場合には、
処理DEFを実行する。また、Xが2でYが1の場合に
は、処理GHiを実行し、Xが2でYが2のとき、処理
JKLを実行する。(a)に示す例の場合、ソースコー
ドで記述しても表現上大きな差はないが、(b)のよう
な内容になると、ソースコードで記述した場合とこのよ
うな表形式で記述した場合とでは、まず一見して理解し
易いかどうかに大きな差がある。しかも、表形式の場
合、全ての条件を網羅し易く、記入漏れや記述ミスが生
じにくい。
【0022】図9には、基本形T3,T4,T5の説明
図を示す。(a)に示す基本形T3では、表を用いて繰
り返し演算を表現している。即ち、T=1から10まで
の範囲でTをインクリメントし、処理ABCと処理DE
Fとを実行するといった内容になっている。特に、この
ような表の中に更に表を埋め込むネスト表現を実行する
場合、ソースプログラムコードでは、繰返し命令、繰返
し演算処理の仕切り、その他が入り乱れて、解釈も容易
でなく煩雑になる。しかしながら、このような表形式で
表現する場合には、図のABCという処理の中にこの図
と同様の繰返し表現をはめ込めばよいだけで、どの繰返
し表現がどの繰返し表現中に含まれるかあるいはどの繰
返し表現が何回繰返されるか等、極めて容易にビジュア
ルに認識し区別できるといった効果がある。
図を示す。(a)に示す基本形T3では、表を用いて繰
り返し演算を表現している。即ち、T=1から10まで
の範囲でTをインクリメントし、処理ABCと処理DE
Fとを実行するといった内容になっている。特に、この
ような表の中に更に表を埋め込むネスト表現を実行する
場合、ソースプログラムコードでは、繰返し命令、繰返
し演算処理の仕切り、その他が入り乱れて、解釈も容易
でなく煩雑になる。しかしながら、このような表形式で
表現する場合には、図のABCという処理の中にこの図
と同様の繰返し表現をはめ込めばよいだけで、どの繰返
し表現がどの繰返し表現中に含まれるかあるいはどの繰
返し表現が何回繰返されるか等、極めて容易にビジュア
ルに認識し区別できるといった効果がある。
【0023】(b)に示す基本形T4は、条件がアンド
やオアで組み合わされているとき、その条件に合えばい
くつかの処理を合わせて実行するといった表現を例示し
ている。即ち、ここでは、Xが“1”でYが“1”の両
方の条件が成立した場合に、処理ABCと処理DEFと
を順に実行する。なお、図(c)に示す基本形T5は、
これまでそれぞれ組合せとして説明した1個の欄に1個
の処理の内容を記述したもので、無条件に処理ABCを
実行するといった表現となっている。ほとんど全てのプ
ログラムは、上記のような表を組み合わせ連結すること
で表現できる。しかも、これにより分かり易く論理的な
ミスを生じにくいといった特徴を持つ。
やオアで組み合わされているとき、その条件に合えばい
くつかの処理を合わせて実行するといった表現を例示し
ている。即ち、ここでは、Xが“1”でYが“1”の両
方の条件が成立した場合に、処理ABCと処理DEFと
を順に実行する。なお、図(c)に示す基本形T5は、
これまでそれぞれ組合せとして説明した1個の欄に1個
の処理の内容を記述したもので、無条件に処理ABCを
実行するといった表現となっている。ほとんど全てのプ
ログラムは、上記のような表を組み合わせ連結すること
で表現できる。しかも、これにより分かり易く論理的な
ミスを生じにくいといった特徴を持つ。
【0024】〈マトリクスコンパイラの機能〉マトリク
スコンパイラは、マトリクスエディタ2が生成したプロ
グラム辞書から図1に示すようなC言語によるソースプ
ログラムコード11、メカ制御専用言語によるソースプ
ログラムコード12、シミュレーション実行形式コード
13を生成する部分である。
スコンパイラは、マトリクスエディタ2が生成したプロ
グラム辞書から図1に示すようなC言語によるソースプ
ログラムコード11、メカ制御専用言語によるソースプ
ログラムコード12、シミュレーション実行形式コード
13を生成する部分である。
【0025】このマトリクスコンパイラ4は、一種のプ
ロダクションシステムである。各生成対象毎に、各コー
ド生成のための規則をプロダクションルールの形で持
つ。即ち、図1に示すコード生成規則群6には、C言語
によるソースプログラムコード11を生成するためのC
言語ソースプログラムコード生成規則と、メカ制御専用
言語によるソースプログラムコード12を生成するため
のメカ制御専用言語プログラムコード生成規則8と、シ
ミュレーション実行形式コード13を生成するためのシ
ミュレーション実行形式コード生成規則9とを参照する
構成になっている。各生成規則は、IF部とTHEN部
とから構成されている。IF部にはマッチング条件のパ
ターンリストを含める。THEN部には当該条件にマッ
チした場合のソースプログラムコード等への変換方法を
記述する。その具体的内容は後で説明する。
ロダクションシステムである。各生成対象毎に、各コー
ド生成のための規則をプロダクションルールの形で持
つ。即ち、図1に示すコード生成規則群6には、C言語
によるソースプログラムコード11を生成するためのC
言語ソースプログラムコード生成規則と、メカ制御専用
言語によるソースプログラムコード12を生成するため
のメカ制御専用言語プログラムコード生成規則8と、シ
ミュレーション実行形式コード13を生成するためのシ
ミュレーション実行形式コード生成規則9とを参照する
構成になっている。各生成規則は、IF部とTHEN部
とから構成されている。IF部にはマッチング条件のパ
ターンリストを含める。THEN部には当該条件にマッ
チした場合のソースプログラムコード等への変換方法を
記述する。その具体的内容は後で説明する。
【0026】即ち、マトリクスコンパイラ4は、例えば
マトリクスエディタ2により生成されたプログラム辞書
をC言語によるソースプログラムコード11に変換する
場合には、C言語ソースプログラムコード生成規則7を
参照しながら変換処理を進める。即ち、プログラム辞書
の各項目と同一のパターンとなるIF部を含む生成規則
を、C言語ソースプログラムコード生成規則7から検索
する。そして、該当する規則が見つかった場合、そのT
HEN部のソースプログラムコードを出力として得る。
こうして、プログラム辞書をC言語によるソースプログ
ラムコード11に変換できる。メカ制御専用言語による
ソースプログラムコード12の生成やシミュレーション
実行形式コード13の生成も同様にして行うことができ
る。
マトリクスエディタ2により生成されたプログラム辞書
をC言語によるソースプログラムコード11に変換する
場合には、C言語ソースプログラムコード生成規則7を
参照しながら変換処理を進める。即ち、プログラム辞書
の各項目と同一のパターンとなるIF部を含む生成規則
を、C言語ソースプログラムコード生成規則7から検索
する。そして、該当する規則が見つかった場合、そのT
HEN部のソースプログラムコードを出力として得る。
こうして、プログラム辞書をC言語によるソースプログ
ラムコード11に変換できる。メカ制御専用言語による
ソースプログラムコード12の生成やシミュレーション
実行形式コード13の生成も同様にして行うことができ
る。
【0027】なお、以下の例では、ファームウェア全般
にプログラム言語として汎用され、その中で最も普及し
ているC言語を例にして説明を行う。しかしながら、こ
のような言語の如何を問わず、マトリクスコンパイラは
対応するコード生成規則があれば、任意のソースプログ
ラムコードを得ることが可能である。
にプログラム言語として汎用され、その中で最も普及し
ているC言語を例にして説明を行う。しかしながら、こ
のような言語の如何を問わず、マトリクスコンパイラは
対応するコード生成規則があれば、任意のソースプログ
ラムコードを得ることが可能である。
【0028】〈シミュレーションデバッガの機能〉シミ
ュレーションデバッガ14はマトリクスコンパイラ4が
生成したシミュレーション実行形式コード13を解析し
実行するインタプリタである。このようなシミュレーシ
ョンデバッガ14は、従来よりプログラム開発支援に不
可欠なものとして広く使用されてきている。その具体的
な使用法としては、プログラムを1ステップずつ実行さ
せその結果を出力させたり、あるいはプログラム中にブ
レークポイントを指定しそこまでプログラムを実行させ
た後、その時点での出力や状態を表示させるといった用
い方がされる。
ュレーションデバッガ14はマトリクスコンパイラ4が
生成したシミュレーション実行形式コード13を解析し
実行するインタプリタである。このようなシミュレーシ
ョンデバッガ14は、従来よりプログラム開発支援に不
可欠なものとして広く使用されてきている。その具体的
な使用法としては、プログラムを1ステップずつ実行さ
せその結果を出力させたり、あるいはプログラム中にブ
レークポイントを指定しそこまでプログラムを実行させ
た後、その時点での出力や状態を表示させるといった用
い方がされる。
【0029】本発明では、このようなシミュレーション
デバッグの機能を更に進め、メカ制御用ソフトウェアの
開発支援としてより実用的なメカ動作のアニメーション
やタイムチャート等を表示できる構成にしている。図1
0には、このようなシミュレーションデバッガの構造を
示すブロック図を図示した。このシミュレーションデバ
ッガは、状態更新部64と、状態表示部67を備えてい
る。状態更新部64はメカ動作規則61やシミュレータ
実行形式コード62、ブレーク条件63等を元にメカ制
御プログラム状態65やメカ状態66を生成する部分で
ある。また、状態表示部67はメカ制御プログラム状態
65やメカ状態66の内容を表示部69に表示する部分
である。なお、このような表示内容は、表示内容定義6
8等を参照して決定する。
デバッグの機能を更に進め、メカ制御用ソフトウェアの
開発支援としてより実用的なメカ動作のアニメーション
やタイムチャート等を表示できる構成にしている。図1
0には、このようなシミュレーションデバッガの構造を
示すブロック図を図示した。このシミュレーションデバ
ッガは、状態更新部64と、状態表示部67を備えてい
る。状態更新部64はメカ動作規則61やシミュレータ
実行形式コード62、ブレーク条件63等を元にメカ制
御プログラム状態65やメカ状態66を生成する部分で
ある。また、状態表示部67はメカ制御プログラム状態
65やメカ状態66の内容を表示部69に表示する部分
である。なお、このような表示内容は、表示内容定義6
8等を参照して決定する。
【0030】即ち、状態更新部64は、シミュレーショ
ン実行形式コードを1命令ずつ実行すると、その都度そ
の時点でのメカ制御プログラム状態65、メカ状態66
にメカ動作規則61を適用しながら、その内容を更新し
ていく。これによって、1ステップ毎にこのような状態
を監視できる。また、ブレーク条件63を判定して、ブ
レークポインタにおいて、オペレータからの入力を待
つ。状態表示部67は、例えばメカ状態66の内容を参
照し、メカの動きや状態等を表示内容定義68に従って
アニメーション等を用いて表示する。即ち、例えばカー
ド等の媒体を搬送路上で搬送するようなプログラムの場
合、プログラムが1ステップ実行される度に、その際の
カードの位置を搬送路も含めてそのままビジュアルに表
示する。これによって、プログラマーはメカ状態が一見
して把握でき、プログラム開発が容易になる。なお、メ
カ動作規則61は、例えばステッピングモータの動作条
件、ステッピングモータ同士の連結関係、センサ情報等
を定義した内容のものである。
ン実行形式コードを1命令ずつ実行すると、その都度そ
の時点でのメカ制御プログラム状態65、メカ状態66
にメカ動作規則61を適用しながら、その内容を更新し
ていく。これによって、1ステップ毎にこのような状態
を監視できる。また、ブレーク条件63を判定して、ブ
レークポインタにおいて、オペレータからの入力を待
つ。状態表示部67は、例えばメカ状態66の内容を参
照し、メカの動きや状態等を表示内容定義68に従って
アニメーション等を用いて表示する。即ち、例えばカー
ド等の媒体を搬送路上で搬送するようなプログラムの場
合、プログラムが1ステップ実行される度に、その際の
カードの位置を搬送路も含めてそのままビジュアルに表
示する。これによって、プログラマーはメカ状態が一見
して把握でき、プログラム開発が容易になる。なお、メ
カ動作規則61は、例えばステッピングモータの動作条
件、ステッピングモータ同士の連結関係、センサ情報等
を定義した内容のものである。
【0031】〈具体的な動作例〉図11に、具体的な操
作画面例(その1)を示す。この図に示す操作画面は、
先に説明したマトリクスエディタ2によりモジュール定
義図を入力する場合の画面を示す。図に示すように、モ
ジュール定義図を入力する場合には、このような操作画
面を利用して、入力31、モジュール32、出力33等
の定義を記入する。なお、これはソースプログラムコー
ド生成のみならずプログラム作成者本人あるいは第三者
がプログラムの内容を容易に理解できるようにするため
の記述として利用される。
作画面例(その1)を示す。この図に示す操作画面は、
先に説明したマトリクスエディタ2によりモジュール定
義図を入力する場合の画面を示す。図に示すように、モ
ジュール定義図を入力する場合には、このような操作画
面を利用して、入力31、モジュール32、出力33等
の定義を記入する。なお、これはソースプログラムコー
ド生成のみならずプログラム作成者本人あるいは第三者
がプログラムの内容を容易に理解できるようにするため
の記述として利用される。
【0032】図12には、具体的な操作画面例(その
2)を示す。この画面には、プログラムの実行手順を示
す具体的な表が図示されている。ここでは、伝票とか通
帳のような媒体を吸入してこれが搬送路上を搬送されて
いる状態を検出し、必要な情報を印字して排出するとい
ったメカニズム制御のためのプログラムを示している。
このモジュールは、媒体の吸入処理に関する操作を示す
部分である。その処理は表の上から順に実行される。即
ち、最初のステップS1においては、媒体の状態を媒体
無しというように初期化しておく。
2)を示す。この画面には、プログラムの実行手順を示
す具体的な表が図示されている。ここでは、伝票とか通
帳のような媒体を吸入してこれが搬送路上を搬送されて
いる状態を検出し、必要な情報を印字して排出するとい
ったメカニズム制御のためのプログラムを示している。
このモジュールは、媒体の吸入処理に関する操作を示す
部分である。その処理は表の上から順に実行される。即
ち、最初のステップS1においては、媒体の状態を媒体
無しというように初期化しておく。
【0033】そして、次のステップS2は媒体が無い状
態で媒体吸入を検出するための処理を行う。これは、一
定の時間おきに媒体無しの状態が続く間繰り返し実行さ
れる。まず、ステップS3で、センサ状態をセンスす
る。このセンサは媒体搬送路上に設けられた特定のセン
サである。そして、その結果を利用して次のステップS
4の処理を行う。ステップS4の処理はセンサ1とセン
サ2の状態に応じて4通りに分かれている。両方のセン
サがOFFの場合は何もしない。センサ1がOFFでセ
ンサ2がONの場合には、媒体の状態をクランプという
状態に切り換える。MG2と指定したマグネットをON
する。即ち、マグネットをONすることによって媒体を
クランプして媒体の搬送を実行する。一方、センサ1が
ONでセンサ2がOFFの場合には、MG2と表示した
マグネットをONし、次にそのマグネットをOFFす
る。また、センサ1も2もONの場合には、同様にMG
2と表示したマグネットをONし、その次にこれをOF
Fする。
態で媒体吸入を検出するための処理を行う。これは、一
定の時間おきに媒体無しの状態が続く間繰り返し実行さ
れる。まず、ステップS3で、センサ状態をセンスす
る。このセンサは媒体搬送路上に設けられた特定のセン
サである。そして、その結果を利用して次のステップS
4の処理を行う。ステップS4の処理はセンサ1とセン
サ2の状態に応じて4通りに分かれている。両方のセン
サがOFFの場合は何もしない。センサ1がOFFでセ
ンサ2がONの場合には、媒体の状態をクランプという
状態に切り換える。MG2と指定したマグネットをON
する。即ち、マグネットをONすることによって媒体を
クランプして媒体の搬送を実行する。一方、センサ1が
ONでセンサ2がOFFの場合には、MG2と表示した
マグネットをONし、次にそのマグネットをOFFす
る。また、センサ1も2もONの場合には、同様にMG
2と表示したマグネットをONし、その次にこれをOF
Fする。
【0034】このように、搬送路上のマグネットのON
とOFFを繰り返し、媒体をつかんで搬送路上に吸入す
る。次に、ステップS5において、搬送起動を行う。こ
こでは、媒体の先端をどこまで送り込むか、先端目標位
置や媒体の後端目標位置、最大移動量等を規定した上
で、搬送機構を起動させる。次のステップS6では、モ
ータの状態が動作中の間、ステップS7に示すような手
順が実行される。即ち、ここでは媒体先端位置をステッ
ピングモータに供給されるパルス数等でカウントし、そ
の数が1227に達すると、記号MG3と表示したマグ
ネットをONする。その他の場合は、MG3と表示した
マグネットをOFFにしておく。
とOFFを繰り返し、媒体をつかんで搬送路上に吸入す
る。次に、ステップS5において、搬送起動を行う。こ
こでは、媒体の先端をどこまで送り込むか、先端目標位
置や媒体の後端目標位置、最大移動量等を規定した上
で、搬送機構を起動させる。次のステップS6では、モ
ータの状態が動作中の間、ステップS7に示すような手
順が実行される。即ち、ここでは媒体先端位置をステッ
ピングモータに供給されるパルス数等でカウントし、そ
の数が1227に達すると、記号MG3と表示したマグ
ネットをONする。その他の場合は、MG3と表示した
マグネットをOFFにしておく。
【0035】以上のように、表形式によれば、非常に簡
単に正確なプログラミングが可能となる。図13には、
シミュレーションデバッガの出力例説明図を示す。上記
のような媒体の搬送等のメカニズムを制御するプログラ
ムでは、その動作を解析する場合、媒体の位置、搬送路
の状態、センサ等の状態をプログラムの任意のステップ
で一見して理解できるように表示することが好ましい。
そこで、本発明のシミュレーションデバッガは、図13
に示すような搬送路70とその搬送路のスケール71と
を表示する。1番上に示したのは搬送路、2番目に示し
たのは搬送路のスケールで、搬送路のスケール71はス
テッピングモータに供給されるパルス数を基準にして表
示されている。
単に正確なプログラミングが可能となる。図13には、
シミュレーションデバッガの出力例説明図を示す。上記
のような媒体の搬送等のメカニズムを制御するプログラ
ムでは、その動作を解析する場合、媒体の位置、搬送路
の状態、センサ等の状態をプログラムの任意のステップ
で一見して理解できるように表示することが好ましい。
そこで、本発明のシミュレーションデバッガは、図13
に示すような搬送路70とその搬送路のスケール71と
を表示する。1番上に示したのは搬送路、2番目に示し
たのは搬送路のスケールで、搬送路のスケール71はス
テッピングモータに供給されるパルス数を基準にして表
示されている。
【0036】また、搬送路70上には、媒体72の位置
を検出するセンサMS2,MS4,MS7等が設けられ
ている。更に、媒体72を搬送駆動するローラを制御す
るためのマグネットMG2,MG3,MG4等が設けら
れている。これらの各マグネットがONOFFする状態
も、この図の下側に示すようにタイムチャートで表示さ
れる。タイムチャートのロウレベルはOFF、ハイレベ
ルはONの状態である。シミュレーションデバッガが各
処理ステップ毎に、そのステップが終了したときの状態
を図に示すような要領でアニメーション化する。そし
て、プログラマーの希望に従って表示する。これによ
り、媒体の挿入、検知、搬送、印字制御等を直接図解し
て見ることができ、プログラム製作作業の効率化が図ら
れる。
を検出するセンサMS2,MS4,MS7等が設けられ
ている。更に、媒体72を搬送駆動するローラを制御す
るためのマグネットMG2,MG3,MG4等が設けら
れている。これらの各マグネットがONOFFする状態
も、この図の下側に示すようにタイムチャートで表示さ
れる。タイムチャートのロウレベルはOFF、ハイレベ
ルはONの状態である。シミュレーションデバッガが各
処理ステップ毎に、そのステップが終了したときの状態
を図に示すような要領でアニメーション化する。そし
て、プログラマーの希望に従って表示する。これによ
り、媒体の挿入、検知、搬送、印字制御等を直接図解し
て見ることができ、プログラム製作作業の効率化が図ら
れる。
【0037】図14には、図12のS1に示した部分か
らソースプログラムコード出力を得るための具体的なマ
トリクスコンパイラの動作説明図を図示した。図の
(a)はプログラム辞書、(b)は日本語変換辞書、
(c)はマトリクスコンパイラのルール(シミュレーシ
ョン実行形式コード生成規則)、(d)はソースプログ
ラムコード出力を示している。図12のS1に示した命
令は、「媒体状態=媒体無し」という命令である。これ
は、即ち「媒体状態」という変数に対し媒体無しという
データを入力するための命令である。このような表形式
のデータは、図14(a)に示すように記述される。図
の1行目のname $whatは、この表の名称を表
している。また、次の行のtype if−what
は、表の種類を示している。次のt−width 16
8 topは、この表の幅を示している。
らソースプログラムコード出力を得るための具体的なマ
トリクスコンパイラの動作説明図を図示した。図の
(a)はプログラム辞書、(b)は日本語変換辞書、
(c)はマトリクスコンパイラのルール(シミュレーシ
ョン実行形式コード生成規則)、(d)はソースプログ
ラムコード出力を示している。図12のS1に示した命
令は、「媒体状態=媒体無し」という命令である。これ
は、即ち「媒体状態」という変数に対し媒体無しという
データを入力するための命令である。このような表形式
のデータは、図14(a)に示すように記述される。図
の1行目のname $whatは、この表の名称を表
している。また、次の行のtype if−what
は、表の種類を示している。次のt−width 16
8 topは、この表の幅を示している。
【0038】そして、この表の欄に記入された文字は5
行目の“”に挟まれた媒体状態=媒体無しという文字で
表現されている。表の内容を記述する方法はどのような
方法でもよいが、このような記述によって表のデータが
コンピュータの認識できる文字データとなる。従って、
逆にこのプログラム辞書を読み取ることによって、図1
2に示すような表が描かれる。このようなプログラム辞
書の作成方法自体は従来より表計算ソフトウェア等でよ
く知られており、どのような方法を使用しても差し支え
ない。
行目の“”に挟まれた媒体状態=媒体無しという文字で
表現されている。表の内容を記述する方法はどのような
方法でもよいが、このような記述によって表のデータが
コンピュータの認識できる文字データとなる。従って、
逆にこのプログラム辞書を読み取ることによって、図1
2に示すような表が描かれる。このようなプログラム辞
書の作成方法自体は従来より表計算ソフトウェア等でよ
く知られており、どのような方法を使用しても差し支え
ない。
【0039】ここで、このプログラム辞書からソースプ
ログラムコードを得るために、(c)に示すマトリクス
コンパイラのルールが適用される。ところが、ソースプ
ログラムコードに日本語を含めてよい場合と、日本語は
使用できない場合とがある。いずれの場合にもソースプ
ログラムコードの生成を可能にするためには、プログラ
ム辞書に含まれている日本語を英語等に変換しておくこ
とが好ましい。このために、(b)に示す日本語変換辞
書が使用される。従って、プログラム辞書の中で「媒体
状態」という言葉と「媒体無し」という言葉が英語に変
換される。
ログラムコードを得るために、(c)に示すマトリクス
コンパイラのルールが適用される。ところが、ソースプ
ログラムコードに日本語を含めてよい場合と、日本語は
使用できない場合とがある。いずれの場合にもソースプ
ログラムコードの生成を可能にするためには、プログラ
ム辞書に含まれている日本語を英語等に変換しておくこ
とが好ましい。このために、(b)に示す日本語変換辞
書が使用される。従って、プログラム辞書の中で「媒体
状態」という言葉と「媒体無し」という言葉が英語に変
換される。
【0040】日本語変換辞書はこのような目的のため
に、表の中で使用される言葉に対応する英語を用意す
る。図の矢印によって示した「媒体状態」という単語
は、b_statusという英語に置き換えられる。
「媒体無し」という単語はこの日本語変換辞書には用意
されていない。そこで、マトリクスコンパイラは自動的
にこの媒体無しという言葉に対応する変数を他の言葉と
重複しないように設定してしまう。例えば、その変数を
Jg67と定める。このような準備を行った後、(c)
に示すルールが適用される。マトリクスコンパイラには
多数のルールが設けられており、先に説明したように、
そのIF部が適用される場合に、THEN部に置き換え
られたソースプログラムコードが出力される。
に、表の中で使用される言葉に対応する英語を用意す
る。図の矢印によって示した「媒体状態」という単語
は、b_statusという英語に置き換えられる。
「媒体無し」という単語はこの日本語変換辞書には用意
されていない。そこで、マトリクスコンパイラは自動的
にこの媒体無しという言葉に対応する変数を他の言葉と
重複しないように設定してしまう。例えば、その変数を
Jg67と定める。このような準備を行った後、(c)
に示すルールが適用される。マトリクスコンパイラには
多数のルールが設けられており、先に説明したように、
そのIF部が適用される場合に、THEN部に置き換え
られたソースプログラムコードが出力される。
【0041】この(c)の1行目は表の名前で、(a)
に示した2行目と一致する。IF部には%keyという
言葉がある。これは1つの命令であって、その次に続く
bodyという言葉を見つけなさいという命令である。
同様にして、thenという言葉とwhatという言葉
を続けて見つけなさいという命令が続く。そして、wh
atという言葉を見つけた場合に、これに続く言葉を&
restという変数に代入しなさいという命令になる。
これによって&restという変数に「媒体状態=媒体
無し」という部分が代入される。なお、これは、先に説
明したように、先にb_status=Jg67という
式に変換されている。
に示した2行目と一致する。IF部には%keyという
言葉がある。これは1つの命令であって、その次に続く
bodyという言葉を見つけなさいという命令である。
同様にして、thenという言葉とwhatという言葉
を続けて見つけなさいという命令が続く。そして、wh
atという言葉を見つけた場合に、これに続く言葉を&
restという変数に代入しなさいという命令になる。
これによって&restという変数に「媒体状態=媒体
無し」という部分が代入される。なお、これは、先に説
明したように、先にb_status=Jg67という
式に変換されている。
【0042】ここで、(c)に示すTHEN部が実行さ
れる。即ち、ここでは、appendという命令によっ
て&restという変数の中身に“;”を後ろに付けて
出力するといった内容になる。これは、即ち、(d)に
示すような式をソースプログラムコードとして出力する
ことになる。これによって、図14(a)に示すような
プログラム辞書からこの(d)に示すようなソースプロ
グラムコードが得られる。他の部分についても全く同様
にプログラム辞書に含まれた日本語を一旦英語に変換
し、その後マトリクスコンパイラに用意された各種のル
ールに従って各部を順次変換することによってソースプ
ログラムコードが得られる。
れる。即ち、ここでは、appendという命令によっ
て&restという変数の中身に“;”を後ろに付けて
出力するといった内容になる。これは、即ち、(d)に
示すような式をソースプログラムコードとして出力する
ことになる。これによって、図14(a)に示すような
プログラム辞書からこの(d)に示すようなソースプロ
グラムコードが得られる。他の部分についても全く同様
にプログラム辞書に含まれた日本語を一旦英語に変換
し、その後マトリクスコンパイラに用意された各種のル
ールに従って各部を順次変換することによってソースプ
ログラムコードが得られる。
【0043】図15は日本語変換辞書の一部の例を示
し、図16〜図20は図12の表に対応するその他の部
分のプログラム辞書の例を示す。また、図21,図22
は、図12のS4の部分を変換するために使用されるル
ールのリストであり、図23,図24は、マトリクスコ
ンパイラの出力として得られたソースプログラムコード
の例を示す。プログラム辞書中、S4と示した部分は、
図21,図22に示すマトリクスコンパイラのルールに
従って変換され、図23,図24に示すS4と印をした
ソースプログラムコードに置き換えられる。その手順等
は先に説明した通りである。
し、図16〜図20は図12の表に対応するその他の部
分のプログラム辞書の例を示す。また、図21,図22
は、図12のS4の部分を変換するために使用されるル
ールのリストであり、図23,図24は、マトリクスコ
ンパイラの出力として得られたソースプログラムコード
の例を示す。プログラム辞書中、S4と示した部分は、
図21,図22に示すマトリクスコンパイラのルールに
従って変換され、図23,図24に示すS4と印をした
ソースプログラムコードに置き換えられる。その手順等
は先に説明した通りである。
【0044】本発明は以上の実施例に限定されない。上
記実施例においては、メカ動作制御のためのプログラム
作成に本発明を利用した例を示したが、この他、例えば
ワードプロセッサのような文書データの加工処理、その
他各種の情報処理のためのプログラム作成に利用でき
る。また、プログラム言語はC言語を用いて説明した
が、C言語の改良型であるC++、その他C言語系のプ
ログラムやこれ以外の各種の汎用されているプログラム
作成に利用することが可能である。
記実施例においては、メカ動作制御のためのプログラム
作成に本発明を利用した例を示したが、この他、例えば
ワードプロセッサのような文書データの加工処理、その
他各種の情報処理のためのプログラム作成に利用でき
る。また、プログラム言語はC言語を用いて説明した
が、C言語の改良型であるC++、その他C言語系のプ
ログラムやこれ以外の各種の汎用されているプログラム
作成に利用することが可能である。
【0045】
【発明の効果】以上説明した本発明のプログラム開発支
援システムによれば、プログラムのロジックの表記を表
形式により分かり易く行い、これを自動的にプログラム
ソースコードに変換する構成にしたので、プログラムの
表現について専門的な知識を持たないものにも分かり易
い誤りの無いプログラムの記述ができる。また、第三者
も容易に分かり易いプログラムの記述が可能となる。更
に、プログラムの各命令が実行されたときに、制御対象
装置の各部の状態を表す状態情報等を具体的に表示する
シミュレーションデバッガを用意することによって、プ
ログラムの開発をより容易に具体的に行うことが可能に
なる。
援システムによれば、プログラムのロジックの表記を表
形式により分かり易く行い、これを自動的にプログラム
ソースコードに変換する構成にしたので、プログラムの
表現について専門的な知識を持たないものにも分かり易
い誤りの無いプログラムの記述ができる。また、第三者
も容易に分かり易いプログラムの記述が可能となる。更
に、プログラムの各命令が実行されたときに、制御対象
装置の各部の状態を表す状態情報等を具体的に表示する
シミュレーションデバッガを用意することによって、プ
ログラムの開発をより容易に具体的に行うことが可能に
なる。
【図1】本発明のプログラム開発支援システム実施例を
示すブロック図である。
示すブロック図である。
【図2】本発明の実施のためのハードウェア説明図であ
る。
る。
【図3】モジュール定義図の説明図である。
【図4】データ形式定義図の説明図である。
【図5】構造体型定義図の説明図である。
【図6】データ意味定義図の説明図である。
【図7】表の例説明である。
【図8】表の基本形説明図(その1)である。
【図9】表の基本形説明図(その2)である。
【図10】シミュレーションデバッガの構造を示すブロ
ック図である。
ック図である。
【図11】具体的な操作画面例(その1)である。
【図12】具体的な操作画面例(その2)である。
【図13】シミュレーションデバッガの出力例説明図で
ある。
ある。
【図14】具体的なマトリクスコンパイラの動作説明図
である。
である。
【図15】日本語変換辞書の例説明図である。
【図16】プログラム辞書の例説明図(その1)であ
る。
る。
【図17】プログラム辞書の例説明図(その2)であ
る。
る。
【図18】プログラム辞書の例説明図(その3)であ
る。
る。
【図19】プログラム辞書の例説明図(その4)であ
る。
る。
【図20】プログラム辞書の例説明図(その5)であ
る。
る。
【図21】マトリクスコンパイラのルールの例説明図
(その1)である。
(その1)である。
【図22】マトリクスコンパイラのルールの例説明図
(その2)である。
(その2)である。
【図23】ソースプログラムコード出力の例説明図(そ
の1)である。
の1)である。
【図24】ソースプログラムコード出力の例説明図(そ
の2)である。
の2)である。
1 コンソール 2 マトリクスエディタ 3 プログラム辞書 4 マトリクスコンパイラ 6 コード生成規則群 11 C言語によるソースプログラムコード 12 メカ制御専用言語によるソースプログラムコード 13 シミュレーション実行形式コード 14 シミュレーションデバッガ
Claims (4)
- 【請求項1】 プログラムを構成する各処理の内容を表
の各欄に記入して、先頭から順にその表の内容を実行す
ることにより、そのプログラムを実行できるように表示
した表を入力するマトリクスエディタと、 このマトリクスエディタで入力され生成されたプログラ
ム辞書に、ソースコード生成規則を適用して、前記表に
対応するソースプログラムコードを生成するマトリクス
コンパイラとを備えたことを特徴とするプログラム開発
支援システム。 - 【請求項2】 プログラムを構成する各処理の内容を表
の各欄に記入して、先頭から順にその表の内容を実行す
ることにより、そのプログラムを実行できるように表示
した表を入力するマトリクスエディタと、 このマトリクスエディタで入力され生成されたプログラ
ム辞書に、シミュレータ実行形式コード生成規則を適用
して、前記表に対応するシミュレーション実行形式コー
ドを生成するマトリクスコンパイラとを備えたことを特
徴とするプログラム開発支援システム。 - 【請求項3】 マトリクスエディタは、 モジュール定義図とデータ形式定義図と構造体定義図と
データ意味定義図と表の入力を行い、C言語によるソー
スプログラムコード生成のための意味解釈用のプログラ
ム辞書を生成することを特徴とする請求項1記載のプロ
グラム開発支援システム。 - 【請求項4】 メカ動作規則とシミュレータ実行形式コ
ードとを参照して、プログラムの各命令が実行されたと
きの制御対象装置の各部の状態を表す状態情報を生成す
る状態更新部と、 前記状態情報に従って状態図を生成してプログラムの任
意のステップでその状態図を表示する請求項2記載のプ
ログラム開発支援システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7187894A JPH0916382A (ja) | 1995-06-30 | 1995-06-30 | プログラム開発支援システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7187894A JPH0916382A (ja) | 1995-06-30 | 1995-06-30 | プログラム開発支援システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0916382A true JPH0916382A (ja) | 1997-01-17 |
Family
ID=16214062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7187894A Pending JPH0916382A (ja) | 1995-06-30 | 1995-06-30 | プログラム開発支援システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0916382A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006043480A1 (ja) * | 2004-10-19 | 2006-04-27 | Winz Corporation | コンピュータプログラム、プログラム実行装置、プログラム生成処理プログラム、状況表示処理プログラム等 |
US7441235B2 (en) | 2003-02-28 | 2008-10-21 | Denso Corporation | Method, apparatus and program for testing control program |
JP2010020539A (ja) * | 2008-07-10 | 2010-01-28 | Nippon Denno Co Ltd | プログラム開発支援装置及びプログラム作成方法 |
WO2010016148A1 (ja) * | 2008-08-08 | 2010-02-11 | 三菱電機株式会社 | 3次元cadモデル作成装置およびプログラム |
EP2330502A1 (en) | 2005-02-03 | 2011-06-08 | Mitsubishi Denki Kabushiki Kaisha | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
CN102375418A (zh) * | 2010-06-08 | 2012-03-14 | 株式会社日立制作所 | 控制装置及其数据处理方法 |
US8448158B2 (en) | 2005-02-03 | 2013-05-21 | Mitsubishi Electric Corporation | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
JP2013152727A (ja) * | 2013-02-28 | 2013-08-08 | Nippon Denno Co Ltd | プログラム作成方法 |
WO2016181747A1 (ja) * | 2015-05-13 | 2016-11-17 | 沖電気工業株式会社 | 自動取引装置 |
CN117971187A (zh) * | 2024-03-29 | 2024-05-03 | 山东浪潮数字商业科技有限公司 | 一种基于Vue使用配置化数据的表格开发方法和装置 |
-
1995
- 1995-06-30 JP JP7187894A patent/JPH0916382A/ja active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441235B2 (en) | 2003-02-28 | 2008-10-21 | Denso Corporation | Method, apparatus and program for testing control program |
WO2006043480A1 (ja) * | 2004-10-19 | 2006-04-27 | Winz Corporation | コンピュータプログラム、プログラム実行装置、プログラム生成処理プログラム、状況表示処理プログラム等 |
US8572557B2 (en) | 2005-02-03 | 2013-10-29 | Mitsubishi Electric Corporation | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
EP2330502A1 (en) | 2005-02-03 | 2011-06-08 | Mitsubishi Denki Kabushiki Kaisha | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
US8448158B2 (en) | 2005-02-03 | 2013-05-21 | Mitsubishi Electric Corporation | Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof |
JP2010020539A (ja) * | 2008-07-10 | 2010-01-28 | Nippon Denno Co Ltd | プログラム開発支援装置及びプログラム作成方法 |
WO2010016148A1 (ja) * | 2008-08-08 | 2010-02-11 | 三菱電機株式会社 | 3次元cadモデル作成装置およびプログラム |
CN102105882A (zh) * | 2008-08-08 | 2011-06-22 | 三菱电机株式会社 | 三维cad模型制作装置以及程序 |
JP5031098B2 (ja) * | 2008-08-08 | 2012-09-19 | 三菱電機株式会社 | 3次元cadモデル作成装置およびプログラム |
US8731874B2 (en) | 2008-08-08 | 2014-05-20 | Mitsubishi Electric Coproration | Three-dimensional CAD model creating apparatus and program |
CN102375418A (zh) * | 2010-06-08 | 2012-03-14 | 株式会社日立制作所 | 控制装置及其数据处理方法 |
JP2013152727A (ja) * | 2013-02-28 | 2013-08-08 | Nippon Denno Co Ltd | プログラム作成方法 |
WO2016181747A1 (ja) * | 2015-05-13 | 2016-11-17 | 沖電気工業株式会社 | 自動取引装置 |
JP2016212790A (ja) * | 2015-05-13 | 2016-12-15 | 沖電気工業株式会社 | 自動取引装置 |
CN117971187A (zh) * | 2024-03-29 | 2024-05-03 | 山东浪潮数字商业科技有限公司 | 一种基于Vue使用配置化数据的表格开发方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7191395B2 (en) | Method and system for stylesheet-centric editing | |
US6246403B1 (en) | Method and apparatus for generating a graphical user interface | |
JP4007562B2 (ja) | プログラミング補助方法および装置 | |
JP2006228210A (ja) | 既存のコンテンツを用いた、タスクを実行するためのアクティブコンテンツウィザード実行可能ファイルの生成 | |
JPH10222466A (ja) | クライアント/サーバ型の医療用イメージング・システムで指令を実行する方法 | |
JPH10232921A (ja) | セル・オーバーラップ検出及び補正方法 | |
JP2973913B2 (ja) | 入力シートシステム | |
JPH0916382A (ja) | プログラム開発支援システム | |
Nagl et al. | A specification environment for graph grammars | |
CA3134422A1 (en) | System and method of computer-assisted computer programming | |
WO2001077882A1 (en) | System and method for generating computer source code | |
JP3674905B2 (ja) | 文書編集装置 | |
CN117687620A (zh) | 文件生成方法及装置、终端设备及计算机可读存储介质 | |
JPH01144124A (ja) | コンピュータ装置 | |
Münch | Programmed graph rewriting system PROGRES | |
JP2973906B2 (ja) | キャラクタ・ユーザ・インタフェース装置 | |
JP3034527B2 (ja) | エディタ装置 | |
EP1407351A2 (en) | Control display unit page builder software tool | |
Libes et al. | An Object-Oriented Tcl/Tk Binding for Interpreted Control of the NIST EXPRESS Toolkit in the NIST STEP Application Protocol Development Environment | |
Pallmann | Network query language (NQL) | |
Redouane | An Investigation of a Definitional Specification Language and the Development of a Support Tool | |
JPH0546719A (ja) | 画像処理システム | |
JPH08272573A (ja) | 情報処理装置 | |
Holsti | A session editor with incremental execution functions | |
Kayanov | Methods and tools for support of graphs and visual processing |