(57)【要約】【課題】  生成効率の高いアセンブラコードを自動生成することができるプログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラムを提供する。【解決手段】  機能ブロック図を構成するための図形情報とこの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリ１１と、機能ブロックライブラリの図形情報を接続線で接続して機能ブロック図を作成する機能ブロック図作成手段１２と、作成された機能ブロック図の図形情報と接続情報とを記憶する接続情報記憶手段１３と、機能ブロックの実行順序情報を記憶する実行順序情報記憶手段１４と、図形情報を基に機能ブロックライブラリ１１から取得したアセンブラコードモジュールと、接続情報と、実行順序情報とから、アセンブラコードのプログラムを生成するアセンブラコードプログラム生成手段１５とを備えることを特徴とする。【選択図】  図１
2007128345.tif 000002
【特許請求の範囲】
【請求項１】
機能ブロック図を構成するための機能ブロックの形状および入出力端子数がそれぞれ設定された複数の機能ブロックの図形情報と、前記機能ブロックの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリと、
前記機能ブロックライブラリから必要な前記機能ブロックの図形情報をユーザの指示により取得し、取得した機能ブロックの図形情報に設定されている前記入出力端子数に基づいて取得した機能ブロック間をユーザの指示により接続線で接続して機能ブロック図を作成する機能ブロック図作成手段と、
前記機能ブロック図作成手段で作成された機能ブロック図を構成する各機能ブロック間の接続に関する情報を記憶する接続情報記憶手段と、
前記機能ブロック図作成手段で作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する情報を記憶する実行順序情報記憶手段と、
前記機能ブロック図作成手段で作成された機能ブロック図の図形情報に基づいて前記機能ブロックライブラリから取得したアセンブラコードモジュールと、前記接続情報記憶手段から取得した前記機能ブロック間の接続に関する情報と、前記実行順序情報記憶手段から取得した前記機能ブロックの実行順序に関する情報とから、アセンブラコードのプログラムを生成するアセンブラコードプログラム生成手段と、
を備えることを特徴とするプログラム自動生成装置。
【請求項２】
前記アセンブラコードプログラム生成手段は、
前記実行順序情報記憶手段から取得した前記機能ブロックの実行順序に関する情報を基に、前記機能ブロックライブラリから取得したアセンブラコードモジュールを並べ替えるアセンブラコードモジュール並べ替え手段と、
前記接続情報記憶手段から取得した前記機能ブロック間の接続に関する情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を割り当てることによりアセンブラコードのプログラムを生成する入出力変数割り当て手段と、
を有することを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項３】
前記入出力変数割り当て手段において割り当てられる入出力先を示す変数として、各機能ブロックを接続する接続線名を用いる
ことを特徴とする請求項２に記載のプログラム自動生成装置。
【請求項４】
前記ブロック図作成手段において作成された前記機能ブロック図の各接続線にそれぞれ接続線名を自動生成し、
前記入出力変数割り当て手段において割り当てられる入出力先を示す変数として、前記ブロック図作成手段で自動生成された接続線名を用いる
ことを特徴とする請求項２または請求項３に記載のプログラム自動生成装置。
【請求項５】
前記入出力変数割り当て手段において、入出力先を示す変数としてテンポラリ変数を自動的に割り当てる
ことを特徴とする請求項２に記載のプログラム自動生成装置。
【請求項６】
前記機能ブロック図作成手段で作成された機能ブロック図に割り込み処理が含まれるときは、前記アセンブラコードプログラム生成手段において前記割り込み処理に対応するアセンブラコードのプログラムを自動生成する
ことを特徴とする請求項１〜５いずれか１項に記載のプログラム自動生成装置。
【請求項７】
機能ブロック図を構成するための機能ブロックの形状および入出力端子数がそれぞれ設定された複数の機能ブロックの図形情報と、前記機能ブロックの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリを保持し、
前記機能ブロックライブラリから必要な前記機能ブロックの図形情報をユーザの指示により取得し、取得した機能ブロックの図形情報に設定されている前記入出力端子数に基づいて取得した機能ブロック間をユーザの指示により接続線で接続して機能ブロック図を作成し、
作成された機能ブロック図を構成する各機能ブロック間の接続に関する情報を記憶し、
作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する情報を記憶し、
作成された機能ブロック図の図形情報を基に前記機能ブロックライブラリから取得したアセンブラコードモジュールと、記憶された機能ブロック間の接続に関する情報と、記憶された機能ブロックの実行順序に関する情報とから、アセンブラコードのプログラムを生成する、
ことを特徴とするプログラム自動生成方法。
【請求項８】
記憶された機能ブロックの実行順序に関する情報を基に、前記機能ブロックライブラリから取得したアセンブラコードモジュールを並べ替え、
記憶された機能ブロック間の接続に関する情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を割り当てることによりアセンブラコードのプログラムを生成する、
ことを特徴とする請求項７に記載のプログラム自動生成方法。
【請求項９】
前記入出力先を示す変数として、各機能ブロックを接続する接続線名を用いる
ことを特徴とする請求項８に記載のプログラム自動生成方法。
【請求項１０】
作成された機能ブロック図の各接続線にそれぞれ接続線名を自動生成し、
前記入出力先を示す変数として、自動生成された接続線名を用いる
ことを特徴とする請求項８または請求項９に記載のプログラム自動生成方法。
【請求項１１】
前記入出力先を示す変数として、テンポラリ変数を用いて自動的に割り当てる
ことを特徴とする請求項８に記載のプログラム自動生成方法。
【請求項１２】
作成された機能ブロック図に割り込み処理が含まれるときは、前記割り込み処理に対応するアセンブラコードのプログラムを自動生成する
ことを特徴とする請求項７〜１１いずれか１項に記載のプログラム自動生成方法。
【請求項１３】
機能ブロック図を構成するための機能ブロックの形状および入出力端子数がそれぞれ設定された複数の機能ブロックの図形情報と、前記機能ブロックの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリを保持する機能と、
前記機能ブロックライブラリから必要な前記機能ブロックの図形情報をユーザの指示により取得し、取得した機能ブロックの図形情報に設定されている前記入出力端子数に基づいて取得した機能ブロック間をユーザの指示により接続線で接続して機能ブロック図を作成する機能ブロック図作成機能と、
前記機能ブロック図作成機能で作成された機能ブロック図を構成する各機能ブロック間の接続に関する情報を記憶する接続情報記憶機能と、
前記機能ブロック図作成機能で作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する情報を記憶する実行順序情報記憶機能と、
前記機能ブロック図作成機能で作成された機能ブロック図の図形情報を基に前記機能ブロックライブラリから取得したアセンブラコードモジュールと、前記接続情報記憶機能から取得した前記機能ブロック間の接続に関する情報と、前記実行順序情報記憶機能から取得した前記機能ブロックの実行順序に関する情報とから、アセンブラコードのプログラムを生成するアセンブラコードプログラム生成機能と、
をコンピュータに実現させるためのプログラム自動生成プログラム。
【請求項１４】
前記アセンブラコードプログラム生成機能は、
前記実行順序情報記憶機能から取得した前記機能ブロックの実行順序に関する情報を基に、前記機能ブロックライブラリから取得したアセンブラコードモジュールを並べ替えるアセンブラコードモジュール並べ替え機能と、
前記接続情報記憶機能から取得した前記機能ブロック間の接続に関する情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を割り当てることによりアセンブラコードのプログラムを生成する入出力変数割り当て機能と、
を有することを特徴とする請求項１３に記載のプログラム自動生成プログラム。
【請求項１５】
前記入出力変数割り当て機能において割り当てられる入出力先を示す変数として、各機能ブロックを接続する接続線名を用いる
ことを特徴とする請求項１４に記載のプログラム自動生成プログラム。
【請求項１６】
前記ブロック図作成機能において作成された前記機能ブロック図の各接続線にそれぞれ接続線名を自動生成し、
前記入出力変数割り当て機能において割り当てられる入出力先を示す変数として、前記ブロック図作成機能で自動生成された接続線名を用いる
ことを特徴とする請求項１４または請求項１５に記載のプログラム自動生成プログラム。
【請求項１７】
前記入出力変数割り当て機能において、入出力先を示す変数としてテンポラリ変数を自動的に割り当てる
ことを特徴とする請求項１４に記載のプログラム自動生成プログラム。
【請求項１８】
前記機能ブロック図作成機能で作成された機能ブロック図に割り込み処理が含まれるときは、前記アセンブラコードプログラム生成機能において前記割り込み処理に対応するアセンブラコードのプログラムを自動生成する
ことを特徴とする請求項１３〜１７いずれか１項に記載のプログラム自動生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御用プロセッサで利用されるプログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラムに関する。
【背景技術】
【０００２】
コンピュータに処理を実行させるためのプログラムの作成には膨大な工数を必要とすることが多い。このため、特定の分野向けに、予め部品化したプログラムコードモジュールを用意し、フローチャート等の入力を受けて必要なモジュールを選択し、それらを組み合わせることで必要なプログラムを自動生成する方法が各種提案されている。
【０００３】
その一例として、特許文献１にはＣＡＤ(Computer Aided Design)システムにより制御プログラム処理内容を機能ブロック図として記述し、その機能ブロック図からプログラムコードを自動生成するシステムが記載されている。
【０００４】
このプログラムの自動生成システムでは、公知のＣＡＤ機能を用いて作成されたプログラム内部処理を読み出し、シンボル、線分、および文字を認識し、さらにシンボルの円を終始点または結合子と認識し、矩形を処理と認識し、菱形を判断と認識し、これらシンボルに接続する線分のつながりに沿ってシンボル内の文字に高級言語特有の修飾語を加えて並べることにより、高級言語のプログラムコードを生成する。
【０００５】
この方法を利用することにより、比較的初心者でもプログラミングが可能になる。
【特許文献１】特開昭６２−９４３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記の特許文献１の技術は高級言語のプログラムコードを自動生成するものであり、最終的なプロセッサ実行コードを得るためには高級言語コンパイラによってプロセッサ固有のアセンブラコードに変換する必要がある。
【０００７】
一方、組み込み用プロセッサが搭載されている制御機器や携帯機器等はリアルタイム処理が必要な用途に適用される場合があり、このような場合にはプロセッサのプログラム実行時間を短くすることが要求される。
【０００８】
プログラム実行時間を短くするにはプロセッサ固有のアセンブラコード（実行コード）でプログラムコードを生成することが理想であるが、アセンブラによるプログラムコードの生成はＣ言語等の高級言語によるプログラムコードの生成に比べて熟練を要すること、またプログラムコードの可読性が低く保守が容易でないこと等の問題がある。
【０００９】
アセンブラのプログラムコードの生成を容易にするために、上記の特許文献１の技術を用いて高級言語のプログラムコードを自動生成し、さらに自動生成された高級言語のプログラムコードを高級言語コンパイラによってアセンブラコードに変換することが考えられる。
【００１０】
しかし、高級言語コンパイラにより自動生成されたアセンブラコードは熟練者によりハンドコーディングで生成されたアセンブラコードに比べて生成効率が低く、コードサイズが大きくなるため実行時間が長くなってしまう。そのため、上述したようなリアルタイム処理が必要な組み込み用プロセッサには適さないという問題があった。
【００１１】
本発明は、上記事情に鑑みてなされたものであり、生成効率の高いアセンブラコードを自動生成することができるプログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明の請求項１に記載のプログラム自動生成装置は、機能ブロック図を構成するための機能ブロックの形状および入出力端子数がそれぞれ設定された複数の機能ブロックの図形情報と、機能ブロックの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリと、機能ブロックライブラリから必要な機能ブロックの図形情報をユーザの指示により取得し、取得した機能ブロックの図形情報に設定されている入出力端子数に基づいて取得した機能ブロック間をユーザの指示により接続線で接続して機能ブロック図を作成する機能ブロック図作成手段と、機能ブロック図作成手段で作成された機能ブロック図を構成する各機能ブロック間の接続に関する情報を記憶する接続情報記憶手段と、機能ブロック図作成手段で作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する情報を記憶する実行順序情報記憶手段と、機能ブロック図作成手段で作成された機能ブロック図の図形情報に基づいて機能ブロックライブラリから取得したアセンブラコードモジュールと、接続情報記憶手段から取得した機能ブロック間の接続に関する情報と、実行順序情報記憶手段から取得した機能ブロックの実行順序に関する情報とから、アセンブラコードのプログラムを生成するアセンブラコードプログラム生成手段とを備えることを特徴とする。
【００１３】
また、請求項２は請求項１に記載のプログラム自動生成装置であり、アセンブラコードプログラム生成手段は、実行順序情報記憶手段から取得した機能ブロックの実行順序に関する情報を基に、機能ブロックライブラリから取得したアセンブラコードモジュールを並べ替えるアセンブラコードモジュール並べ替え手段と、接続情報記憶手段から取得した機能ブロック間の接続に関する情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を割り当てることによりアセンブラコードのプログラムを生成する入出力変数割り当て手段とを有することを特徴とする。
【００１４】
また、請求項３は請求項２に記載のプログラム自動生成装置であり、入出力変数割り当て手段において割り当てられる入出力先を示す変数として、各機能ブロックを接続する接続線名を用いることを特徴とする。
【００１５】
また、請求項４は請求項２または請求項３に記載のプログラム自動生成装置であり、ブロック図作成手段において作成された機能ブロック図の各接続線にそれぞれ接続線名を自動生成し、入出力変数割り当て手段において割り当てられる入出力先を示す変数として、ブロック図作成手段で自動生成された接続線名を用いることを特徴とする。
【００１６】
また、請求項５は請求項２に記載のプログラム自動生成装置であり、入出力変数割り当て手段において、入出力先を示す変数としてテンポラリ変数を自動的に割り当てることを特徴とする。
【００１７】
また、請求項６は請求項１〜５いずれか１項に記載のプログラム自動生成装置であり、機能ブロック図作成手段で作成された機能ブロック図に割り込み処理が含まれるときは、アセンブラコードプログラム生成手段において割り込み処理に対応するアセンブラコードのプログラムを自動生成することを特徴とする。
【００１８】
また、請求項７に記載のプログラム自動生成方法は、機能ブロック図を構成するための機能ブロックの形状および入出力端子数がそれぞれ設定された複数の機能ブロックの図形情報と、機能ブロックの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリを保持し、機能ブロックライブラリから必要な機能ブロックの図形情報をユーザの指示により取得し、取得した機能ブロックの図形情報に設定されている入出力端子数に基づいて取得した機能ブロック間をユーザの指示により接続線で接続して機能ブロック図を作成し、作成された機能ブロック図を構成する各機能ブロック間の接続に関する情報を記憶し、作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する情報を記憶し、作成された機能ブロック図の図形情報を基に機能ブロックライブラリから取得したアセンブラコードモジュールと、記憶された機能ブロック間の接続に関する情報と、記憶された機能ブロックの実行順序に関する情報とから、アセンブラコードのプログラムを生成することを特徴とする。
【００１９】
また、請求項８は請求項７に記載のプログラム自動生成方法であり、記憶された機能ブロックの実行順序に関する情報を基に、機能ブロックライブラリから取得したアセンブラコードモジュールを並べ替え、記憶された機能ブロック間の接続に関する情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を割り当てることによりアセンブラコードのプログラムを生成することを特徴とする。
【００２０】
また、請求項９は請求項８に記載のプログラム自動生成方法であり、入出力先を示す変数として、各機能ブロックを接続する接続線名を用いることを特徴とする。
【００２１】
また、請求項１０は請求項８または請求項９に記載のプログラム自動生成方法であり、作成された機能ブロック図の各接続線にそれぞれ接続線名を自動生成し、入出力先を示す変数として、自動生成された接続線名を用いることを特徴とする。
【００２２】
また、請求項１１は請求項８に記載のプログラム自動生成方法であり、入出力先を示す変数として、テンポラリ変数を用いて自動的に割り当てることを特徴とする。
【００２３】
また、請求項１２は請求項７〜１１いずれか１項に記載のプログラム自動生成方法であり、作成された機能ブロック図に割り込み処理が含まれるときは、割り込み処理に対応するアセンブラコードのプログラムを自動生成することを特徴とする。
【００２４】
また、請求項１３はプログラム自動生成プログラムであり、機能ブロック図を構成するための機能ブロックの形状および入出力端子数がそれぞれ設定された複数の機能ブロックの図形情報と、機能ブロックの図形情報ごとの処理内容に対応したアセンブラコードモジュールを予め記憶する機能ブロックライブラリを保持する機能と、機能ブロックライブラリから必要な機能ブロックの図形情報をユーザの指示により取得し、取得した機能ブロックの図形情報に設定されている入出力端子数に基づいて取得した機能ブロック間をユーザの指示により接続線で接続して機能ブロック図を作成する機能ブロック図作成機能と、機能ブロック図作成機能で作成された機能ブロック図を構成する各機能ブロック間の接続に関する情報を記憶する接続情報記憶機能と、機能ブロック図作成機能で作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する情報を記憶する実行順序情報記憶機能と、機能ブロック図作成機能で作成された機能ブロック図の図形情報を基に機能ブロックライブラリから取得したアセンブラコードモジュールと、接続情報記憶機能から取得した機能ブロック間の接続に関する情報と、実行順序情報記憶機能から取得した機能ブロックの実行順序に関する情報とから、アセンブラコードのプログラムを生成するアセンブラコードプログラム生成機能とをコンピュータに実現させることを特徴とする。
【００２５】
また、請求項１４は請求項１３に記載のプログラム自動生成プログラムであり、アセンブラコードプログラム生成機能は、実行順序情報記憶機能から取得した機能ブロックの実行順序に関する情報を基に、機能ブロックライブラリから取得したアセンブラコードモジュールを並べ替えるアセンブラコードモジュール並べ替え機能と、接続情報記憶機能から取得した機能ブロック間の接続に関する情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を割り当てることによりアセンブラコードのプログラムを生成する入出力変数割り当て機能とを有することを特徴とする。
【００２６】
また、請求項１５は請求項１４に記載のプログラム自動生成プログラムであり、入出力変数割り当て機能において割り当てられる入出力先を示す変数として、各機能ブロックを接続する接続線名を用いることを特徴とする。
【００２７】
また、請求項１６は請求項１４または請求項１５に記載のプログラム自動生成プログラムであり、ブロック図作成機能において作成された機能ブロック図の各接続線にそれぞれ接続線名を自動生成し、入出力変数割り当て機能において割り当てられる入出力先を示す変数として、ブロック図作成機能で自動生成された接続線名を用いることを特徴とする。
【００２８】
また、請求項１７は請求項１４に記載のプログラム自動生成プログラムであり、入出力変数割り当て機能において、入出力先を示す変数としてテンポラリ変数を自動的に割り当てることを特徴とする。
【００２９】
また、請求項１８は請求項１３〜１７いずれか１項に記載のプログラム自動生成プログラムであり、機能ブロック図作成機能で作成された機能ブロック図に割り込み処理が含まれるときは、アセンブラコードプログラム生成機能において割り込み処理に対応するアセンブラコードのプログラムを自動生成することを特徴とする。
【発明の効果】
【００３０】
本発明によるプログラム自動生成装置、プログラム自動生成方法、およびプログラム自動生成プログラムによれば、ＣＡＤシステムにより記述された機能ブロック図を用いて、生成効率が高いアセンブラコードを自動生成することができる。
【発明を実施するための最良の形態】
【００３１】
《第１実施形態》
〈第１実施形態によるプログラム自動生成装置の構成〉
本発明の第一実施形態によるプログラム自動生成装置の構成図を図１に示す。
【００３２】
本実施形態によるプログラム自動生成装置１は、パーソナルコンピュータやワークステーションで構成され、機能ブロックライブラリ１１と、機能ブロック図作成手段１２と、接続情報記憶手段１３と、実行順序情報記憶手段１４と、アセンブラコードプログラム生成手段１５と、アセンブラコードプログラム記憶手段１６とを有する。
【００３３】
機能ブロックライブラリ１１は、機能ブロック図を構成する各機能ブロックの長方形、円、菱形などの形状に関する情報、およびこれらの機能ブロックへの入力端子数、機能ブロックからの出力端子数に関する情報を含む図形情報と、各機能ブロックの処理内容に対応した図形情報ごとのアセンブラコードモジュールとを予め記憶する。
【００３４】
ここで、図形情報として記憶される機能ブロックの形状には、例えば終始点または結合子を表す円、処理を表す矩形、判断を表す菱形などがある。また、記憶されるアセンブラコードモジュールは、予めハンドコーディングにより用意された生成効率の高いアセンブラコードである。
【００３５】
機能ブロック図作成手段１２は、例えばＣＡＤシステムを動作させるソフトウェアであり、ユーザの指示により機能ブロックライブラリ１１から必要な処理内容の機能ブロックの図形情報を取得し、取得した図形情報の入力端子および出力端子を接続線により接続して機能ブロック図を作成する。
【００３６】
接続情報記憶手段１３は、機能ブロック図作成手段１２で作成された機能ブロック図の機能ブロック間の接続に関する接続情報を記憶する。
【００３７】
実行順序情報記憶手段１４は、機能ブロック図作成手段１２で作成された機能ブロック図を構成する複数の機能ブロックの実行順序に関する実行順序情報を記憶する。実行順序は、機能ブロック図が作成される時点で既に決定されている場合もあれば、機能ブロック図が作成される過程で決定される場合もある。また、機能ブロック図の作成に用いられているＣＡＤシステムのソフトウェアに各機能ブロックの実行順序を決定する機能が備わっている場合は、その機能を利用してもよい。
【００３８】
アセンブラコードプログラム生成手段１５は、作成された機能ブロック図の図形情報を基に機能ブロックライブラリ１１から各図形情報に対応するアセンブラコードモジュールを取得し、取得したアセンブラコードモジュールを実行順序情報記憶手段１４に記憶された実行順序情報に従って並べ替えるアセンブラコードモジュール並べ替え手段１５ａと、接続情報記憶手段１３から取得した接続情報を基に、並べ替えられたアセンブラコードモジュールにそれぞれの入出力先を示す変数を引数として割り当てることにより機能ブロック図作成手段１２で作成された機能ブロック図に対応するアセンブラコードのプログラムを生成する入出力変数割り当て手段１５ｂとを有する。
【００３９】
アセンブラコードプログラム記憶手段１６は、アセンブラコードプログラム生成手段１５で生成されたアセンブラコードのプログラムを記憶する。
【００４０】
〈第１実施形態によるプログラム自動生成装置の動作〉
本実施形態におけるプログラム自動生成装置１を用いてユーザの所望の処理手順を示すアセンブラコードのプログラムを生成する動作について、図２のフローチャートを参照して説明する。
【００４１】
まず、ユーザにより、所望の処理手順を表すために必要な図形情報が機能ブロックライブラリ１１から取得される（Ｓ１）。さらに、ユーザによりＣＡＤシステムが用いられて取得された図形情報の入力端子および出力端子が接続線により接続されることにより、所望の処理手順が表された機能ブロック図が作成される。（Ｓ２）。
【００４２】
次に、作成された機能ブロック図において、各機能ブロック間のどの出力端子とどの入力端子とが接続線で接続されているかという接続情報が接続情報記憶手段１３に記憶される（Ｓ３）。
【００４３】
さらに、作成された機能ブロック図を構成する複数の機能ブロックの相対的な実行順序に関する実行順序情報が実行順序情報記憶手段１４に記憶される（Ｓ４）。
【００４４】
次に、アセンブラコードプログラム生成手段１５のアセンブラコードモジュール並べ替え手段１５ａにおいて、ステップＳ２で作成された機能ブロック図の図形情報に対応するアセンブラコードモジュールが機能ブロックライブラリ１１から取得される（Ｓ５、Ｓ６）。
【００４５】
さらに、アセンブラコードモジュール並べ替え手段１５ａにおいて、実行順序情報記憶手段１４に記憶された実行順序情報が取得され、この実行順序情報に従ってステップＳ６で取得されたアセンブラコードモジュールが並べ替えられる（Ｓ７）。
【００４６】
次に、アセンブラコードプログラム生成手段１５の入出力変数割り当て手段１５ｂにおいて、ステップＳ３で接続情報記憶手段１３に記憶された接続情報が取得され、この接続情報に従ってアセンブラコードモジュールにそれぞれの入出力先を示す変数が引数として割り当てられる（Ｓ８）。
【００４７】
すべてのアセンブラコードモジュールに引数が割り当てられると、ステップＳ２で作成された機能ブロック図に対応するアセンブラコードのプログラムが生成される（Ｓ９）。
【００４８】
生成されたアセンブラコードのプログラムは、アセンブラコードプログラム記憶手段１６に記憶される（Ｓ１０）。
【００４９】
以上の第１実施形態によれば、初心者でも簡単な操作で生成効率の高いアセンブラコードのプログラムを生することができる。
【００５０】
《第２実施形態》
本発明の第２実施形態よるプログラム自動生成装置について図３を用いて説明する。
【００５１】
本実施形態よるプログラム自動生成装置１の構成は、第１実施形態と同様であるため詳細な説明は省略する。
【００５２】
また、本実施形態によるプログラム自動生成装置１の主な動作は、第１実施形態と同様であるが、異なる点はアセンブラコードプログラム生成手段１５の入出力変数割り当て手段１５ｂにおいて割り当てられる入出力先を示す変数には、入出力先につながる接続線名が引数として用いられることである。
【００５３】
例えば、ＣＡＤシステムにより作成された機能ブロック図が、図３に示すように接続された機能ブロック２１、２２と、接続線２３〜２６と、制御信号入力端子２７、２８と、制御信号出力端子２９とを有するものとする。
【００５４】
ここで、機能ブロック２１のアセンブラコードモジュール名をBlock_A、機能ブロック２２のアセンブラコードモジュール名をBlock_Bと仮定する。同様に、接続線２３をLine_1、接続線２４をLine_2、接続線２５をLine_3、接続線２６をLine_4と仮定する。
【００５５】
また、実行順序情報記憶手段１４に記憶された実行順序により、Block_A→Block_Bの順に処理が実行されるものとする。
【００５６】
図３の構成に基づいて機能ブロック２１および機能ブロック２２のアセンブラコードモジュール名であるBlock_AおよびBlock_Bの入出力先を示す変数としてそれぞれ引数（入力*、出力*）を定義すると、
Block_A  入力１、出力１
Block_B  入力１、入力２、出力１
となる。
【００５７】
上記の定義で、アセンブラコードモジュール名Block_Aは１入力、１出力であり、Block_Bは２入力、１出力であり、これは制御信号入力端子数および制御信号出力端子数と一致する。
【００５８】
ここで、図３のブロック図に示される接続情報から、各引数を各接続線のアセンブラコードモジュール名で置き換えると、
Block_A  Line_1、Line_2
Block_B  Line_2、Line_3、Line_4
となる。
【００５９】
したがって、実行順序情報に従ってアセンブラコードが並べ替えられた後、上記のように各機能ブロックの入出力先を示す変数が接続線のアセンブラコードモジュール名で置き換えられることにより、作成された機能ブロック図に対応するアセンブラコードのプログラムが生成される。
【００６０】
以上の第２実施形態によれば、作成された機能ブロック図から、各機能ブロックの入出力先を示すアセンブラコードモジュールを生成することが可能になる。
【００６１】
《第３実施形態》
本発明の第３実施形態よるプログラム自動生成装置について説明する。
【００６２】
本実施形態よるプログラム自動生成装置１の構成は、第１実施形態および第２実施形態と同様であるため詳細な説明は省略する。
【００６３】
また、本実施形態によるプログラム自動生成装置１の主な動作は第２実施形態と同様であるが、異なる点は各接続線に付加される名前がＣＡＤシステムにより自動生成され、この自動生成された接続線の名前が各機能ブロックの入出力先を示す変数として用いられることである。
【００６４】
以上の第３実施形態によれば、アセンブラコードのプログラム内の各機能ブロックの入出力先の変数を、ブロック図上において自動生成される接続線の名前でユーザが指定することができ、プログラム実行時における変数のモニタリングが容易になるという利点がある。
【００６５】
《第４実施形態》
本発明の第４実施形態よるプログラム自動生成装置について説明する。
【００６６】
本実施形態よるプログラム自動生成装置１の構成は、第１実施形態〜第３実施形態と同様であるため詳細な説明は省略する。
【００６７】
また、本実施形態によるプログラム自動生成装置１の主な動作は、第２実施形態および第３実施形態と同様であるが、異なる点は自動的に割り当てられるテンポラリ変数が各機能ブロックの入出力先を示す変数として用いられることである。
【００６８】
テンポラリ変数は、プログラム内で一時的に使用される変数であり、各アセンブラコードモジュール間での引数の受け渡しが終わった時点で、他のモジュールの引数として再利用される。
【００６９】
以上の第４実施形態によれば、アセンブラコードのプログラム内の各機能ブロックの入出力先の変数をブロック図上でモニタリング等が必要な接続線にのみ自動的に名前を定義すれば良く、ブロック図の入力が容易になるという利点がある。さらに、プログラム変数領域を有効的に活用することができるという利点がある。
【００７０】
《第５実施形態》
本発明の第５実施形態よるプログラム自動生成装置について図４を用いて説明する。
【００７１】
本実施形態よるプログラム自動生成装置１の構成は、第１実施形態〜第４実施形態と同様であるため詳細な説明は省略する。
【００７２】
また、本実施形態によるプログラム自動生成装置１の主な動作は、第１実施形態〜第４実施形態と同様であるが、異なる点は、ＣＡＤシステムにより生成された機能ブロック図中に周期の異なる割り込み処理を有することである。
【００７３】
例えば、図４に示すように機能ブロック図中に周期Ａの割り込み処理３１と、周期Ｂの割り込み処理３２とを有するものとする。さらに、これらの割り込み処理３１、３２に接続される接続線３３〜３８と、制御信号入力端子３９〜４１と、制御信号出力端子４２、４３とを有するものとする。
【００７４】
このような機能ブロック図が生成されると、割り込み処理毎に個別のアセンブラコードが自動生成される。各割り込み処理のアセンブラコードの生成方法は、第１実施形態〜第４実施形態における機能ブロックのアセンブラコードの生成方法を用いることができ、例えば第２実施形態と同様の動作でアセンブラコードのプログラムが生成されると、以下のようになる。
【００７５】
Block_c  Line_5、Line_6、Line_7、Line_8
Block_d  Line_8、Line_9、Line_10
以上の第５実施形態によれば、生成された機能ブロック図が複数の周期の異なる割込み処理を持つ場合でも、アセンブラコードのプログラムを自動生成することが可能となる。
【００７６】
また、第１実施形態〜第５実施形態によるプログラム自動生成装置の動作をプログラム化してコンピュータに組み込むことにより、当該コンピュータをアセンブラコードのプログラムを自動作成する装置として機能させるプログラム自動生成プログラムを構築することもできる。
【図面の簡単な説明】
【００７７】
【図１】本発明の第１実施形態によるプログラム自動生成装置の構成を示す機能ブロック図である。
【図２】本発明の第１実施形態によるプログラム自動生成装置の動作を示すフローチャートである。
【図３】本発明の第２実施形態によるプログラム自動生成装置のブロック図作成手段により作成された処理手順を示す機能ブロック図である。
【図４】本発明の第５実施形態によるプログラム自動生成装置のブロック図作成手段により作成された処理手順を示す機能ブロック図である。
【符号の説明】
【００７８】
１…プログラム自動生成装置
１１…機能ブロックライブラリ
１２…機能ブロック図作成手段
１３…接続情報記憶手段
１４…実行順序情報記憶手段
１５…アセンブラコードプログラム生成手段
１５ａ…アセンブラコードモジュール並べ替え手段
１５ｂ…入出力変数割り当て手段
１６…アセンブラコードプログラム記憶手段
２１、２２…機能ブロック
２３〜２６…接続線
２７、２８…制御信号入力端子
２９…制御信号出力端子
３１、３２…割り込み処理
３３〜３８…接続線
３９〜４１…制御信号入力端子
４２、４３…制御信号出力端子
【図１】
2007128345.tif 000003
【図２】
2007128345.tif 000004
【図３】
2007128345.tif 000005
【図４】
2007128345.tif 000006