JP2012022425A - プログラム自動生成装置、自動生成方法、および、プログラム - Google Patents

プログラム自動生成装置、自動生成方法、および、プログラム Download PDF

Info

Publication number
JP2012022425A
JP2012022425A JP2010158495A JP2010158495A JP2012022425A JP 2012022425 A JP2012022425 A JP 2012022425A JP 2010158495 A JP2010158495 A JP 2010158495A JP 2010158495 A JP2010158495 A JP 2010158495A JP 2012022425 A JP2012022425 A JP 2012022425A
Authority
JP
Japan
Prior art keywords
code
previous value
information indicating
control processing
feedback loop
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
Application number
JP2010158495A
Other languages
English (en)
Inventor
Masatoshi Tsuyuki
正年 露木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2010158495A priority Critical patent/JP2012022425A/ja
Publication of JP2012022425A publication Critical patent/JP2012022425A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】リソースや演算時間の制約が厳しい組込み用途のプログラム開発において当該制約を受けにくいプログラム自動生成装置、自動生成方法、および、プログラムを提供する。
【解決手段】ユーザにより制御ブロック図を用いた仕様記述がなされる(S1)。次に、仕様記述された制御ブロック図を基に接続情報の抽出を行う(S2)。そして接続情報にフィードバックループが含まれるかを検出する(S3)。当該チェックで接続情報にフィードバックループが含まれていなければ、通常対応による制御処理コードを自動生成する(S4)。またフィードバックループが含まれていれば、FB対応による制御処理コードを自動生成する(S5〜S7)。全接続情報について制御処理コードを抽出していればステップS9に進み、いなければステップS3に戻る。FB対応制御処理コード生成処理により生成された制御処理コードと通常対応制御処理コードを合成して出力する(S9)。
【選択図】図3

Description

本発明は、開発者や利用者などが作成した図形式の仕様に従ったプログラムソースコードを自動生成するプログラム自動生成装置、自動生成方法、および、プログラムに関する。
従来、ブロック図の形式で記述されたプログラム仕様をもとにプログラムソースコードを自動生成する技術は、ビジュアルプログラミング技術として従来から一般的に制御分野などのプログラム開発で汎く利用されている。その中で、フィードバックループを含んだブロック図のコード生成に関しては、例えば下記特許文献1で、演算順序を決定する手法が提案されている。
図8は、制御ブロック図にフィードバックループが含まれている場合の従来の解決手法の一例を示す図である。図8においては、特許文献1に示されているように、自動生成対象の制御ブロック図にフィードバックループ(優先ブロックD)が含まれている場合、演算順序が正しく決定できない(開発者が望んだブロックの演算順A→B→D→Cが、A→D→B→Cと自動生成されてしまう)場合にブロック作成順序を図8の下右部に示すよう設定して、開発者の望むブロックの演算順序になるようにしている。
この場合、特許文献1に示された従来の解決手法で正しい演算順序A→B→D→Cが決定されたとすると、生成されるプログラムのソースコードは、一般的な高級プログラミング言語、例えばC言語、を使って表記してみると、一般的には、図9に示されるようになる。
特開2010−66847号公報
しかしながら、図9のコードが実際に実行されると、図9に下線で示している「Dの出力」は、演算D()が実行されて値が実際に確定する前に、演算B()の実行で「Dの出力」が参照されることになってしまう、という問題点がある。
制御ブロック図で記述される制御演算は、通常一定周期で繰り返し実行されることで連続的な制御を実現するものなので、「Dの出力」が処理終了後も保持されるならば、演算B()で参照される「Dの出力」は1回前の処理実行時に演算D()で確定した値になるので、制御遅れはあるものの制御演算は成立する。しかし、そのためにはすべての演算出力はそれぞれ異なる記憶領域に格納されるようコードが生成される必要があり、そのために高速な一時記憶手段(CPUの汎用レジスタなど)が活用できなくなってしまうという問題があるので、メモリリソースおよび演算時間の制約の厳しい組込み用途のプログラム開発ではコストパフォーマンスから見てデメリットとなる。
そこで本発明は、リソースや演算時間の制約が厳しい組込み用途のプログラム開発において当該制約を受けにくいプログラム自動生成装置、自動生成方法、および、プログラムを提供することを目的とする。
上記課題を解決するために本発明は、変数入出力端子要素と演算子要素を線によって接続することで制御処理の流れを表現する制御ブロック図の形式でプログラムの仕様を記述する制御ブロック図仕様記述手段と、前記制御ブロック図の接続関係を示す情報をもとに制御ブロック図で表現されたプログラムの仕様を満たすコンパイル可能なソースコードを自動生成する制御処理コード自動生成手段を有するプログラム自動生成装置において、前記制御処理コード自動生成手段は、前記記述された制御ブロック図の接続関係を示す情報を出力側から入力側に探索して、該接続関係を示す情報に出力側の演算結果出力が入力側の演算の入力に直接接続されるフィードバックループが含まれているか否かを検出する接続情報抽出手段と、該接続情報抽出手段が前記接続関係を示す情報に前記フィードバックループが含まれていないことを検出した場合には、入力側から出力側に一方向に演算順序を設定して自動的に制御処理コードを生成する通常対応制御処理コード生成手段と、前記接続情報抽出手段が前記接続関係を示す情報に前記フィードバックループが含まれていることを検出した場合には、該検出した接続関係を示す情報に対して対応する前回値変数の定義コードを自動生成する前回値変数定義自動生成手段、該定義された前回値変数に対してフィードバックループの出力側の演算結果を前回値変数に代入するための保存コードを自動生成する前回値保存コード自動生成手段、および、前記フィードバックループの入力の一方に前回値変数の値を代入する前回値入力コードを自動生成する前回値入力コード自動生成手段を有するフィードバック対応制御処理コード生成手段と、前記フィードバック対応制御処理コード生成手段によって前記自動生成された前回値変数の定義コード、前回値保存コード及び前回値入力コード、並びに、前記通常対応制御処理コード生成手段によって前記接続関係を示す情報に前記フィードバックループが含まれていない場合に前記自動生成される通常対応制御処理コード、をそれぞれ受け取って合成し、前記制御ブロック図の接続関係を示す情報にフィードバックループが含まれていた場合であっても、自動的にプログラムの仕様を満たすソースコードを生成する制御処理コード合成手段と、を備える、ことを特徴とする。
また本発明は、変数入出力端子要素と演算子要素を線によって接続することで制御処理の流れを表現する制御ブロック図の形式でプログラムの仕様を記述し、該制御ブロック図の接続関係を示す情報をもとに制御ブロック図で表現されたプログラムの仕様を満たすコンパイル可能なソースコードを自動生成するプログラム自動生成方法において、前記記述された制御ブロック図の接続関係を示す情報を出力側から入力側に探索して、該接続関係を示す情報に出力側の演算結果出力が入力側の演算の入力に直接接続されるフィードバックループが含まれているか否かを検出し、前記接続関係を示す情報に前記フィードバックループが含まれていないことを検出した場合には、入力側から出力側に一方向に演算順序を設定して自動的に制御処理コードを生成し、前記接続関係を示す情報に前記フィードバックループが含まれていることを検出した場合には、該検出した接続関係を示す情報に対して対応する前回値変数の定義コードを自動生成し、次いで該定義された前回値変数に対してフィードバックループの出力側の演算結果を前回値変数に代入するための保存コードを自動生成し、さらに、前記フィードバックループの入力の一方に前回値変数の値を代入する前回値入力コードを自動生成し、
前記接続関係を示す情報に前記フィードバックループが含まれていた場合に前記自動生成される前回値変数の定義コード、前回値保存コード及び前回値入力コード、並びに、前記接続関係を示す情報に前記フィードバックループが含まれていない場合に前記自動生成される通常対応制御処理コード、をそれぞれ受け取って合成し、前記制御ブロック図の接続関係を示す情報にフィードバックループが含まれていた場合であっても、自動的にプログラムの仕様を満たすソースコードを生成する、ことを特徴とする。
また本発明は、変数入出力端子要素と演算子要素を線によって接続することで制御処理の流れを表現する制御ブロック図の形式でプログラムの仕様を記述し、該制御ブロック図の接続関係を示す情報をもとに制御ブロック図で表現されたプログラムの仕様を満たすコンパイル可能なソースコードを自動生成するプログラム自動生成プログラムにおいて、コンピュータに、前記記述された制御ブロック図の接続関係を示す情報を出力側から入力側に探索して、該接続関係を示す情報に出力側の演算結果出力が入力側の演算の入力に直接接続されるフィードバックループが含まれているか否かを検出する機能、前記接続関係を示す情報に前記フィードバックループが含まれていないことを検出した場合には、入力側から出力側に一方向に演算順序を設定して自動的に制御処理コードを生成する機能、前記接続関係を示す情報に前記フィードバックループが含まれていることを検出した場合には、該検出した接続関係を示す情報に対して対応する前回値変数の定義コードを自動生成し、次いで該定義された前回値変数に対してフィードバックループの出力側の演算結果を前回値変数に代入するための保存コードを自動生成し、さらに、前記フィードバックループの入力の一方に前回値変数の値を代入する前回値入力コードを自動生成する機能、前記接続関係を示す情報に前記フィードバックループが含まれていた場合に前記自動生成される前回値変数の定義コード、前回値保存コード及び前回値入力コード、並びに、前記接続関係を示す情報に前記フィードバックループが含まれていない場合に前記自動生成される通常対応制御処理コード、をそれぞれ受け取って合成し、前記制御ブロック図の接続関係を示す情報にフィードバックループが含まれていた場合であっても、自動的にプログラムの仕様を満たすソースコードを生成する機能、を実現させることを特徴とする。
本発明によるプログラム自動生成装置によれば、従来の手法ではすべての演算の出力変数を保持しなければ正しい動作が行われないような、フィードバックループが含まれている制御ブロック図であっても、フィードバックループを検出してその部分の演算結果のみを前回値変数として保持し、残りのフィードバックループを検出しない部分は一次変数で処理する制御処理コードを生成することが可能となり、リソースの制約が厳しい組込み分野のプログラム開発において格別の有利性を持つものである。
本発明の実施形態に係るプログラム自動生成装置のシステム処理機能を示すブロック図である。 本発明の実施形態に係るプログラム自動生成装置のハードウェア構成を示すブロック図である。 本発明の実施形態に係るプログラム自動生成装置の動作を説明するためのフローチャートである。 本発明の実施形態に係るプログラム自動生成装置で記述される制御ブロック図(フィードバックループが含まれていない場合)の例を示す図である。 本発明の実施形態に係るプログラム自動生成装置でフィードバックループが含まれていない場合に生成されるソースコードの例を示す図である。 本発明の実施形態に係るプログラム自動生成装置で記述される制御ブロック図(フィードバックループが含まれている場合)の例を示す図である。 本発明の実施形態に係るプログラム自動生成装置でフィードバックループが含まれている場合に生成されるソースコードの例を示す図である。 制御ブロック図にフィードバックループが含まれている場合の従来の解決手法の一例を示す図である。 図8に示された従来の解決手法の一例を一般的な高級プログラミング言語を使ってソースコードとして表記した図である。
以下、本発明の実施の形態について、詳細に説明する。
図1は、本発明の実施形態に係るプログラム自動生成装置のシステム機能構成を示すブロック図である。図1では制御の流れを白抜き矢印で示し、また情報の流れを破線矢印で示している。
入力装置20を操作するユーザ(利用者)は、プログラム自動生成装置1200を用いて、制御ブロック図を記述することができる。プログラム自動生成装置1200は、記述された制御ブロック図からプログラムソースコードを自動的に生成する。より具体的に説明すれば、図1において、ユーザは入力装置20からプログラム自動生成装置1200を起動して、制御ブロック図仕様記述手段1210を動作させ、制御ブロック図仕様記述手段1210を用いてプログラムの仕様を制御ブロック図で記述する。ここでいう制御ブロック図は、例えば図4に示すように、変数入力端子要素(in_x)101,変数入力端子要素(in_y)102から出発して、いくつかの演算要素(図4に示すOp1演算要素103、加算要素104)を経て変数出力端子要素(out_a)105に至るまでの処理の流れを線で接続することで表現されるものである。
制御ブロック図仕様記述手段1210は、図4に示すような構成要素である変数入力端子要素、変数出力端子要素や演算要素などの記述手段をあらかじめ持っていて、ユーザはこれらの記述手段を入力装置20のモニタ画面上で配置、接続していくことでプログラムの仕様を記述して制御ブロック図を完成させる。制御ブロック図で記述されたプログラムの仕様は、制御処理コード自動生成手段2200に送られ、そこで変数入力端子要素で表現される変数の参照を出発点として、接続関係を示す情報(以下では単に“接続情報”ということがある)に従って演算子要素の演算を順次実行していった結果を変数出力端子要素で表現される変数に代入するまでの一連の処理を、一般的な高級プログラミング言語でいうところの関数またはサブルーチンとしてまとめた形のソースコードとして出力する。出力されるソースコードは、例えば一般的な高級プログラミング言語の一つであるC言語を用いると、図5に示すようなコード形式で表される。
ここで本発明の実施形態に係るプログラム自動生成装置のハードウェア構成について説明する。図2は、本発明の実施形態に係るプログラム自動生成装置のハードウェア構成を示すブロック図である。プログラム自動生成装置1100は、CPU(Central Processing Unit)1101によって装置全体が制御されている。CPU1101には、バス1106を介してRAM(Random Access Memory)1102、ハードディスクドライブ(HDD:Hard Disc Drive)1103、グラフィック処理装置1104および入力インタフェース1105が接続されている。
RAM1102には、CPU1101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM1102には、CPU1101による処理に必要な各種データが格納される。HDD1103には、OSプログラムやアプリケーションプログラムが格納される。
グラフィック処理装置1104には、モニタ21が接続されている。グラフィック処理装置1104は、CPU1101からの命令に従って、画像をモニタ21の画面に表示させる。入力インタフェース1105には、キーボード22とマウス23とが接続されている。入力インタフェース1105は、キーボード22やマウス23から送られてくる信号を、バス1106を介してCPU1106に送信する。
以上のようなハードウェア構成によって、上述した又は以下に示すような本実施形態の処理機能を実現することができる。
次に、本発明の実施形態に係るプログラム自動生成装置のシステム処理機能についてさらに説明する。いま図6に示すような制御ブロック図をユーザがキーボード22やマウス23を使用して仕様記述したとすると、本発明のプログラム自動生成装置では、この制御ブロック図にフィードバックループ(以下では単に“FB”と略記することがある)が含まれているか否かを接続情報抽出手段2210で調べる。接続情報抽出手段2210は、上述した特許文献1の0007段落や0008段落などに記載されているように、出力側から入力側に向かってブロックを探索して、入力側から出力側方向に演算順序の設定を試みるものである。その場合、出力側から入力側に向かってブロックを探索して、入力側から出力側に一方向に演算順序を設定できるものは、フィードバックループ(FB)が含まれていないケースであり、もしフィードバックループ(FB)が含まれているケースで入力側から出力側に一方向に演算順序を設定してしまうと異なるソースコードが自動生成されることになる。
そこで、本発明の実施形態においては、接続情報抽出手段2210において、フィードバックループ(FB)が含まれているか否かを検出するようにしている。すなわち、FBを検出しなければ、上述した特許文献1の0007段落や0008段落などに記載されているような既存技術でもって、入力側から出力側に一方向に演算順序を設定できるので、仕様記述された制御ブロック図を通常対応制御処理コード生成手段2220に渡して、通常対応の制御処理コードを生成する。つまり、FBが含まれていない制御ブロック図は、処理の流れが一例として図4に示すようになり、変数入力端子要素(in_x)101,変数入力端子要素(in_y)102から出発して、Op1演算要素103、加算要素104を経て変数出力端子要素(out_a)105に至る線で表現されるものとなり、これは通常対応の制御ブロック図の形式として解釈されて通常対応制御処理コード生成手段2220が既存の技術を用いて、例えばC言語を使用して自動的に制御処理コードを図5のような形式で出力することになる。なおこの場合、後述するFB対応制御処理コード生成手段2230からの出力が無いため、制御処理コード合成生成手段2240からの出力は、通常対応制御処理コード生成手段2220の出力がそのまま図5のような形式で出力されることとなる。
次に接続情報抽出手段2210がFBを検出した場合には、仕様記述された制御ブロック図をFB対応制御処理コード生成手段2230に渡す。FB対応制御処理コード生成手段2230は、検出したFBが含まれる接続情報を処理するため、先ず前回値変数定義自動生成手段2231において、前回値の変数定義を自動的に生成する。次いで、前回値保存コード自動生成手段2232において、定義された前回値変数に対して、フィードバックループ(FB)の出力側である演算要素の演算結果を前回値変数に代入するためのコードを前回値保存コードとして自動生成する。そして前回値入力コード自動生成手段2233において、フィードバックループ(FB)の入力側である演算要素の入力の一方に前回値変数の値を代入するコードを前回値入力コードとして自動生成する。その上でこれら自動生成した前回値変数定義、前回値保存コード、前回値入力コードを制御処理コード合成手段2240に出力する。つまり、FB対応制御処理コード生成手段2230は、フィードバックループ(FB)が含まれる接続情報を処理するために前回値変数定義、前回値保存コード、前回値入力コードを自動生成してこれらを制御処理コード合成手段2240に渡す。
FB対応制御処理コード生成手段における処理を具体例に基づいて説明する。例えば、制御ブロック図にフィードバックループ(FB)が含まれる接続情報が抽出される図6に示されるケースの場合、Op2演算要素203の出力が、その前に演算される加算要素201の入力となるフィードバックループ(FB)が含まれているので、接続情報抽出手段2210においてFBが検出されて、FB対応制御処理コード生成手段2230に処理が渡される。FB対応制御処理コード生成手段2230では、検出されたフィードバックループ(FB)、すなわち演算要素203から加算要素201への接続に対して、前回値変数定義自動生成手段2231によって、前回値変数b_prevの定義が自動的に生成される(図7の(1)参照))。次に、前回値変数定義自動生成手段2231で定義された前回値変数b_prevに対して、前回値保存コード生成手段2232によって、フィードバックループ(FB)の出力側にあたる演算要素203の演算結果から前回値変数に代入するコード、すなわち前回値保存コード、が自動的に生成される(図7の(3)参照))。そして最後に、前回値入力コード生成手段2233によって、フィードバックループ(FB)の入力側にあたる加算要素201の入力の一方に前回値変数b_revの値を代入するコード、すなわち前回値入力コード、が自動的に生成される(図7の(2)参照))。
以上までの処理で生成された制御処理コードついて制御処理コード合成手段2240は、最終的に一般的な高級プログラミング言語でいうところの関数またはサブルーチンとしてまとめた形のソースコード30を生成し出力する。すなわち、出力側から入力側に向かってブロックを探索して、入力側から出力側に一方向に演算順序を設定できるようなフィードバックループ(FB)が含まれていない場合には、通常対応制御処理コード生成手段2220によって出力される制御処理コードに基づいて、図5に示すような制御処理コードを出力し、また、出力側から入力側に向かってブロックを探索して、入力側から出力側に一方向に演算順序を設定できないようなフィードバックループ(FB)が含まれている場合には、FB対応制御処理コード生成手段2230によって出力されるFB対応制御処理コードと、通常対応制御処理コード生成手段2220によって出力されるフィードバックループ(FB)が含まれていない残りの部分、言い換えれば、図4に示されるような制御ブロック図で表現されることになる残りの部分に対する制御処理コードとを合成して、例えば一般的な高級プログラミング言語の一つであるC言語を使用して、図7に示すような制御処理コードを出力する。
図3は、本発明の実施形態に係るプログラム自動生成装置の動作を説明するためのフローチャートである。図3においてステップを“S”と略記する。本発明の実施形態に係るプログラム自動生成装置の動作開始で、先ず、ユーザにより制御ブロック図を用いた仕様記述がなされる(ステップS1)。次に、プログラム自動生成装置は、仕様記述された制御ブロック図を基に接続情報の抽出を行う(ステップS2)。そして接続情報の抽出の過程で接続情報にフィードバックループ(FB)が含まれるかを検出する(ステップS3)。当該チェックで接続情報にフィードバックループ(FB)が含まれていないことを検出したならば、通常対応による制御処理コードを自動生成する(ステップS4)。
ステップS3で接続情報にフィードバックループ(FB)が含まれていることを検出したならば、フィードバックループ(FB)対応による制御処理コードを自動生成する(ステップS5〜S7)。すなわち、まずフィードバックループ(FB)が検出された接続情報に対して前回値変数定義を自動生成する(ステップS5)。次いで、定義された前回値変数に対して、フィードバックループ(FB)の出力側にあたる演算要素の演算結果から前回値保存コードを自動生成する(ステップS6)。さらに、フィードバックループ(FB)の入力側にあたる加算要素の入力の一方に前回値変数の値を代入するための前回値入力コードを自動生成する(ステップS7)。
そしてステップS8では、全接続情報について制御処理コードを抽出したかを判断する。その結果、全接続情報について制御処理コードを抽出していなければ、ステップS3に戻り、ステップS3以降ステップS7までを再度実行して残された接続情報についての制御処理コードの抽出を行うが、全接続情報について制御処理コードを抽出していればステップS9に進む。
ステップS9では、以上までのFB対応制御処理コード生成処理により生成された制御処理コードと、FBが含まれていない残りの部分に対する通常対応制御処理コードとを合成して出力する(ステップS9)。そしてプログラム自動生成装置の処理を終了する。
20 入力装置
21 モニタ
22 キーボード
23 マウス
101 ,102 ブロック図記述要素(変数入力端子要素)
103 ,203 ブロック図記述要素(演算要素)
104 ,201 ブロック図記述要素(加算要素)
105 ブロック図記述要素(変数出力端子要素)
202 ブロック図記述要素(分岐要素)
1100 プログラム自動生成装置
1101 CPU(Central Processing Unit)
1102 RAM(Random Access Memory)
1103 HDD(Hard Disc Drive)
1104 グラフィック処理装置
1105 入力インタフェース
1106 バス
1200 プログラム自動生成装置
1210 制御ブロック図仕様記述手段
2200 制御処理コード自動生成手段
2210 接続情報抽出手段
2220 通常対応制御処理コード生成手段
2230 FB対応制御処理コード生成手段
2231 前回値変数定義自動生成手段
2232 前回値保存コード自動生成手段
2233 前回値入力コード自動生成手段
2240 制御処理コード合成手段

Claims (3)

  1. 変数入出力端子要素と演算子要素を線によって接続することで制御処理の流れを表現する制御ブロック図の形式でプログラムの仕様を記述する制御ブロック図仕様記述手段と、前記制御ブロック図の接続関係を示す情報をもとに制御ブロック図で表現されたプログラムの仕様を満たすコンパイル可能なソースコードを自動生成する制御処理コード自動生成手段を有するプログラム自動生成装置において、
    前記制御処理コード自動生成手段は、
    前記記述された制御ブロック図の接続関係を示す情報を出力側から入力側に探索して、該接続関係を示す情報に出力側の演算結果出力が入力側の演算の入力に直接接続されるフィードバックループが含まれているか否かを検出する接続情報抽出手段と、
    該接続情報抽出手段が前記接続関係を示す情報に前記フィードバックループが含まれていないことを検出した場合には、入力側から出力側に一方向に演算順序を設定して自動的に制御処理コードを生成する通常対応制御処理コード生成手段と、
    前記接続情報抽出手段が前記接続関係を示す情報に前記フィードバックループが含まれていることを検出した場合には、該検出した接続関係を示す情報に対して対応する前回値変数の定義コードを自動生成する前回値変数定義自動生成手段、該定義された前回値変数に対してフィードバックループの出力側の演算結果を前回値変数に代入するための保存コードを自動生成する前回値保存コード自動生成手段、および、前記フィードバックループの入力の一方に前回値変数の値を代入する前回値入力コードを自動生成する前回値入力コード自動生成手段を有するフィードバック対応制御処理コード生成手段と、
    前記フィードバック対応制御処理コード生成手段によって前記自動生成された前回値変数の定義コード、前回値保存コード及び前回値入力コード、並びに、前記通常対応制御処理コード生成手段によって前記接続関係を示す情報に前記フィードバックループが含まれていない場合に前記自動生成される通常対応制御処理コード、をそれぞれ受け取って合成し、前記制御ブロック図の接続関係を示す情報にフィードバックループが含まれていた場合であっても、自動的にプログラムの仕様を満たすソースコードを生成する制御処理コード合成手段と、
    を備える、ことを特徴とするプログラム自動生成装置。
  2. 変数入出力端子要素と演算子要素を線によって接続することで制御処理の流れを表現する制御ブロック図の形式でプログラムの仕様を記述し、該制御ブロック図の接続関係を示す情報をもとに制御ブロック図で表現されたプログラムの仕様を満たすコンパイル可能なソースコードを自動生成するプログラム自動生成方法において、
    前記記述された制御ブロック図の接続関係を示す情報を出力側から入力側に探索して、該接続関係を示す情報に出力側の演算結果出力が入力側の演算の入力に直接接続されるフィードバックループが含まれているか否かを検出し、
    前記接続関係を示す情報に前記フィードバックループが含まれていないことを検出した場合には、入力側から出力側に一方向に演算順序を設定して自動的に制御処理コードを生成し、
    前記接続関係を示す情報に前記フィードバックループが含まれていることを検出した場合には、該検出した接続関係を示す情報に対して対応する前回値変数の定義コードを自動生成し、次いで該定義された前回値変数に対してフィードバックループの出力側の演算結果を前回値変数に代入するための保存コードを自動生成し、さらに、前記フィードバックループの入力の一方に前回値変数の値を代入する前回値入力コードを自動生成し、
    前記接続関係を示す情報に前記フィードバックループが含まれていた場合に前記自動生成される前回値変数の定義コード、前回値保存コード及び前回値入力コード、並びに、前記接続関係を示す情報に前記フィードバックループが含まれていない場合に前記自動生成される通常対応制御処理コード、をそれぞれ受け取って合成し、前記制御ブロック図の接続関係を示す情報にフィードバックループが含まれていた場合であっても、自動的にプログラムの仕様を満たすソースコードを生成する、
    ことを特徴とするプログラム自動生成方法。
  3. 変数入出力端子要素と演算子要素を線によって接続することで制御処理の流れを表現する制御ブロック図の形式でプログラムの仕様を記述し、該制御ブロック図の接続関係を示す情報をもとに制御ブロック図で表現されたプログラムの仕様を満たすコンパイル可能なソースコードを自動生成するプログラム自動生成プログラムにおいて、
    コンピュータに、
    前記記述された制御ブロック図の接続関係を示す情報を出力側から入力側に探索して、該接続関係を示す情報に出力側の演算結果出力が入力側の演算の入力に直接接続されるフィードバックループが含まれているか否かを検出する機能、
    前記接続関係を示す情報に前記フィードバックループが含まれていないことを検出した場合には、入力側から出力側に一方向に演算順序を設定して自動的に制御処理コードを生成する機能、
    前記接続関係を示す情報に前記フィードバックループが含まれていることを検出した場合には、該検出した接続関係を示す情報に対して対応する前回値変数の定義コードを自動生成し、次いで該定義された前回値変数に対してフィードバックループの出力側の演算結果を前回値変数に代入するための保存コードを自動生成し、さらに、前記フィードバックループの入力の一方に前回値変数の値を代入する前回値入力コードを自動生成する機能、
    前記接続関係を示す情報に前記フィードバックループが含まれていた場合に前記自動生成される前回値変数の定義コード、前回値保存コード及び前回値入力コード、並びに、前記接続関係を示す情報に前記フィードバックループが含まれていない場合に前記自動生成される通常対応制御処理コード、をそれぞれ受け取って合成し、前記制御ブロック図の接続関係を示す情報にフィードバックループが含まれていた場合であっても、自動的にプログラムの仕様を満たすソースコードを生成する機能、
    を実現させるためのプログラム。
JP2010158495A 2010-07-13 2010-07-13 プログラム自動生成装置、自動生成方法、および、プログラム Pending JP2012022425A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010158495A JP2012022425A (ja) 2010-07-13 2010-07-13 プログラム自動生成装置、自動生成方法、および、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010158495A JP2012022425A (ja) 2010-07-13 2010-07-13 プログラム自動生成装置、自動生成方法、および、プログラム

Publications (1)

Publication Number Publication Date
JP2012022425A true JP2012022425A (ja) 2012-02-02

Family

ID=45776692

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010158495A Pending JP2012022425A (ja) 2010-07-13 2010-07-13 プログラム自動生成装置、自動生成方法、および、プログラム

Country Status (1)

Country Link
JP (1) JP2012022425A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933566A (zh) * 2017-01-24 2017-07-07 北京广利核系统工程有限公司 图形组态语言转换方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916223A (ja) * 1995-06-30 1997-01-17 Meidensha Corp シーケンスプログラムソートシステム
JP2009193181A (ja) * 2008-02-13 2009-08-27 Meidensha Corp ソフトウェアの開発支援システム、支援方法およびこの方法のプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916223A (ja) * 1995-06-30 1997-01-17 Meidensha Corp シーケンスプログラムソートシステム
JP2009193181A (ja) * 2008-02-13 2009-08-27 Meidensha Corp ソフトウェアの開発支援システム、支援方法およびこの方法のプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933566A (zh) * 2017-01-24 2017-07-07 北京广利核系统工程有限公司 图形组态语言转换方法及装置

Similar Documents

Publication Publication Date Title
US5961610A (en) Systems, methods and apparatus for generating and controlling display of medical images
US10176270B2 (en) Performance of template based javascript widgets
EP3005301B1 (en) Animation editing
US5950002A (en) Learn mode script generation in a medical imaging system
CN111639287A (zh) 一种页面处理方法、装置、终端设备及可读存储介质
US20180349114A1 (en) Integrating machine learning models into an interpreted software development environment
US9372683B2 (en) Automatic generation of class identifiers from source code annotations
CN110096271A (zh) 组件可视化方法、基于组件可视化的页面处理方法及装置
JPH11513512A (ja) ディジタル信号プロセッサの製造方法
CN108351764A (zh) 程序代码编辑器中数据的图形表示
CN108595171B (zh) 对象的模型生成方法、装置、设备及存储介质
US8201143B2 (en) Dynamic mating of a modified user interface with pre-modified user interface code library
KR20150061203A (ko) 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
CN111078217A (zh) 脑图生成方法、装置和计算机可读存储介质
US7269820B2 (en) Program code generator and program
CN115292641A (zh) 页面生成方法、装置、服务器及存储介质
KR20160098794A (ko) 디바이스 프로그램 구조 모델링 기반 골격코드 생성 장치 및 방법
JP5657183B2 (ja) 第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするための方法および装置、第1のコンピュータ・プログラムと第2のコンピュータ・プログラムとのインターフェースをとるためのコンピュータ・プログラム・コードを生成するための方法および装置、コンピュータ・プログラム、ならびに第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするためのソフトウェア・インターフェースを提供するための方法(コンピュータ・プログラム・インターフェース)
JP2012022425A (ja) プログラム自動生成装置、自動生成方法、および、プログラム
JP2009075965A (ja) ソフトウェア開発方法及びソフトウェア開発装置
JP2011165051A (ja) 開発支援装置及び方法並びにプログラム
JP2020144509A (ja) 自動コード生成方法、及び自動コード生成プログラム
JP7260150B2 (ja) Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム
CN109656556B (zh) 一种自适应页面的生成方法及装置
JP7851884B2 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130319

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130723