JP2014059692A - プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置 - Google Patents

プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置 Download PDF

Info

Publication number
JP2014059692A
JP2014059692A JP2012203981A JP2012203981A JP2014059692A JP 2014059692 A JP2014059692 A JP 2014059692A JP 2012203981 A JP2012203981 A JP 2012203981A JP 2012203981 A JP2012203981 A JP 2012203981A JP 2014059692 A JP2014059692 A JP 2014059692A
Authority
JP
Japan
Prior art keywords
program
data
function
general
logical structure
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.)
Granted
Application number
JP2012203981A
Other languages
English (en)
Other versions
JP5934620B2 (ja
Inventor
Toshiaki Ueno
敏昭 上野
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2012203981A priority Critical patent/JP5934620B2/ja
Publication of JP2014059692A publication Critical patent/JP2014059692A/ja
Application granted granted Critical
Publication of JP5934620B2 publication Critical patent/JP5934620B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】変更後の検証が不要で可読性及び保守性に優れたコンピュータプログラムを容易に作成する。
【解決手段】 コンピュータプログラムを自動的に作成するためのプログラム自動作成プログラムであって、コンピュータを、構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する汎用制御文保存手段101、順次、分岐又は反復のうちのいずれかの論理構造と、設定した論理構造にしたがって実行させる関数との対応付けを設定するデータ化設定手段102、及び、設定した対応付けをデータとして定義するとともに、このデータを参照することによって、その論理構造に係る汎用制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成するデータ化プログラム作成手段103、として機能させる構成とする。
【選択図】図1

Description

本発明は、コンピュータプログラムを自動的に作成するためのプログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置に関し、より詳しくは、論理構造に係る制御文の一部をデータ化したコンピュータプログラムを自動的に作成することが可能なプログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置に関する。
従来からコンピュータプログラム(以下、プログラムという)の大規模化や複雑化に鑑み、C、C++、java、Pascal等のプログラム言語を用いた構造化定理にもとづく構造化プログラミングが推奨されている(例えば、特許文献1参照)。
構造化定理によれば、順次、分岐、反復の3つの基本的な論理構造だけでプログラムを構成するため、可読性及び保守性に優れたプログラムを実現することができる。
特許第3602416号公報
しかしながら、構造化プログラミングはプログラムを作成するうえでの規範や作法であり、強制するものではないため、規範等が維持されない場合には上述の効果は得られない。
また、規範等が維持される場合であっても、各論理構造の制御文の構成はプログラマーに委ねられているため、プログラマーによっては制御文の構成が複雑になり、プログラムの作成が困難化し、可読性を低下させる問題が生じていた。
さらに、制御文はプログラムであり、内容を変更する場合には、その多少に拘わらず、正当性を検証する手間が生ずる。
図10〜12は、従来の順次、分岐、反復の制御文の一例を示す図である。
例えば、図10の制御文に別の関数(例えば、関数z)を順次処理に追加する場合、図11の制御文の分岐条件(ret==5:戻り値が5に等しいかどうか)を変更する(例えば、ret>10に変更する)場合、図12の制御文の反復条件(x=1:初期値が1、x+=2:刻み値が2)を変更する(例えば、x=0、x+=3に変更する)場合等、軽微な変更であってもプログラム自体を変更しているため、変更後のプログラムが全体として正しいかどうかを確認する煩わしさがあった。
本発明は、上記の事情に鑑みてなされたものであり、構造化定理にもとづく論理構造である順次、分岐、反復に関する制御文の一部をデータ化することで、変更後の検証が不要で、かつ、可読性及び保守性に優れたコンピュータプログラムを自動的に作成することができるプログラム自動作成プログラム、プログラム自動作成方法、及び、プログラム自動作成装置の提供を目的とする。
上記目的を達成するため本発明のプログラム自動作成プログラムは、コンピュータプログラムを自動的に作成するためのプログラム自動作成プログラムであって、コンピュータを、構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する汎用制御文保存手段、順次、分岐又は反復のうちのいずれかの論理構造と、この論理構造にしたがって実行させる関数との対応付けを設定するデータ化設定手段、及び、設定した対応付けをデータとして定義するとともに、このデータを参照することによって、その論理構造に係る汎用制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成するデータ化プログラム作成手段、として機能させるようにしている。
また、本発明のプログラム自動作成方法は、コンピュータプログラムを自動的に作成するためのプログラム自動作成方法であって、構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する工程と、順次、分岐又は反復のうちのいずれかの論理構造と、この論理構造にしたがって実行させる関数との対応付けを設定する工程と、設定した対応付けをデータとして定義するとともに、このデータを参照することによって、その論理構造に係る汎用制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成する工程と、を有するようにしている。
また、本発明のプログラム自動作成装置は、コンピュータプログラムを自動的に作成するプログラム自動作成装置であって、構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する汎用制御文保存手段と、順次、分岐又は反復のうちのいずれかの論理構造と、この論理構造にしたがって実行させる関数との対応付けを設定するデータ化設定手段と、設定した対応付けをデータとして定義するとともに、このデータを参照することによって、その論理構造に係る前記制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成するデータ化プログラム作成手段と、を備えるようにしている。
本発明によれば、変更後の検証が不要で可読性及び保守性に優れたコンピュータプログラムを自動的に作成することができる。
本発明の実施形態に係るプログラム自動作成装置の構成及び制御部の機能ブロックを示す図である。 順次処理の汎用制御文を引用して作成されたプログラムを示す図である。 分岐処理の汎用制御文を引用して作成されたプログラムを示す図である。 反復処理の汎用制御文を引用して作成されたプログラムを示す図である。 プログラム作成時のメニュー画面の一例を示す図である。 順次処理のデータ化設定画面の一例を示す図である。 分岐処理のデータ化設定画面の一例を示す図である。 反復処理のデータ化設定画面の一例を示す図である。 本発明のプログラム自動作成方法を示すフローチャートである。 従来の順次処理の制御文を示す図である。 従来の分岐処理の制御文を示す図である。 従来の反復処理の制御文を示す図である。
本発明の一実施形態に係るプログラム自動作成プログラム及びプログラム自動作成装置について説明する。
図1は、本発明の実施形態に係るプログラム自動作成装置の構成及び制御部の機能ブロックを示す図である。
図1に示すように、本実施形態のプログラム自動作成装置1は、キーボード等の入力デバイスと接続され文字、数字、記号などのデータ等を入力する入力部12、アプリケーションプログラムや種々のファイルデータを保存する記憶部13、通信回線と接続され外部装置との間でファイルデータ等の送受信を行う通信部14、液晶モニター等のディスプレイ装置と接続され、操作画面や演算結果等を出力する画像出力部15、及び、CPU,ROM,RAM等を備えコンピュータとして動作する制御部11を備えた情報処理装置である。
本実施形態のプログラム自動作成装置1は、プログラム自動作成プログラムの命令によりコンピュータで実行される処理,手段,機能によって実現され、プログラム自動作成プログラムが、CPUに読み込まれることにより、構成各部に指令が送られ、制御部11として以下の動作を行う。
制御部11は、プログラムの作成時において、キーボード等から入力された文字、数字、記号にもとづきソースプログラムを作成・保存する制御動作や、C言語などのプログラム言語のルールにもとづいてソースプログラムを翻訳して実行可能なプログラムを作成・保存する制御動作等、プログラムを作成、検証するための一般的な制御動作の他、以下の特徴的な動作を行う。
すなわち、制御部11は、構造化定理に係る順次、分岐、反復ごとに汎用化した制御文を予め保存する動作や、実行すべき関数や必要な条件などをデータ化しつつ汎用制御文を引用してプログラムを作成する動作等を行う。
このため、本実施形態の制御部11は、図1に示すように、汎用制御文保存手段101と、データ化設定手段102と、データ化プログラム作成手段103と、を機能ブロックとして備える。
このように、本実施形態のプログラム自動作成装置1における各構成手段は、プログラム自動作成プログラムとコンピュータとが協働した具体的手段によって実現される。
これによって、前記各動作は、ソフトウェアであるプログラム自動作成プログラムとハードウェア資源であるコンピュータの各構成手段とが協働することにより実現される。
汎用制御文保存手段101は、構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する。
ここで、汎用制御文は、論理構造の従来の制御文を一般化・汎用化した命令文である。実行させる関数や諸条件に応じ、その都度プログラマーが個別に作成していた制御文を一般化することによって、データ化設定にもとづく様々なプログラムの作成において汎用的に引用できるようにしたものである。
具体的には、プログラマーが、予めキーボード等を介し作成したテキストデータ等で構成される汎用制御文を記憶部13に保存し、または、このようなデータを外部の機器又は記憶装置からダウンロード又は入力して記憶部13に保存する。
なお、「関数」とは、同じ目的が決まった小さなプログラムのまとまりをいい、「main()関数」をメインルーチンとする場合のサブルーチンに相当する。
以下、順次、分岐、反復の汎用制御文についてそれぞれ説明する。
図2は、順次処理の汎用制御文を引用して作成したプログラムを示す図であり、この中のA3部分(主にA31部分)が、順次処理の汎用制御文を示す。
このような命令文によれば、for文における「i++」のインクリメント識別子によってiが1ずつ加算されながら、A21部分に示されるテーブルの[i][1]に指定されたfp(関数ポインタ)に関する関数を実行させることができる。
このため、A31部分の命令文をもって、A21部分のテーブルにおいて任意の関数の実行を命令する順次処理の一般的なプログラム(汎用制御文)とすることができる。
図3は、分岐処理の汎用制御文を引用して作成したプログラムを示す図であり、この中のB3部分(主にB31部分)が、分岐処理の汎用制御文を示す。なお、ここでは、ある関数によって求めた値が分岐条件(ret=*)を満たすかどうかによって、2つの関数の実行を切り分ける分岐のケースを例示している。
このような命令文によれば、まず、「BUNKI1」において、B21部分に示されるテーブルの[i][2]に指定されたfpに関する関数dが実行され、その戻り値(ret)が求められる。「BUNKI1」の処理後、iは1加算される。
そして、「BUNKI2」において、「BUNKI1」で求めた戻り値がB21部分に示されるテーブルの[i][1]に指定された判定値と等しければ、テーブルの[i][2]に指定されたfpに関する関数eを実行させ、「BUNKI1」で求めた戻り値が同テーブルの[i][1]に指定された判定値と等しくなければ、テーブルの[i][3]に指定されたfpに関する関数fを実行させることができる。
なお、「判定値と等しいか否か(==)」に限らず、「以上(>=)」,「以下(<=)」,「より大きい(>)」,「より小さい(<)」など、任意の判定条件を適用することができる。
このため、B31部分の命令文をもって、B21部分のテーブルにおいて任意の分岐条件にもとづき任意の関数の実行を命令する分岐処理の一般的なプログラム(汎用制御文)とすることができる。
図4は、反復処理の汎用制御文を引用して作成したプログラムを示す図であり、この中のC3部分(主にC31部分)が、反復処理の汎用制御文を示す。
このような命令文によれば、初期値に相当する初期化式(x=table[i][1])によって、変数xの初期値がテーブルの[i][1]に指定された値としている。そして、判定値に相当する判定条件式(x<table[i][1])及び刻み値に相当する更新式(x=x+table[i][3])によって、xがC21部分に示されるテーブルの[i][2]に指定された値より小さい場合において、xがテーブルの[i][3]に指定された値が加算されるたびに、テーブルの[i][4]に指定されたfpに関する関数gを実行させるようにしている。
なお、初期化式、判定条件式、更新式などの反復条件は、任意の式を適用することができる。
このため、C31部分の命令文をもって、C21部分のテーブルにおいて任意の反復条件(初期化式、判定条件式、更新式)にもとづき任意の関数の実行を命令する反復処理の一般的なプログラム(汎用制御文)とすることができる。
データ化設定手段102は、順次、分岐又は反復のうちのいずれかの論理構造と、この論理構造にしたがって実行させる関数との対応付けを設定する。
図5は、プログラム作成時のメニュー画面の一例を示す図である。
また、図6〜図8は、論理構造を設定する際に表示されるデータ化設定画面を示す図である。
画像出力部15は、これらの画面を図示しないディスプレイ装置の表示画面Pに表示する。
例えば、図5に示すメニュー画面において、順次処理キーK1が選択されると図6の画面を表示し、分岐処理キーK2が選択されると図7の画面を表示し、反復処理キーK3が選択されると図8の画面を表示する。
以下、順次、分岐、反復のデータ化設定について図6〜図8を参照しながら説明する。
順次処理のデータ化設定においては、順次を示す識別情報(識別子)と、順次実行させる関数の識別情報(関数のアドレス)との対応付けを設定する。
図6は、順次処理のデータ化設定画面を示す図である。
図6に示すように、順次処理のデータ化設定画面としては、識別子の入力欄と関数ポインタの入力欄とが対応したテーブルTaが表示されるため、ユーザーはこれらの入力欄に必要事項を入力する。
例えば、識別子の入力欄に「順次」を示す識別子として任意の文字列(「JUNJI」)を入力し、関数ポインタの入力欄に関数のアドレス(関数ポインタ)を入力し、これらの入力を対象の関数の数分行う。
分岐処理のデータ化設定においては、分岐を示す識別情報(識別子)と、分岐条件とその分岐条件に応じて実行させる一又は二以上の関数の識別情報(関数ポインタ)との対応付けを設定する。
図7は、分岐処理のデータ化設定画面を示す図である。
図7に示すように、分岐処理のデータ化設定画面としては、識別子の入力欄、判定値の入力欄及びTRUE・FALSEの入力欄(関数ポインタの入力欄)が対応したテーブルTbが表示されるため、ユーザーはこれらの入力欄に必要事項を分岐条件として入力する。
例えば、図3に例示したタイプの分岐処理に対応する場合には、テーブルTbの1段目において、識別子の入力欄に「分岐」を示す識別子として任意の文字列(「BUNKI1」)を入力し、TRUEの入力欄に対象の戻り値を出力する関数の関数ポインタを入力し、判定値及びFALSEの入力欄にdummyの情報を入力する。そして、テーブルTbの2段目においては、識別子の入力欄に「分岐」を示す識別子として1段目とは異なる文字列(「BUNKI2」)を入力し、判定値に5を入力し、TRUEの入力欄に関数eの関数ポインタを入力し、FALSEの入力欄に関数fの関数ポインタを入力する。
反復処理のデータ化設定においては、反復を示す識別子(識別情報)と、反復条件とその反復条件に応じて繰り返し実行させる関数の識別情報(関数ポインタ)との対応付けを設定する。
図8は、反復処理のデータ化設定画面を示す図である。
図8に示すように、反復処理のデータ化設定画面としては、識別子の入力欄、初期値の入力欄、判定値の入力欄、刻み値の入力欄及び関数ポインタの入力欄が対応したテーブルTcが表示されるため、ユーザーはこれらの入力欄に必要事項を反復条件として入力する。
例えば、識別子の入力欄に「反復」を示す識別子として任意の文字列(「HANPUKU」)を入力し、初期値の入力欄に「1」を入力し、判定値の入力欄に「10」を入力し、刻み値の入力欄に「2」を入力し、関数ポインタの入力欄に関数gの関数ポインタを入力する。
データ化プログラム作成手段103は、設定された論理構造と関数の識別情報との対応付けをデータとして定義するとともに、このデータを参照することによって、その論理構造に係る汎用制御文にしたがって対応した関数が実行されるプログラムを作成する。
以下、順次、分岐、反復に関するプログラムの作成についてそれぞれ説明する。
順次処理に関するプログラムの作成においては、データ化設定手段102において設定された順次を示す識別子と関数ポインタとの対応付けをデータとして定義するとともに、このデータを参照することによって、順次に係る汎用制御文にしたがって対応する関数を順次実行するプログラムを作成する。
図2は、順次処理の汎用制御文を引用するとともに、図6に示すデータ化設定にもとづき作成されたプログラムを示す図である。以下、A1、A2及びA3のブロックごとにプログラムの内容を説明する。
A1では、データ化設定に応じてテーブルのサイズを指定する命令文が作成される。図6に示すように、テーブルTaにおいて3段にわたり入力が行われている場合には、「#define SIZE 3」と記述される。
また、テーブルの型宣言を示す命令文が作成される。具体的には、テーブル「fp_tbl」は、「shikibetsushi」と「*fp」を構成要素とする構造体「struct」でありデータのまとまりであることが定義付けされる。
A2では、データ化設定値に応じ、構造体(A21部分のテーブルデータ)の実体を宣言する命令文が作成される。
具体的には、「i」が整数変数であることが宣言される。また、図6に示すデータ化設定に応じ、「func_a」、「func_b」、「func_c」がそれぞれ整数変数であること、及び、「fp_tbl」の構成データが、{JUNJI,&func_a},{JUNJI,&func_b},{JUNJI,&func_c}であることが宣言される。
A3では、宣言した構造体を参照することによって、その構造体に示された関数を順次処理を実行する命令文が作成される。
具体的には、「for〜switch〜case JUNJI:〜case BUNKI:〜case HANPUKU〜」における「case JUNJI:〜」(A31部分)において、順次処理に関する制御文を汎用化した命令文が作成される。
この場合、データ化プログラム作成手段103は、汎用制御文保存手段101により予め記憶部13に保存された汎用制御文の中から順次に関する汎用制御文を取り出して引用する。
このようにすると、順次処理に関するプログラムを自動的に作成することができるだけでなく、作成したプログラムを容易に変更することができる。
例えば、関数zを関数cの次に実行させる関数として加える場合には、図6に示すデータ化設定画面において、識別子「JUNJI」と関数zの関数ポインタとの対応付けを加えるだけでよく、関数cを順次処理から外す場合には、関数cに関する設定データを削除するだけでよい。
また、関数a〜cの順序を入れ替えたり、関数a〜cの一部又は全部を他の関数と置き換えたりする場合も、設定データを変更するだけでできる。
また、データ変更のみであり、プログラムの変更は伴わないため、作成当初のプログラムの検証が完了していれば、変更後の検証を省くことができる。
分岐処理に関するプログラムの作成においては、データ化設定手段102において設定された分岐を示す識別子と関数ポインタと分岐条件との対応付けをデータとして定義するとともに、このデータを参照することによって、分岐条件及び分岐に係る汎用制御文にしたがって対応する関数を実行するプログラムを作成する。
図3は、分岐処理の汎用制御文を引用するとともに、図7のデータ化設定にもとづき作成されたプログラムを示す図である。以下、B1、B2及びB3のブロックごとにプログラムの内容を説明する。
B1では、データ化設定に応じてテーブルのサイズを指定する命令文が作成される。図7に示すように、テーブルTbにおいて2段にわたり入力が行われている場合には、「#define SIZE 2」と記述される。
また、テーブルの型宣言を示す命令文が作成される。具体的には、テーブル「fp_tbl」は、「shikibetsushi」、「hanteichi」、「*fp」を構成要素とする構造体「struct」でありデータのまとまりであることが定義付けされる。
B2では、データ化設定値に応じ、構造体(B21部分のテーブルデータ)の実体を宣言する命令文が作成される。
具体的には、「i」が整数変数であることが宣言される。また、図7に示すデータ化設定に応じ、「ret」、「func_d」、「func_e」、「func_f」がそれぞれ整数変数であること、及び、「fp_tbl」の構成データが、{BUNKI1,DUMMY_VALUE,&func_d,DUMMY_FUNC},{BUNKI2,5,&func_e,&func_f}であることが宣言される。
B3では、宣言した構造体を参照することによって、その構造体に示された分岐条件にしたがって分岐処理を実行する命令文が作成される。
具体的には、「for〜switch〜case JUNJI:〜case BUNKI:〜case HANPUKU〜」における「case BUNKI1」,「case BUNKI2」(B31部分)において、分岐処理に関する制御文を汎用化した命令文が作成される。
この場合、データ化プログラム作成手段103は、汎用制御文保存手段101により予め記憶部13に保存された汎用制御文の中から分岐に関する汎用制御文を取り出して引用する。
このようにすると、分岐処理に関するプログラムを自動的に作成することができるだけでなく、作成したプログラムを容易に変更することができる。
例えば、分岐条件を変更する場合には、図7に示すデータ化設定画面において、判定値を変更するだけで足りる。また、分岐処理を追加する場合には、重複しない識別子(「BUNKI3」「BUNKI4」等)、判定値及び関数の対応付けを追加するだけでよい。
また、関数d〜fを相互に入れ替えたり、関数d〜fの一部又は全部を他の関数と置き換えたりする場合も、設定データを変更するだけでできる。
また、順次処理の場合と同様、変更後の検証を省くことができる。
反復処理に関するプログラムの作成においては、データ化設定手段102において設定された反復を示す識別子と関数ポインタと反復の条件との対応付けをデータとして定義するとともに、このデータを参照することによって、反復条件及び反復に係る汎用制御文にしたがって対応する関数を繰り返し実行するプログラムを作成する。
図4は、反復処理の汎用制御文を引用するとともに、図8のデータ化設定にもとづき作成されたプログラムを示す図である。以下、C1、C2及びC3のブロックごとにプログラムの内容を説明する。
C1では、データ化設定に応じてテーブルのサイズを指定する命令文が作成される。図8に示すように、テーブルTcの1段のみに入力が行われている場合には、「#define SIZE 1」と記述される。
また、テーブルの型宣言を示す命令文が作成される。具体的には、テーブル「fp_tbl」は、「shikibetsushi」、「shokichi」、「hanteichi」、「kizamichi」、「*fp」を構成要素とする構造体「struct」でありデータのまとまりであることが定義付けされる。
C2では、データ化設定値に応じ、構造体(C21部分のテーブルデータ)の実体を宣言する命令文が作成される。
具体的には、「i」が整数変数であることが宣言される。また、図8に示すデータ化設定に応じ、「func_g」が整数変数であること、及び、「fp_tbl」の構成データが、{HANPUKU,1,10,2,&func_g}であることが宣言される。
C3では、宣言した構造体を参照することによって、その構造体に示された反復条件にしたがって反復処理を実行する命令文が作成される。
具体的には、「for〜switch〜case JUNJI:〜case BUNKI:〜case HANPUKU〜」における「case HANPUKU」(C31部分)において、反復処理に関する制御文を汎用化した命令文が作成される。
この場合、データ化プログラム作成手段103は、汎用制御文保存手段101により予め記憶部13に保存された汎用制御文の中から反復に関する汎用制御文を取り出して引用する。
このようにすると、反復処理に関するプログラムを自動的に作成することができるだけでなく、作成したプログラムを容易に変更することができる。
例えば、反復条件を変更する場合には、図8に示すデータ化設定画面において、判定値、初期値、刻み値を変更するだけでよい。また、関数gを他の関数に変更したい場合には、その関数ポインタに置き換えればよい。また、反復処理を追加する場合には、識別子「HANPUKU」と所望の関数の関数ポインタとの対応付けを加えるだけでよい。
また、順次処理、分岐処理の場合と同様、変更後の検証を省くことができる。
ところで、図2のA3部分、図3のB3部分、及び、図4のC3部分に示すように、「for〜switch〜case JUNJI:〜case BUNKI:〜case HANPUKU〜」の命令文は、データ化プログラムの作成に際し、順次、分岐、反復の別に拘わらず共通に用いるようにしている。
このようにすると、構造化定理にもとづく順次、分岐、反復に関する汎用制御文を任意に組み合わせたプログラムを作成することができる。
例えば、図6に示すデータ化設定に続けて、図7に示すデータ化設定をした場合には、図2のA2部分に図3のB2部分が追加され、A3部分の「case BUNKI:〜break」がB31部分に置き換わったプログラムが作成される。
このため、所望のプログラムを構造化プログラミングの作法にしたがって適切に作成することができる。
このように、本実施形態のプログラム自動作成プログラム及びプログラム自動作成装置1によれば、汎用制御文保存手段101が、順次、分岐、反復ごとに汎用化した制御文を予め保存するようにしている。
また、データ化設定手段102が、順次、分岐又は反復のうちのいずれかの論理構造を設定するとともに、その論理構造にしたがって実行させる関数を設定し、データ化プログラム作成手段103が、設定された論理構造と関数との対応付けをデータとして定義するとともに、このデータを参照することによって、その論理構造に係る汎用制御文にしたがって対応した関数が実行されるプログラムを作成するようにしている。
このため、順次、分岐、反復の3つの論理構造のみによって構成すべきとする構造化定理にもとづくプログラムを、誰もが容易に作成することができる。
また、従来のように、プログラム構成が複雑化することがなく、プログラムの作成に時間を要したりプログラムの可読性を悪化させる問題を解消することができる。
また、実行すべき関数や関数を実行するうえでの必要な条件等、従来プログラムであった制御文の一部をデータ化してプログラムを構成するようにしている。
このため、簡単なデータ設定だけで所望のプログラムを作成することができる。
また、プログラムの作成後においては、データ設定を変更するだけで所望のプログラムに変更することができる。しかも、この場合、プログラムの構文自体は変更しないため、従来変更後に生じていたプログラムの正当性を検証する手間を無くすことができる。
(プログラム自動作成方法)
次に、本発明のプログラム自動作成方法について説明する。
図9は、プログラム自動作成方法を説明するためのフローチャートである。
まず、汎用制御文保存手段101が、汎用化制御文を保存する(S1)。
具体的には、図5のメニュー画面において、「読込」キーK4を選択して順次、分岐、反復の汎用制御文を記憶部13に保存する。
次に、データ化設定手段102が、データ化設定を行う(S2)。
具体的には、順次処理のデータ化設定を行う場合、メニュー画面の順次処理キーK1を選択することにより表示画面Pに表示されるテーブルTaにおいて、必要な設定データ(識別子、関数ポインタ)を入力する(図6参照)。
分岐処理のデータ化設定を行う場合、メニュー画面の分岐処理キーK2を選択することによって表示画面Pに表示されるテーブルTbにおいて、必要な設定データ(識別子、判定値、関数ポインタ)を入力する(図7参照)。
反復処理のデータ化設定を行う場合、メニュー画面の反復処理キーK3を選択することによって表示画面Pに表示されるテーブルTcにおいて、必要な設定データ(識別子、初期値、判定値、刻み値、関数ポインタ)を入力する(図8参照)。
OKキーK8が選択されると、入力した設定データが設定登録されてメニュー画面に遷移し、キャンセルキーK9が選択されると、そのままメニュー画面に遷移する。
続いて、データ化プログラム作成手段103が、データ化プログラムの作成を行う(S3)。
具体的には、メニュー画面のデータ化処理実行キーK5を選択すると、ステップS2において行われたデータ化設定の内容がデータ化され、かつ、ステップS1にて保存された汎用化制御文の中からステップS2において設定した識別子に応じた汎用化制御文が引用されたプログラムが作成される。
保存キーK6を選択するとプログラムが保存され、終了キーK7を選択するとプログラム作成に関する処理を終了する。
このように、プログラム自動作成方法によっても本発明の目的を達成することができる。
このため、プログラム自動作成装置1のような構成に限らず、様々な態様にて本発明を実施することができる。
以上、本発明について、実施形態を示して説明したが、本発明は、上述した実施形態にのみ限定されるものではなく、種々の変更が可能であることは言うまでもない。
例えば、データ変更キーを選択可能に表示させることによって、データ化設定に係る現在の設定データを変更できるようにしたり、検証実行キーを選択可能に表示させることによって、読み込んだ汎用化制御文や作成したプログラムの正当性を検証できるようにして、拡張性を高めることもできる。
また、本実施形態においては、C言語の場合を例示して説明したが、他のプログラム言語(例えば、C++、java、Pascal等)においても本発明を適用することができる。
例えば、javaやC♯を用いる場合、分岐の汎用制御文におけるif文を三項演算子やcase文に置き換え、反復の汎用制御文におけるfor文をwhile文に置き換えることができる。
本発明は、パーソナルコンピュータ等、プログラムの作成が可能な情報処理装置に適用することができる。
1 プログラム自動作成装置
11 制御手段
101 汎用制御文保存部
102 データ化設定手段
103 データ化プログラム作成手段

Claims (6)

  1. コンピュータプログラムを自動的に作成するためのプログラム自動作成プログラムであって、
    コンピュータを、
    構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する汎用制御文保存手段、
    順次、分岐又は反復のうちのいずれかの論理構造と、当該論理構造にしたがって実行させる関数との対応付けを設定するデータ化設定手段、及び
    前記対応付けをデータとして定義するとともに、当該データを参照することによって、その論理構造に係る前記汎用制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成するデータ化プログラム作成手段、として機能させる
    ことを特徴とするプログラム自動作成プログラム。
  2. 前記データ化設定手段が、
    順次を示す識別情報と順次実行させる関数の識別情報との対応付けを設定した場合に、
    前記データ化プログラム作成手段に、
    前記対応付けをデータとして定義するとともに、当該データを参照することによって、順次に係る前記汎用制御文にしたがって対応する関数を順次実行するコンピュータプログラムを作成させる
    ことを特徴とする請求項1記載のプログラム自動作成プログラム。
  3. 前記データ化設定手段が、
    分岐を示す識別情報、及び、分岐の条件と当該分岐の条件に応じて実行させる一又は二以上の関数からなる対応付けを設定した場合に、
    前記データ化プログラム作成手段に、
    前記対応付けをデータとして定義するとともに、当該データを参照することによって、前記分岐の条件及び分岐に係る前記汎用制御文にしたがって対応する関数を実行するコンピュータプログラムを作成させる
    ことを特徴とする請求項1又は2記載のプログラム自動作成プログラム。
  4. 前記データ化設定手段が、
    反復を示す識別情報、及び、反復の条件と当該反復の条件に応じて繰り返し実行させる関数からなる対応付けを設定した場合に、
    前記データ化プログラム作成手段に、
    前記対応付けをデータとして定義するとともに、当該データを参照することによって、前記反復の条件及び反復に係る前記汎用制御文にしたがって対応する関数を繰り返し実行するコンピュータプログラムを作成させる
    ことを特徴とする請求項1〜3のいずれか一項記載のプログラム自動作成プログラム。
  5. コンピュータプログラムを自動的に作成するためのプログラム自動作成方法であって、
    構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する工程と、
    順次、分岐又は反復のうちのいずれかの論理構造と、当該論理構造にしたがって実行させる関数との対応付けを設定する工程と、
    前記対応付けをデータとして定義するとともに、当該データを参照することによって、その論理構造に係る前記汎用制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成する工程と、を有する
    ことを特徴とするプログラム自動作成方法。
  6. コンピュータプログラムを自動的に作成するプログラム自動作成装置であって、
    構造化定理にもとづく論理構造である順次、分岐、反復の制御文を汎用化した汎用制御文を保存する汎用制御文保存手段と、
    順次、分岐又は反復のうちのいずれかの論理構造と、当該論理構造にしたがって実行させる関数との対応付けを設定するデータ化設定手段と、
    前記対応付けをデータとして定義するとともに、当該データを参照することによって、その論理構造に係る前記汎用制御文にしたがって対応した関数が実行されるコンピュータプログラムを作成するデータ化プログラム作成手段と、を備えた
    ことを特徴とするプログラム自動作成装置。
JP2012203981A 2012-09-18 2012-09-18 プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置 Expired - Fee Related JP5934620B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012203981A JP5934620B2 (ja) 2012-09-18 2012-09-18 プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012203981A JP5934620B2 (ja) 2012-09-18 2012-09-18 プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置

Publications (2)

Publication Number Publication Date
JP2014059692A true JP2014059692A (ja) 2014-04-03
JP5934620B2 JP5934620B2 (ja) 2016-06-15

Family

ID=50616121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012203981A Expired - Fee Related JP5934620B2 (ja) 2012-09-18 2012-09-18 プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置

Country Status (1)

Country Link
JP (1) JP5934620B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0315904A (ja) * 1989-06-14 1991-01-24 Sumitomo Heavy Ind Ltd 運転パラメータ設定装置
JPH047637A (ja) * 1990-04-25 1992-01-13 Mitsubishi Electric Corp プログラム図作成装置
JPH04346154A (ja) * 1991-05-24 1992-12-02 Nec Corp 対話型ソフトウェアシステムにおける操作法カスタマイズ方法
JPH1124911A (ja) * 1997-07-04 1999-01-29 Hitachi Koukiyou Syst Eng Kk ソースプログラム自動生成方法
JP2004038635A (ja) * 2002-07-04 2004-02-05 Mitsubishi Electric Corp プログラミング方法
JP2005174245A (ja) * 2003-12-15 2005-06-30 Canon Inc プログラム作成方法及びそのプログラム
JP2007026267A (ja) * 2005-07-20 2007-02-01 Yaskawa Electric Corp プログラム処理装置
JP2008102574A (ja) * 2006-10-17 2008-05-01 Nomura Research Institute Ltd プログラム実行システム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0315904A (ja) * 1989-06-14 1991-01-24 Sumitomo Heavy Ind Ltd 運転パラメータ設定装置
JPH047637A (ja) * 1990-04-25 1992-01-13 Mitsubishi Electric Corp プログラム図作成装置
JPH04346154A (ja) * 1991-05-24 1992-12-02 Nec Corp 対話型ソフトウェアシステムにおける操作法カスタマイズ方法
JPH1124911A (ja) * 1997-07-04 1999-01-29 Hitachi Koukiyou Syst Eng Kk ソースプログラム自動生成方法
JP2004038635A (ja) * 2002-07-04 2004-02-05 Mitsubishi Electric Corp プログラミング方法
JP2005174245A (ja) * 2003-12-15 2005-06-30 Canon Inc プログラム作成方法及びそのプログラム
JP2007026267A (ja) * 2005-07-20 2007-02-01 Yaskawa Electric Corp プログラム処理装置
JP2008102574A (ja) * 2006-10-17 2008-05-01 Nomura Research Institute Ltd プログラム実行システム

Also Published As

Publication number Publication date
JP5934620B2 (ja) 2016-06-15

Similar Documents

Publication Publication Date Title
US8631049B2 (en) Constructing declarative componentized applications
CN108345451B (zh) 一种连续功能图编程方法
JP2011048581A (ja) ソースコード解析システム
KR101350798B1 (ko) 오프로스 플랫폼에 기반하여 제어되는 로봇 시스템 및 그 로봇 제어방법
CN112463139A (zh) 基于电子积木的编程方法、装置、电子设备及存储介质
KR102300005B1 (ko) 소프트웨어 컴포넌트를 표현하는 각각의 그래픽 객체 간의 연결 조작을 이용한 소프트웨어 개발 어시스트 방법 및 그 시스템
CN114090365A (zh) 使用动态链接库进行功能测试的方法、装置和设备
JP5934620B2 (ja) プログラム自動作成プログラム、プログラム自動作成方法及びプログラム自動作成装置
Luckow et al. Symbolic pathfinder v7
CN101561779A (zh) 一种调试方法和调试器
CN111126012B (zh) 定制生成表达式方法及装置
CN112527284A (zh) 一种轻量级的插件式、组件化的web ide ui开发框架
JP5422963B2 (ja) ソフトウェアの開発支援システム、開発支援方法およびプログラム
CN114661402A (zh) 一种界面渲染方法、装置、电子设备及计算机可读介质
JP2013235508A (ja) オブジェクト指向プログラム生成装置、その方法、プログラム
CN111124386A (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN111143227A (zh) 一种数据操作方法、装置、终端及存储介质
JP2002116911A (ja) オブジェクト指向プログラムの自動生成装置
CN110361986B (zh) 仿真文件的生成方法和装置、仿真系统
CN107003883B (zh) 向量化装置
KR101585048B1 (ko) 다이어그램 기반 알고리즘 시뮬레이션 시스템
US20220300258A1 (en) Design processing method
US20220357933A1 (en) Computer Implemented Program Specialization
JP2003140714A (ja) 図形言語プログラム作成プログラム、及び図形言語プログラム作成装置
Sugimoto et al. An object-oriented visual simulator for microprogram development

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160325

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160509

R150 Certificate of patent or registration of utility model

Ref document number: 5934620

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees