JPH10149280A - プログラム合成装置及びプログラム合成方法 - Google Patents

プログラム合成装置及びプログラム合成方法

Info

Publication number
JPH10149280A
JPH10149280A JP9249098A JP24909897A JPH10149280A JP H10149280 A JPH10149280 A JP H10149280A JP 9249098 A JP9249098 A JP 9249098A JP 24909897 A JP24909897 A JP 24909897A JP H10149280 A JPH10149280 A JP H10149280A
Authority
JP
Japan
Prior art keywords
program
synthesizing
component
processing procedure
parts
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
JP9249098A
Other languages
English (en)
Other versions
JP3601949B2 (ja
Inventor
Takeshi Shimada
毅 島田
Hiroyuki Mizutani
博之 水谷
Shigeaki Sakurai
茂明 櫻井
Yukihiro Goto
幸博 後藤
Hiroshi Tsukada
弘志 塚田
Kazuhisa Goto
和久 後藤
Kyoichi Endo
経一 遠藤
Akira Ono
明 小野
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP24909897A priority Critical patent/JP3601949B2/ja
Publication of JPH10149280A publication Critical patent/JPH10149280A/ja
Application granted granted Critical
Publication of JP3601949B2 publication Critical patent/JP3601949B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】概略処理手順を使って、プログラム部品の選択
肢を一部分に限定することにより、効率よく(短時間に
容易に)所望のプログラムを合成できるプログラム合成
方法およびそれを用いたプログラム合成装置を提供する
ことを目的とする。 【解決手段】予め分類されたプログラム部品を記憶する
部品記憶手段(3)と、前記プログラム部品の分類に基
づき所望のプログラムの概略処理手順を指定する処理手
順指定手段(1)と、前記部品記憶手段に記憶されたプ
ログラム部品から前記概略処理手順に対応するプログラ
ム部品を選択する部品選択手段(2)と、この部品選択
手段で選択されたプログラム部品を結合してプログラム
を合成する合成手段(4)と、この合成手段で合成され
たプログラムの性能を評価する評価手段(5)とを具備
し、前記部品選択手段は、前記評価手段で得られた評価
値を参照してプログラム部品を選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピューターの
プログラムを予め登録されているプログラム部品から合
成する装置及び方法に関し、特に、最初は暫定的なプロ
グラムを生成し、そのプログラムに対して徐々に改良を
加えることによって性能の良い最終的なプログラムを合
成するプログラム合成装置およびプログラム合成方法に
関する。
【0002】
【従来の技術】過去に蓄積したプログラム部品を組み合
わせて新しいプログラムを作る技術、即ちプログラムの
部品合成においては、処理する課題に関して人間の専門
家が持っている知識を、機械で扱える形式に纏める必要
がある。
【0003】画像処理プログラムを作る場合で説明する
と、画像処理の方法や、処理の対象画像の光学的性質
(たとえばパステル画のように全体がぼやけていると
か、直線的な部分が多いなど)、使用する画像処理サブ
ルーチンの内容や入出力変数の型、サブルーチンの効果
(そのサブルーチンを施すことによる画像の変化)など
が、人間の専門家で持っている知識の例である。
【0004】このうち、画像処理サブルーチンの入出力
引数の型のような形式的な知識は、マニュアルなどの文
書化された形式に体系的にまとめられており、また内容
も正確なので、知識獲得は容易である。
【0005】これに対し、専門家が沢山の選択肢から適
切な画像処理サブルーチンを選ぶとき、画像上のどんな
特徴に着目し、どんなルールに基づいて判断しいてるの
か、といった複雑な知識は、画像処理分野の長年の研究
にも関わらず、機械化できるような形式に体系的にまと
められてはいない。画像処理の優秀な専門家でも、自分
がどんな論理的思考に基づいてプログラムを作成してい
るのかを明確に意識することは稀であり、本人ですら、
自分の知識を体系立てて整理することは難しい。まして
他人が、インタビューなどの方法で専門家から知識を獲
得することは不可能であると言っても過言ではない。
【0006】過去、エキスパートシステムを、プログラ
ムの部品合成に応用することが試みられてきたが、上述
の困難さのため、内省ないしはインタビューによって熟
練作業者から獲得できるのは、表面的な知識に限定され
てしまう。熟練者から引き出せる表面的な知識だけで
は、実用に耐え得るプログラムを合成するには甚だ不足
であった。
【0007】この不足を補う目的で行なわれたのは、熟
練者の作業を外から観察し、熟練者が使っている知識を
推論し、人工的に作ることであった。しかしこの方法に
は、以下の問題点がある。
【0008】すなわち、いろいろな処理対象に適用でき
るよう網羅して人工的な知識を作り上げるには、膨大な
労力が必要になるという問題があり、現実には狭い適用
範囲に限定した知識しか準備できず、これを利用した部
品合成もまた、自ずから適用分野が限定されてしまう。
【0009】また人工的な知識は、熟練者が長年の経験
によって蓄積した知識に比較して不正確にならざるを得
ず、したがって合成したプログラムの性能も、熟練者が
作成するプログラムに及ばない。
【0010】上述の問題に対する解決策として、暫定的
なプログラムを出発点とし、修正を繰り返し加えること
で、徐々に性能の良いプログラムを合成する技術が提案
されている。「認識機構学習システムMIRACLE−
IVにおける画像処理戦略の学習」(電子情報通信学会
技術研究報告PRU88−20記載)に見られる、遺伝
的アルゴリズムによる技術はこの例である。この技術
は、試行錯誤的に部品を組み合わせてプログラムを作
り、そのプログラムの処理結果と、処理結果の目標の差
によってプログラムを評価し、評価値が所望の値に達す
るまで修正を繰り返してゆく。
【0011】この技術は、知識としてプログラム部品同
士の接続可否の情報、つまり入出力引数の結合可否の情
報という形式的な知識だけを使う。画像処理サブルーチ
ンを選ぶルールのような形式化できない知識は必要とし
ないので、専門家の複雑な知識の獲得という困難かつ繁
雑な作業を経ることなく、性能の良いプログラムを得ら
れる。
【0012】しかし上述の従来技術には、以下の問題点
がある。
【0013】第一の問題は、合成されるプログラムの性
能を高めるには、できるだけ多くの種類のプログラム部
品を用意することが肝要であるが、これは一方で、部品
組合せの場合の数の爆発的な増大の原因になってしまう
という点にある。組合せの数の爆発的な増大によって、
必要な試行錯誤の回数が幾何級数的に増え、そのため、
所望の性能のプログラムを得るまでに掛かる時間が、現
実的範囲に収まらないことがある。このように、ここで
述べた従来技術は、現実規模のプログラムの部品合成に
適用することが困難であった。
【0014】また第二の問題は、合成するプログラムを
実際の処理結果と目標とする処理結果がどのくらい一致
するか(出力値と目標値の間の誤差の大きさや、出力値
と目標値が完全に一致するデータの件数の全テストデー
タの件数に対する割合などで定義される)ということの
みで評価するため、処理結果が全く同じになる複数のプ
ログラムの優劣を評価できないという点にある。処理結
果が全く同じでも、使用するプログラム部品の違いによ
って、合成したプログラムの実行に要する時間、実行に
要するプログラムコードのサイズ、実行に要する記憶領
域のサイズ、プログラムの構造の複雑さなどが変わる。
またプログラム部品の信頼性、拡張性の良さ、等の主観
的評価にもとづく評価も有り得る。これらのどの評価尺
度に対してプログラムを最適化してゆくのがよいのかは
課題によってまちまちである。
【0015】一例を挙げる。プログラムを実行するター
ゲットマシンが安価なマイコンの場合は主記憶装置の容
量は一般に小さく、プログラムが消費する記憶領域の大
きさは厳しく制限されるので、実行に要する記憶領域の
サイズができるだけ少ないプログラムがより望ましい。
一方、銀行のオンライン取り引き記録処理プログラムの
場合、大規模な計算機上で処理されるため消費する記憶
領域のサイズには制限がないものの、大量の取り引き情
報を一定の時間内に捌くことが求められ、実行完了まで
に要する時間の長さには厳しい制約が課せられる。
【0016】上述の従来技術は、合成するプログラムの
処理結果が、目標とする処理結果にどれだけ一致する
か、という意味での性能向上を提供する技術であって、
上述したような、課題の性格に沿った意味で性能が高い
プログラムを合成することはできなかった。
【0017】
【発明が解決しようとする課題】本発明は上述した事情
に対処すべくなされたものである。
【0018】処理すべき課題が与えられた際、プログラ
ムの大まかな処理手順(概略処理手順)は容易に指定で
きる場合が多い。概略処理手順を、プログラム部品の組
合せの制約条件として利用することで、試行錯誤の回数
を減らし、より短時間に効率的に、性能の良いプログラ
ムを合成することができるであろう。
【0019】この点に着目し、本発明は、概略処理手順
を使って、プログラム部品の選択肢を一部分に限定する
ことにより、効率よく(短時間に容易に)所望のプログ
ラムを合成できるプログラム合成方法およびそれを用い
たプログラム合成装置を提供することを第1の目的とす
る。
【0020】また、本発明は、評価尺度を定義する手段
を備えることにより、課題の性格に沿った意味で性能が
高いプログラムを合成できるプログラム合成方法および
それを用いたプログラムの合成装置を提供することを第
2の目的とする。
【0021】また、本発明は、高性能のプログラムを容
易に合成できるプログラム合成方法およびそれを用いた
プログラムの合成装置を提供することを第3の目的とす
る。具体的には、 ・ 合成したプログラムをターゲットマシン上で実行す
るのにかかる時間を評価基準としてプログラムの評価値
を決定することで、より所望の時間に近い処理時間のプ
ログラムを合成できるプログラム合成方法およびプログ
ラム合成装置を提供する。
【0022】・ 合成したプログラムをターゲットマシ
ン上で実行するときのプログラムコードのサイズを評価
基準としてプログラムの評価値を決定することで、より
小さいプログラムを合成できるプログラム合成方法およ
びプログラム合成装置を提供する。
【0023】・ 合成したプログラムをターゲットマシ
ン上で実行するときに要する記憶領域のサイズを評価基
準としてプログラムの評価値を決定することで、より小
さいプログラムを合成できるプログラム合成方法および
プログラム合成装置を提供する。
【0024】・ 使用するプログラム部品の主観的優先
度(例えば、部品の信頼性、拡張性のよさ、主観的評価
等)を評価基準としてプログラムの評価値を決定するこ
とで、優先度の高い部品を多く使ってプログラムを合成
できるプログラム合成方法およびプログラム合成装置を
提供する。
【0025】
【課題を解決するための手段】本発明の第1のプログラ
ム合成装置は、プログラム部品を組み合わせて所望のプ
ログラムを合成するプログラム合成装置において、予め
分類されたプログラム部品を記憶する部品記憶手段と、
前記プログラム部品の分類に基づき所望のプログラムの
概略処理手順を指定する処理手順指定手段と、前記部品
記憶手段に記憶されたプログラム部品から前記概略処理
手順に対応するプログラム部品を選択する部品選択手段
と、この部品選択手段で選択されたプログラム部品を結
合してプログラムを合成する合成手段と、この合成手段
で合成されたプログラムの性能を評価する評価手段と、
を具備し、前記部品選択手段は、前記評価手段で得られ
た評価値を参照してプログラム部品を選択することによ
り、効率よく(短時間に容易に)所望のプログラムを合
成できる。
【0026】また、本発明の第2のプログラム合成装置
は、プログラム部品を組み合わせて所望のプログラムを
合成するプログラム合成装置において、予め分類された
プログラム部品を記憶する部品記憶手段と、予め指定さ
れた条件に従って、前記プログラム部品の分類に基づき
所望のプログラムの概略処理手順を生成する処理手順生
成手段と、前記部品記憶手段に記憶されたプログラム部
品から前記概略処理手順に対応するプログラム部品を選
択する部品選択手段と、この部品選択手段で選択された
プログラム部品を結合してプログラムを合成する合成手
段と、この合成手段で合成されたプログラムの性能を評
価する評価手段と、を具備し、前記処理手順生成手段は
前記評価手段で得られた評価値を参照して概略処理手順
を生成し、前記部品選択手段は前記評価値を参照してプ
ログラム部品を選択することにより、効率よく(短時間
に容易に)所望のプログラムを合成できる。
【0027】また、本発明の第3のプログラム合成装置
は、前記評価手段でプログラムを評価する際の評価尺度
を定義する手段をさらに具備することにより、所望する
プログラムの課題に沿った、性能の高いプログラムを合
成できる。
【0028】また、本発明の第4のプログラム合成装置
は、前記プログラム部品の分類に基づき所望のプログラ
ムの概略処理手順の全部あるいは一部を指定する処理手
順指定手段をさらに具備することにより、所望するプロ
グラムの課題に沿った、性能の高いプログラムを合成で
きる。
【0029】また、本発明の第5のプログラム合成装置
は、前記部品選択手段は、遺伝的アルゴリズムを用い
て、前記部品記憶手段に記憶されたプログラム部品から
前記概略処理手順に対応するプログラム部品を選択する
ことにより、効率よく(短時間に容易に)所望のプログ
ラムを合成できる。
【0030】また、本発明のプログラム合成装置は、評
価手段で、合成手段で合成されたプログラムの性能、す
なわち、プログラムの実行時間、プログラムサイズ、プ
ログラムを実行する際に要する記憶容量をそれぞれ評価
することにより、ユーザの所望する条件を満たした高性
能のプログラムを容易に合成できる。
【0031】また、本発明の第1のプログラム合成方法
は、プログラム部品を組み合わせて所望のプログラムを
合成するプログラム合成方法において、前記プログラム
部品の分類に基づき所望のプログラムの概略処理手順が
指定されると、前記概略処理手順に対応するプログラム
部品を選択し、この選択されたプログラム部品を結合し
てプログラムを合成し、この合成されたプログラムの性
能の評価を行い、その評価値を前記概略処理手順に対応
するプログラム部品を選択する際に参照することによ
り、効率よく(短時間に容易に)所望のプログラムを合
成できる。
【0032】また、本発明の第2のプログラム合成方法
は、プログラム部品を組み合わせて所望のプログラムを
合成するプログラム合成方法において、予め指定された
条件に従って、前記プログラム部品の分類に基づき所望
のプログラムの概略処理手順を生成し、この生成された
概略処理手順に対応するプログラム部品を選択し、この
選択されたプログラム部品を結合してプログラムを合成
し、この合成されたプログラムの性能の評価を行い、そ
の評価値を前記概略処理手順を生成する際、および前記
概略処理手順に対応するプログラム部品を選択する際に
参照することにより、効率よく(短時間に容易に)所望
のプログラムを合成できる。
【0033】また、本発明の第3のプログラム合成方法
は、前記合成されたプログラムの性能を評価する際の評
価尺度が定義されることにより、所望するプログラムの
課題に沿った、性能の高いプログラムを合成できる。
【0034】また、本発明の第4のプログラム合成方法
は、前記プログラム部品の分類に基づき所望のプログラ
ムの概略処理手順の全部あるいは一部を指定することに
より、所望するプログラムの課題に沿った、性能の高い
プログラムを合成できる。
【0035】また、本発明の第5のプログラム合成方法
は、遺伝的アルゴリズムを用いて、前記概略処理手順に
対応するプログラム部品を選択することにより、効率よ
く(短時間に容易に)所望のプログラムを合成できる。
【0036】また、本発明のプログラム合成方法は、合
成されたプログラムの性能、すなわち、プログラムの実
行時間、プログラムサイズ、プログラムを実行する際に
要する記憶容量をそれぞれ評価することにより、ユーザ
の所望する条件を満たした高性能のプログラムを容易に
合成できる。
【0037】
【発明の実施の形態】以下、図面を参照して本発明の実
施形態を説明する。
【0038】(第1の実施形態)図1は、本発明の第1
の実施形態に係るプログラム合成方法を用いたプログラ
ム合成装置の構成例を概略的に示したものである。本発
明のプログラム合成方法は、ソフトウエアによって構成
し、それを例えばパーソナルコンピュータに実装し、プ
ログラム合成装置として実現してもよい。
【0039】図1において、プログラム合成装置は、処
理手順指定手段1、部品選択手段2、プログラム部品記
憶手段3、プログラム結合手段4、プログラム評価手段
5から構成される。
【0040】図2は、プログラム合成装置の処理の流れ
を大まかに説明する流れ図である。
【0041】まず、処理手順指定手段1において概略処
理手順が指定される(ステップS101−1)。プログ
ラムの合成は、定められた終了条件が成立するまで繰り
返される。(合成ループ;ステップS101−2〜S1
01−6)。終了条件の例には、繰返し回数が予め与え
られた上限値を越えたときに終了する条件や、合成する
プログラムの評価値が予め与えられた目標値を越えたと
きに終了する条件、合成したプログラムの個数が予め与
えられた上限個数を越えたときに終了する条件、あるい
はこれらの条件の任意の組合せの論理和など様々に考え
られる。ただし本発明の効果は、この終了条件の如何に
拘らず発生し、その内容に拘束されるものではないこと
を指摘しておく。プログラム合成の繰返しごとに、ステ
ップS101−3〜ステップS101−5が実行され
る。まず、部品選択手段2は、指定された概略処理手順
に従って、プログラム部品記憶手段3からプログラム部
品を選択する(ステップS101−3)。つぎにプログ
ラム結合手段4が選択されたプログラム部品を結合し、
1本のプログラムに組み上げる。(ステップS101−
4)。さらにプログラム評価手段5が、組み上がったプ
ログラムの評価値を決定する(ステップS101−
5)。次に各手段ごとに詳しく説明して行く。
【0042】(1−1) 処理手順指定手段 図1において、処理手順指定手段1は、所望のプログラ
ムがとるべき概略処理手順を指定するためのものであ
る。処理すべき課題が与えられた際、プログラムがとる
べき概略処理手順は、容易に指定できる場合が多い。概
略処理手順を使って、プログラム部品の選択肢を一部分
に限定することにより、試行錯誤の回数を減らし、より
短時間に効率的に、性能の良いプログラムを合成するこ
とができる。
【0043】処理手順指定手段1の具体例として、あら
かじめ保持している概略処理のリストを熟練者に提示し
概略処理を選択させることによって、概略処理の手順を
作成する例を説明する。図3に処理手順指定手段1の構
成例を示す。
【0044】処理手順指定画面の表示手段1aは、概略
処理のリスト(一覧表)が保持されている概略処理記憶
手段1bから処理の一覧表を読み出して、ディスプレイ
100上に表示する。熟練者は、作成しようとするプロ
グラムの概略処理の手順を一覧表から選択して所望の概
略処理の一連の手続きを作成する。
【0045】図4は、概略処理記憶手段1bに記憶され
ている概略処理の一覧表の記憶例を示している。図4に
おいて、各概略処理にはそれぞれを識別するための識別
子が与えられている。なお、図4では、処理の名称
(「概略処理1」、「概略処理2」、…)が識別子にな
っている。
【0046】次に、処理手順指定手段1に具備される、
熟練者が概略処理手順を作成するためのユーザインタフ
ェイスの機能について説明する。
【0047】図5は、このインタフェイスの例として処
理手順指定手段1の例えば、処理手順指定画面の表示手
段1aの制御のもと、ディスプレイ100に表示される
インタフェイス画面の一例を示したものである。
【0048】図5において、概略処理手順を指定するた
めのインタフェイス画面は、主に、概略処理記憶手段1
bに記憶された概略処理の一覧を表示するウインドウ2
00と、このウインドウ200に表示された一覧から所
望の概略処理を選択して概略処理の手順を編集するため
のウインドウ201が表示される。
【0049】熟練者は、例えば、マウスなどの入力装置
を使って概略処理を表す箱型のシンボル202をウイン
ドウ201上の作業画面に張り付け、各々に対して、ウ
インドウ200に表示された概略処理の一覧からマウス
等を用いて所望の概略処理を選択して割り付ける。
【0050】概略処理の手順は、概略処理を表す箱型の
シンボル202を、実行の順序に従って矢印で結ぶこと
によって指定する。手順を作成するこの作業は、いわゆ
るフローチャートを作成する作業と同じである。また図
中の六角形のシンボル203は、プログラミングの分岐
処理をあらわすシンボルである。
【0051】(1−2) プログラム部品記憶手段 プログラム部品記憶手段3は、プログラム部品を部品分
類に分けて保持するものである。プログラム部品は、汎
用に使えるよう標準化したプログラムコードと、プログ
ラムコードの属性からなる。プログラムコードの属性に
は、そのプログラムコードの用途、効果、各種のターゲ
ットマシン上での実行にかかる時間、サイズ、引数の情
報、プログラム部品の信頼性等を考慮した好ましさを表
す使用優先度情報など、そのプログラムコードに関連す
る任意の情報を含めることができる。一つの完全な(実
行可能な)プログラムは、複数のプログラム部品が結合
されて成る。
【0052】「プログラム部品を結合する」とは、ここ
では、プログラムコードの実行順序を決め、一方のプロ
グラム部品の出力引数と、他方のプログラム部品の入力
引数を接続し、どの引数からどの引数へと値が受渡しさ
れるかを決めることである。
【0053】なお、部品分類とは、特定の観点でプログ
ラム部品を部分集合にまとめる際の観点、または、分類
そのものを指す。その一例としては類似の機能を持つプ
ログラム同士をひとまとめにする部品分類が挙げられ
る。
【0054】また、概略処理とは、具体的には、プログ
ラム部品を、例えば、その機能あるいはその効果に基づ
き分類し、その分類されたプログラム部品全体に共通す
る処理名である。ここでは、プログラム部品を分類した
際の部品分類のタイトルが概略処理のタイトルである場
合を例にとり説明している。
【0055】図6は、プログラム部品記憶手段3におけ
る、プログラム部品の記憶例を示したものである。図6
において、プログラム部品は、例えば、部品分類10、
331、510などに分類されて保持されている。
【0056】また、各プログラム部品は、図7に示すよ
うに、プログラムコードとその属性情報から構成されて
記憶されるようになっている。
【0057】(1−3) 部品選択手段 部品選択手段2は、処理手順指定手段1が与える概略処
理手順に含まれる個々の概略処理を、プログラム部品記
憶手段3から選択したプログラム部品で置き換えるよう
になっている。
【0058】部品選択手段2の具体例として、処理手順
指定手段1の概略処理記憶手段1bに記憶される概略処
理の一覧と、プログラム部品記憶手段3の部品分類とが
一対一に対応する場合を説明する。この例では、部品分
類が類似の機能を持つプログラム同士をひとまとめにす
る分類であり、処理手順指定手段1に保持されている概
略処理は、プログラム部品の機能的な分類に一致する。
【0059】部品選択手段2は、処理手順指定手段1か
ら与えられる概略処理手順に含まれる個々の概略処理の
並びに従って、対応する部品分類のプログラム部品を配
列し、具体的な処理の手順を生成する。
【0060】図8を参照して、部品選択手段2の動作を
説明する。
【0061】図8において、例えば、図5のウインドウ
201上で編集された概略処理手順の個々の処理と、プ
ログラム部品記憶手段3に格納されている部品分類との
対応は、一点鎖線で表されている。
【0062】上述したように、部品選択手段2は個々の
概略処理の並びに従って、対応する部品分類の中のプロ
グラム部品を配列し、具体的な処理の手順を生成する。
【0063】本発明は部品選択手段2におけるプログラ
ム部品の選択方法を特に限定するものではない。例え
ば、乱数を用いてプログラム部品を選択する方法でも良
いし、また単に乱数で選択するのではなく、過去に合成
したプログラムの評価値をプログラム評価手段5から取
り込み、評価値の高低とプログラムに使われているプロ
グラム部品との相関から、できるだけ高い評価値が得ら
れるように、プログラム部品を選択する方法でも良い。
また、利用者が置き換えを指示しても良い。この方法を
用いると、試行錯誤的に、徐々に評価値の高いプログラ
ムを合成することができる。
【0064】図8に示すように、プログラム選択手段2
でのプログラム部品の選択の結果、太枠で囲まれたプロ
グラム部品が選択されたとする。
【0065】図9に、部品選択手段2による概略処理の
置き換えの結果を示す。
【0066】(1−4) プログラム結合手段 プログラム結合手段4は、部品選択手段2が与える具体
的な処理手順に従ってプログラムコードの実行順序を決
め、一方のプログラム部品の出力引数と、他方のプログ
ラム部品の入力引数を接続し、どの引数からどの引数へ
と値が受渡しされるかを決める。
【0067】プログラム結合手段4の具体例を説明す
る。本発明の効果は引数対応の具体的な方法に拘らず、
引数対応の方法を特に限定する必要はない。以下に示す
方法は一例である。プログラム部品記憶手段3の説明で
述べたように、プログラム部品はプログラムコードとそ
の属性から成る。プログラムコードの属性には、引数に
関する情報が含まれている。引数対応は、引数に関する
情報のうち引数の入出力種別と引数の内容を参照して決
定する。
【0068】図10は、図9の4つのプログラム部品の
引数の情報を示している。内容の項目には、その引数の
内容を表す記号が入っている。
【0069】図11に示すフローチャートは、プログラ
ム結合手段4が行なうデータ受渡しの指定方法の処理手
順を示したものである。図10に示した4つのプログラ
ム部品からなる具体的な処理手順に対してこのフローチ
ャートに示す手続きを施すと、図12に示すようにデー
タの受渡しが決まる。矢印は、その根本でデータの送り
手を示し、矢尻でデータの受け手を示している。
【0070】図11に示すフローチャートの手続きを簡
単に説明すると、まず、あるプログラム部品iの引数j
と、そのプログラム部品iより前にあるプログラム部品
kの全引数lの内容が一致するか否かをチェックして、
一致する場合は、引数jを引数lと対応させる(ステッ
プS3〜ステップS8)。以上の処理をプログラム部品
iに含まれる全ての引数について行い(ステップS
2)、さらに、ステップS2〜ステップS8の処理を全
てのプログラム部品について行う(ステップS1)。
【0071】たとえば、プログラム部品137bの引数
ipは、プログラム部品510−cの引数jrtの値を
受けとる。入力引数あるいは入出力引数(入出力種別
が、inputかin/out)であって、値を他のど
の引数から得るかが定まらない引数のあるプログラム部
品が残ってしまった場合には、その部品が置き換わった
概略処理を、同じ概略処理に属する別のプログラム部品
で置き換えて、上記の手順を再度やり直す。このような
すべての引数のデータの受渡し指定が決まると合成すべ
きプログラムが完成する。
【0072】(1−5) プログラム評価手段 プログラム評価手段5は、プログラム結合手段4でプロ
グラム部品が結合されて合成されたプログラムの評価値
を決定するようになっている。
【0073】プログラム評価手段5の具体例として、プ
ログラムを実行したときの実際の出力と、プログラムに
期待されている出力との一致の度合に基づいて、プログ
ラムの評価値を決定するプログラム評価手段を説明す
る。
【0074】図13に、プログラム評価手段5の構成例
を示す。図13において、プログラム評価手段5は、プ
ログラム実行手段5a、評価値計算手段5b、入力保持
手段5c、期待出力保持手段5dから構成されている。
【0075】プログラム実行手段5aは、部品結合手段
2から与えられる具体的な処理手順に従って、プログラ
ム部品記憶手段3にあるプログラム部品を順次実行す
る。その際、プログラム部品間の変数の受け渡しは、プ
ログラム結合手段4から与えられるプログラム部品間の
引数対応に従って行われる。この時、入力保持手段5c
が保持する入力データがプログラム実行手段5aで実行
中のプログラムに入力される。その入力データを処理し
た結果である出力データは評価値計算手段5bに与えら
れる。
【0076】評価値計算手段5bは、入力データがプロ
グラムに入力されたときにその処理結果として出力され
ることが期待されている出力データを、期待出力保持手
段5dから読み出す。次に、出力データと期待されてい
る出力データとを比較し、一致しているかどうかを調
べ、それをもとに評価値を計算して出力する。
【0077】本発明は、評価値の計算方法には依存せず
にその効果を発生するので、具体的な計算式に拘束され
るものではない。
【0078】ここで、評価値の計算方法の一例を説明す
る。図14は、入力データとそれがプログラムに入力さ
れたときに期待される出力データと、合成したプログラ
ムの実際の出力データとの対応の一例を示したものであ
る。この例では、入力データは全部でn件ある。出力デ
ータOiと期待される出力データOexp(i)が一致
する件数をmとしたとき、プログラムの評価値eをe=
m/nで求める。すなわち、入力データ件数に対する、
出力データと期待される出力データの一致件数の比率を
評価値とする。
【0079】計算された評価値は部品選択手段2に送ら
れ、次のプログラム合成において、より評価値の高いプ
ログラムを合成するには概略処理の各々にどのプログラ
ム部品を選択すれば良いかを判断するために使われる。
【0080】(1−2)で説明したプログラム部品記憶
手段は、プログラム部品を部品分類に分けて保持してい
たが、プログラム部品を部品分類と対応づけて保持して
もよい。
【0081】すなわち、プログラム部品はプログラムコ
ードとその属性から成るが、図15に示すプログラム部
品の記憶例のように、属性情報の中に、部品分類の情報
が含まれていてもよい。
【0082】以上説明したように、本実施形態によれ
ば、プログラム部品の組合せの制約条件としてユーザが
概略処理手順を指定し、その指定手順に従ってプログラ
ム部品を結合し、これを評価するものとなっているた
め、試行錯誤の回数が減少することになり、より短時間
に効率的に、性能の良いプログラムを合成することがで
きる。
【0083】(第2の実施形態)次に、本発明の第2の
実施形態として、プログラムを評価する尺度(方法)を
定義する評価尺度定義手段をさらに具備したプログラム
合成装置について説明する。
【0084】図16に示すように、第2の実施形態に係
るプログラム合成装置の構成例は、図1の第1の実施形
態に係るプログラム合成装置にさらに評価尺度定義手段
6が追加されて構成される。
【0085】評価尺度定義手段6は、プログラム評価手
段5でプログラムの評価値を計算する際の計算方法を与
えるものである。
【0086】評価尺度定義手段6の具体例として、合成
したプログラムを評価するための評価プログラムを供給
するものを説明する。図17は、この評価尺度定義手段
6とプログラム評価手段5の関係を示した図である。こ
の具体例では、合成したプログラムの評価は、以下のデ
ータを評価用入力変数とする関数によって計算する。
【0087】・合成したプログラムのソースコード ・合成したプログラムのソースコードのサイズ ・合成したプログラムが要する記憶領域のサイズ ・合成したプログラムに入力データを処理させたときの
出力データ ・期待されている出力データ ・合成したプログラムに使われたプログラム部品の属性
情報 ・合成したプログラムの実行時間 評価尺度定義手段のソースコード編集手段6aは、上記
の評価用入力変数を入力データとし、合成したプログラ
ムの評価値を算出する任意の評価プログラムソースコー
ドを編集するためのものである。このソースコード編集
手段6aを人間が操作し、所望の評価尺度を実現する評
価プログラムソースコードを作成する。作成されたソー
スコードはコンパイラ6bに渡され、実行可能な評価プ
ログラムに変換される。この評価プログラムは、プログ
ラム評価手段5の評価値計算手段5bに供給される。
【0088】同図に示すように評価値計算手段5bに
は、上述の評価用入力変数に相当するデータが入力され
ており、評価プログラムが評価値計算手段5bによって
実行されることにより、合成したプログラムの評価値が
算出される。算出された評価値は、部品選択手段2に供
給される。
【0089】つぎに、人間がソースコード編集手段6a
で作成する評価プログラムで計算される評価関数の例を
いくつか示す。
【0090】(実際の出力データと期待されている出力
データとの違いによる評価)第1の実施形態で説明した
評価値eを、上述の評価尺度定義手段6によって提供さ
れる評価プログラムで計算できることは明らかである。
それを以下に示す。入力保持手段5cに保持される複数
件数のテスト入力データを順次、プログラム実行手段5
aで実行されている合成したプログラムに入力すると、
その件数分の実際の出力データが算出される。今、その
件数をn件としよう。この件数は、合成したプログラム
が評価値計算手段5bに供給する出力データの件数と一
致しているので、入力保持手段5cから直接供給されな
くても、評価値計算手段5bは知ることができる。また
個々のテスト入力データに対応する期待されている出力
データと、実際の出力データとが一致する件数mは、評
価値計算手段5bに入力されている実際の出力データの
個々と、これらに対応する期待されている出力データの
個々とを比較することで求められる。したがって第1の
実施形態で説明した評価値の例は、上述の評価尺度定義
手段6が供給した評価プログラムによって算出できる。
【0091】(実際の出力データと期待されている出力
データとの誤差による評価)つぎに数学関数のフィッテ
ィングに適した評価値として、テスト入力データに対す
る出力データと、期待される出力データとの誤差の例を
示す。全部でn件あるうちのi番目の入力テストデータ
に対する実際の出力データをO(i)、期待されるデー
タ出力をOexp (i)とするとき、評価関数e2 を次の
ように定める。
【0092】
【数1】
【0093】誤差が小さいほど最大値1.0に近い評価
値が得られる。この評価値は、実際の出力データ、期待
される出力データ、および入力データの件数のみで計算
できるから、上述の評価尺度定義手段6が供給する評価
プログラムとして実現することが可能である。
【0094】(計算結果が期待する値に一致し、プログ
ラムの実行時のサイズがより小さいものを高く評価する
場合)次の例として、合成したプログラムの出力が期待
されている出力に完全に一致することを絶対の条件と
し、さらに、よりプログラムの実行時のサイズが小さい
ものを高く評価する場合の例を示す。プログラム実行手
段5aから評価値計算手段5bに供給される、合成した
プログラムの実行時のサイズをsとしよう(単位はバイ
ト)。このとき、求める評価値e3 を次のように定め
る。
【0095】
【数2】
【0096】ここでe2 は前述の評価関数とする。この
評価値e3 は、実際の出力データ、期待される出力デー
タ、入力データの件数、および合成したプログラムのサ
イズのみで計算できるから、上述の評価尺度定手段6が
供給する評価プログラムとして実現することが可能であ
る。
【0097】(計算結果が期待する値に一致し、実行に
要する時間がより短いものを高く評価する場合)次の例
として、合成したプログラムの出力が期待されている出
力に完全に一致することを絶対の条件とし、さらに、よ
り実行に要する時間が短いものを高く評価する場合の例
を示す。評価値計算手段5bには、時計5eから時刻が
供給されている。プログラム実行手段5a上で合成した
プログラムが実行を開始した時刻と、実行を終了した時
刻とを使って、所要時間tを求められる。したがって前
述の評価値e3 の定義式において、プログラムの実行時
のサイズsをtに置き換えると、ここで求める新しい評
価関数e4 が得られる。
【0098】(計算結果が期待する値に一致するテスト
入力データの比率と、合成したプログラムの品質メトリ
クスとの線形和を評価値とする場合)次の例として、実
際の出力と期待する出力とが一致するテスト入力データ
の件数の全テストデータに対する比率と、合成したプロ
グラムのソースコードの品質メトリクスの線形和として
評価値を求める場合を示す。実際の出力と期待する出力
とが一致するテスト入力データの件数の、全テストデー
タ件数に対する比率は前述の評価値eである。合成した
プログラムのソースコードの品質メトリクスmはプログ
ラムソースコードの品質を定量化した数値であり、様々
なものが一般に知られている(たとえば、森口繁一編
「ソフトウェア品質管理ガイドブック」日本規格協会
刊、第12章品質の定量的計測と評価の方法を参照)。
ここでは、ソースコードの複雑さを計測する尺度である
条件文数の総数iの関数としてm=1/(i+1)とす
る。このとき、出力一致度の百分率cを8割、品質メト
リクスmを2割として評価値e5 を定義すると、 e5 =0.8c+0.2m となる。評価関数e5 も、評価尺度定義手段6がプログ
ラム評価手段5に供給する評価プログラムとして実現す
ることができることは、図17から明らかであろう。
【0099】(その他)その他評価関数を定義する際
に、入力変数としてプログラム部品の属性情報として各
部品に予め付けられた主観的優先度(後述する第6の実
施形態で詳しく述べる)を使ってもよい。
【0100】また、ここでは前述の六種類の評価用デー
タを入力変数とする関数として評価関数を定義する例を
説明したが、本発明の評価尺度定義手段6は評価値を計
算する関数の入力変数には依存しないので、何を入力変
数とするかには拘束されずその効果を発揮することに注
意されたい。
【0101】(第3の実施形態)前述の第1、第2の実
施形態のプログラム合成装置では、設計者が処理手順指
定手段1を用いて概略処理の手順を作成していく。ここ
では、この概略処理の手順を自動的に生成する処理手順
生成手段7を具備したプログラム合成装置について説明
する。
【0102】図18に第3の実施形態に係るプログラム
合成装置の構成例を示す。なお、図18において図1と
同一部分には同一符号を付し、異なる部分について説明
する。すなわち、図1の処理手順指定手段1が処理手順
生成手段7に置き換わっている。
【0103】処理手順生成手段7は、図19に示すよう
に、処理手順発生手段7aと概略処理記憶手段7bと処
理手順長入力手段7cから構成される。
【0104】処理手順長は人間が指示する正の整数Nで
あり、処理手順の最大の長さを意味している。
【0105】処理手順発生手段7aは、処理手順長入力
手段7cで指定された長さN以下の概略処理のシーケン
ス(手順)を概略処理記憶手段7bに記憶されている概
略処理からランダムに発生し、部品選択手段2に出力す
る。以降、第1の実施形態の説明と同様にして、プログ
ラム合成を行い、プログラム評価手段5でその評価値を
算出し、その算出された評価値が、処理手順発生手段7
aに入力されると、それを上記の概略処理のシーケンス
の評価値とし、更に別の概略処理のシーケンスを発生さ
せて同様に評価値を得ることを繰り返し、評価値の高い
概略処理のシーケンスとプログラム合成されたプログラ
ムを得る。
【0106】上記では、指定された処理手順長に基づき
概略処理のシーケンスをランダムに発生する場合を示し
たが、各種の組み合わせ探索手法(整数計画法、遺伝的
アルゴリズム、タブーサーチ等を用いることもでき
る)。
【0107】(第4の実施形態)次に、前述の処理手順
指定手段1と処理手順生成手段7を併用するプログラム
合成装置について説明する。
【0108】図20に第4の実施形態に係るプログラム
合成装置の構成例を示す。なお、図1と異なる部分は、
処理手順指定手段1にさらに処理手順生成手段7が追加
されている。
【0109】ユーザは所望の概略処理手順のうちの一部
を、前述同様に処理手順指定手段1で指定を行い、前記
概略処理手順のうち、自動的に選択して欲しい処理手順
は処理手順生成手段7が生成するものである。
【0110】処理手順指定手段1で指定した以外の部分
を前述の第3の実施形態と同様に処理手順生成手段7で
発生し、以降の処理は前述同様である。
【0111】また、プログラム評価手段5で得られる評
価値は処理手順指定手段1にも返され、ユーザがそれを
参考に概略処理手順の再指定を行い、修正する。
【0112】(第5の実施形態)第1の実施形態では、
プログラム部品記憶手段3に保持されている概略処理と
部品分類とが図8に示すように、一対一に対応している
場合について説明した。プログラム部品の管理の便宜で
作成する部品分類の場合、必ずしも部品分類と概略処理
とは一対一に対応付けすることができず、一般的には多
対多の対応となる。
【0113】ここでは、処理−部品分類項目対応テーブ
ル20を持ち、多対多の対応に対処できるプログラム合
成装置について説明する。
【0114】プログラム合成装置の構成例としては、図
1と同様であるが、例えば、部品選択手段2あるいはプ
ログラム部品記憶手段3には、処理−部品分類項目対応
テーブル20を具備しているものとする。
【0115】図21を参照して、処理−部品分類項目対
応テーブル20を用いた場合の動作を説明する。すなわ
ち、部品選択手段2は、例えばウインドウ201上で指
定された概略処理手順の個々のステップを、処理−部品
分類項目対応テーブル20で対応づけられる部品分類の
中のプログラム部品と置き換えて、具体的な処理の手順
を生成するようになっている。
【0116】(第6の実施形態)次に、プログラム評価
手段5で合成されたプログラムを評価する際、その合成
されたプログラムを実行するのにかかる時間、必要な記
憶容量、プログラムコードのサイズ等を評価基準とし
て、評価値を決定するプログラム合成装置について説明
する。すなわち、プログラム評価手段5は、プログラム
部品記憶手段3からプログラム部品に関する必要な情報
を受け取り、評価値を算出する。
【0117】図22にプログラム部品記憶手段3に保持
されるプログラム部品の属性情報の記憶例を示す。
【0118】図22に示すように、各プログラム部品毎
に、ターゲットマシン上での実行時間、ターゲッドマシ
ン上でのプログラムサイズ、ターゲットマシン上での実
行に要する記憶容量、および、各プログラム部品の主観
的優先度(例えば、部品の信頼性、拡張性のよさ、主観
的評価等)を考慮した利用の好ましさを表す優先度の情
報が記憶されている。
【0119】プログラム評価手段5は、プログラム結合
手段4から渡された合成プログラムを構成している各プ
ログラム部品の、ターゲットマシンに対応する情報や優
先度を、プログラム部品記憶手段3の図22に示したよ
うなテーブルから読み出し、例えば、その合計を算出す
ることにより、ターゲットマシン上での全実行時間、全
プログラムサイズ、全記憶容量、総合優先度を評価値と
して算出する。
【0120】なお、算出方法は種々の演算方式が考えら
れ、更に、評価値は単独で用いられるだけでなく、複数
の評価値を組み合わせ、例えば加重和をとって、評価値
とすることも考えられる。
【0121】(第7の実施形態)次に、処理手順指定手
段1で指定された概略処理手順に基づきプログラム部品
を選択する際に、遺伝的アルゴリズムを用いるプログラ
ム合成装置について説明する。
【0122】図23は、第7の実施形態に係るプログラ
ム合成装置の構成例を示したものである。図1と異なる
部分は、部品選択手段2が遺伝的アルゴリズムを用いて
部品探索を行う部品探索手段8に置き換わっている。
【0123】尚、遺伝的アルゴリズムについては、「遺
伝アルゴリズムハンドブック」(L.デービス編、森北
出版)等に述べられているので、ここでは適用の仕方を
述べる。
【0124】部品探索手段8では、処理手順指定手段1
より与えられる概略処理手順に含まれる個々の概略処理
の並びに従って、プログラム部品記憶手段3からプログ
ラム部品を選択して配列する。この処理は第1の実施形
態の説明と同様である。この配列処理によって一つの染
色体(実行順序を持った一連のプログラム部品の流れを
表す情報表現)が構成される。異なった配列方法で作ら
れる複数の染色体とともに、染色体集団を構成する。こ
の時、集団に属する染色体の個数は予め定められた整数
とする。
【0125】染色体集団はプログラム結合手段4に渡さ
れ、プログラム結合手段4が個々の染色体について、第
1の実施形態の説明と同様に、プログラム部品間の引数
対応の決定を行ってプログラムに変換する。このプログ
ラムはプログラム評価手段5に渡され、実行され、第1
の実施形態の説明と同様にプログラムの評価値(染色体
の評価値)が算出される。すべての染色体の評価値を求
め、部品探索手段8にそれらすべての評価値を返す。
【0126】部品探索手段8は、より良い評価値を得る
可能性の高い染色体を交叉や突然変異を用いて生成し直
す。一つの行い方は、評価値に比例した確率で任意の2
つの染色体を選び、これを両親として子供の染色体を交
叉で産生する。例えば、概略処理手順に含まれる全ての
個別の概略処理からなる集合を確率的に2つの部分A、
Bに分け、父親のAの部分に含まれる概略処理に対応し
ていたプログラム部品と母親のそれとを入れ替えること
で交叉が実現され、子の染色体が産生される。その染色
体には更に突然変異によって多様性を増加させる方法も
ある。例えば、確率的に1つの概略処理を選び、それに
対応するプログラム部品を他のプログラム部品に確率的
に置き直すことで実現される。
【0127】このように、新しい世代の染色体集団を作
成し、同様に、プログラム結合手段4、プログラム評価
手段5を通し、個々の染色体の評価値を得る。このこと
を繰り返すことにより、染色体集団の中に、より評価値
の高い染色体が構成されていく。
【0128】遺伝アルゴリズムにも種々の手法があり、
それらを利用した方法も変形例として考えられる。ま
た、探索手法としてタブーサーチ等の任意の組合わせ最
適化手段も利用できる。
【0129】(第8の実施形態)次に、第7の実施形態
に係るプログラム合成装置を、例えば、画像前処理プロ
グラムの合成に適用する場合について説明する。題材の
画像前処理プログラムは、工業製品の生産ラインで使わ
れる自動目視検査装置に利用する。
【0130】図24は、画像前処理プログラムを合成す
るプログラム合成装置の構成例を示したものである。以
下に各部の機能、動作を説明する。
【0131】(8−1) 処理手順指定手段 処理手順指定手段1は、概略処理手順入力部1cとそれ
につながる端末1dから構成される。概略処理手順入力
部1cには、図4に示した概略処理の一覧表が記憶され
ている。概略処理の一覧表の具体例を図25に示す。す
なわち、概略処理の一覧表として、画像前処理プログラ
ムを合成するに必要な概略処理の名称の一覧が記憶され
ている。
【0132】目視検査装置で用いる、例えば、画像前処
理プログラムを開発する専門家は、サンプル画像を見る
ことによって、どんな処理を行なえば目的の不良が検出
できるか、容易に概略手順を決定できる。たとえば、図
26に示す検査対象の表面上の色斑を検出したいとす
る。この不良は、色の急激な変化として検出できる。
【0133】この場合、概略処理手順は、一例として以
下のようになる。
【0134】手順1) RGB系で表現されたカラー画
像を、色情報変換によって別の色表現系(例えば、マン
セル色空間など)に変換する。
【0135】手順2) 色が急激に変化している部分
(色エッジ)を強調する。
【0136】手順3) 後の計算量を減らすため、三次
元の値を一次元の値におとす。
【0137】手順4) 色斑の存在を、色エッジがある
か否かによって検出するため、連続した線の存在度を計
算する。
【0138】最終的に、算出された連続した線の存在度
が規定値以上の場合には、色斑があると判断する。
【0139】専門家は、概略処理手順入力部1cが端末
1dに具備されるディスプレイ上にに表示するインター
フェースを使って概略処理手順を入力する。
【0140】図27は、インターフェース画面上に入力
した上記の概略処理手順を示し、図5に対応するもので
ある。
【0141】(8−2) プログラム部品記憶手段 プログラム部品記憶手段3は、プログラム部品と部品番
号を保管する部品ファイルとして実現する。
【0142】ここでは、部品分類としては、機能的な類
似性の観点による分類を採用する。部品分類、および各
分類に属するプログラム部品の記憶例を図28に示す。
この部品分類は、処理手順指定手段1に具備される概略
処理の一覧表(図25参照)の各項目と、一対一に対応
する例である(再度強調するが、部品分類と概略処理と
は、必ずしも一対一に静的に対応している必要はな
い)。プログラム部品には、各分類中で一意の部品番号
が付されている。
【0143】各プログラム部品は、プログラムコードと
その属性情報との組で記憶されるようになっている。
【0144】図29は、「Prewitt空間フィル
タ」、「色相・再度変換」というプログラム部品を例
に、各プログラム部品の格納方法を示したものである。
図29に示すように、各プログラム部品に対応して、ソ
ースコードで表現されているプログラムコードと、プロ
グラム属性の情報が格納されている。
【0145】「Prewitt空間フィルタ」のプログ
ラム属性を見ると、このプログラムが、入力用引数3個
と出力用引数1個を取ること、あるターゲットマシン上
での標準サイズ画像の処理時間が4.7秒であること、
プログラムのサイズが2813バイトであること、など
が分かる。
【0146】この例でプログラムコードはソースコード
として表現されているが、表現の形式は問わないので例
えばソースコードをコンパイルした結果であるオブジェ
クトコードであってもかまわない。
【0147】(8−3) 部品探索手段、プログラム結
合手段、プログラム評価手段 本実施形態の部品探索手段はGA(遺伝アルゴリズム)
技術を利用するもので、コーディング情報決定部8a、
初期染色体発生部8b、交叉・突然変異操作部8c、部
品決定部8d、淘汰操作部8eから構成される。
【0148】部品探索手段8は、プログラム結合手段
4、プログラム評価手段5と密接に関係している。ま
ず、上記3つの手段の動作を簡単に説明する。
【0149】ステップT1) 部品探索手段8は、プロ
グラム部品を生物の染色体に各々見立てて、ビット列な
どのコードで表す。ついで乱数などで、初期の染色体集
団を生成する。
【0150】ステップT2) 生成した染色体集団に対
して、交叉と突然変異を施し、新しい染色体集団をつく
る。これら新しい染色体集団は、プログラムを構成する
部品のコードに変換され、プログラム結合手段4に渡さ
れる。
【0151】ステップT3) プログラム結合手段4
は、プログラム部品のコードを結合しプログラム群を生
成する。
【0152】ステップT4) 生成されたプログラム群
は、プログラム評価手段5で実行され、各プログラムの
評価値が計算される。
【0153】ステップT5) プログラムの評価値は部
品探索手段8に供給される。ここで、評価値が高いプロ
グラムを表現する染色体を残し、評価値の低い染色体を
淘汰することによって、全体として進化した(評価値が
高い)染色体集団を生成する。
【0154】ステップT6) 終了条件が成立したな
ら、プログラムの生成を終了する。成立していなけれ
ば、ステップT2に戻る。終了条件には、ステップT2
〜ステップT6の手続きを何世代繰り返したか、プログ
ラムの最高評価値が規定の値に達したか、などを設定す
る。
【0155】このように、染色体の生成、染色体が表現
するプログラムの生成、プログラムの評価、評価値によ
る染色体淘汰のステップを繰り返すことで、染色体の評
価値が徐々に向上し、したがって評価値の高い画像前処
理プログラムが得られる。以下各ステップの詳細を説明
する。
【0156】ステップT1)部品探索手段8は、概略処
理手順と部品ファイルを読み込む。
【0157】部品探索手段8のコーディング情報決定部
8aは、概略処理手順と、部品ファイルに保管されてい
る各概略処理に入るプログラム部品の種類の数とから、
コーディング情報を生成する。図30は、コーディング
情報が表現している各概略処理手順と、染色体ビット列
との対応関係の例を示している。図27のウインドウ2
01に表示されている概略処理手順と、図28に示した
ような部品ファイルに収められているプログラム部品の
情報から生成されるコーディング情報の具体例を図30
に示す。
【0158】図27に示す概略処理手順では、概略処理
の数が4つで、第1の概略処理は「色情報変換」であ
る。図28によると、「色情報変換」に対応するプログ
ラム部品は5種類なので3ビットで区別できる。同様に
残りの概略処理のプログラム部品は、「色エッジ強調」
が4ビット、「一次元化」が3ビット、「直線の存在度
計算」が9ビットでそれぞれ区別できる。したがって図
30に示す通り、プログラムを表現する染色体は、全体
で19ビットの長さになる。
【0159】ここまでの処理によって、プログラムと染
色体の対応、すなわち染色体のコーディングが決定した
ことになる。たとえば染色体 0101011110000000011 には、最初の3ビットで「色情報変換」が「YIQ変
換」であること、つづく4ビットで「色エッジ強調」が
「S−G空間フィルタ」であること、つづく3ビットで
「一次元化」が「x3 」 であること、つづく9ビットで
「直線存在度」が「マスク処理なしハフ変換分割数2
0」であることが表現されている。
【0160】次に、コーディング情報8fは初期染色体
発生部8bに渡される。ここでは、予め決められるか、
ユーザーが指定する数の染色体が乱数によって生成され
る。生成された染色体にプログラムが存在しない場合に
は、改めて生成し直す。たとえば生成された染色体が、 111… であるとすると、最初の概略処理である「色情報変換」
として部品番号「7」のプログラム部品を選んだことに
なるが、図30のコーディング情報によれば最初の概略
処理の部品数は「5」であるから、この染色体が表現す
るプログラムが存在しないことになる。この場合は、染
色体を生成し直す。
【0161】生成された染色体集団8gは交叉・突然変
異操作部8cに供給され、ここで、交叉や突然変異の操
作が施される。
【0162】交叉: 染色体の間で切断と再結合が生じ
て部分交換が行われ、その結果、染色体組換えがおこる
ことを交叉という。この染色体の操作は、優れた染色体
の掛け合わせからより優れた染色体が生まれる場合があ
る、とする考え方を基本にしている。
【0163】いま、図32に示すように、 染色体A: 0000110010000000000 と、 染色体B: 1000000110000000010 を交叉させる場合を考える。図32を見ると分かるよう
に、染色体Aは次のようなプログラムを表現している。
【0164】
【数3】
【0165】染色体Bは次のようなプログラムを表現し
ている。
【0166】
【数4】
【0167】まず、染色体A、Bを複写しA′、B′を
作る。ここでの交叉法は、二箇所で切断し交叉する二点
交叉法を用いることにする。切断点はランダムに選ぶ
が、仮に2箇所の切断点を図32に示すように、5ビッ
ト目と6ビット目の間、および、9ビット目と10ビッ
ト目の間に選んだとする。
【0168】次に、切断点の間の部分を交換すると、染
色体A′、B′は、図33に示すように変化する。
【0169】このように交叉によって、染色体Aと染色
体Bとから、新しい染色体A′、B′が生成された。図
33から明らかなように、染色体A′は次のようなプロ
グラムを表現している。
【0170】
【数5】
【0171】染色体B′は次のようなプログラムを表現
している。
【0172】
【数6】
【0173】この場合は概略処理であるエッジ強調の部
品が変更されただけであったが、切断点によっては、も
っと大幅に部品が変化し得る。
【0174】ある染色体に交叉を施す確率は、予め決め
るか、ユーザによって指定される交叉率で与える。交叉
の相手になる染色体や切断点は、ランダムに選ぶ。また
交叉させた結果存在しないプログラムの染色体が生成さ
れた場合は、それを捨てる。交叉はやり直さない。
【0175】突然変異: 染色体の一部を別の染色体で
置換し、新しい染色体をつくる操作を突然変異という。
突然変異は、多くの染色体が似通ってしまい、染色体集
団として多様性が失われたときに起こる進化の停滞を、
強制的に打ち破る効果を持つ。
【0176】いま、図34に示すように、 染色体A: 0000110010000000000 を突然変異させる場合を考える。染色体Aは、次のよう
なプログラムを表現している。
【0177】
【数7】
【0178】まず、染色体Aを複写し、染色体A′を作
る。染色体を置換する位置はランダムに選ぶ。染色体の
置換として、ここでは図34に示すように、2、3、
6、7、19ビットめのビットを反転する。突然変異後
の染色体を図35に示す。
【0179】このように突然変異によって、染色体Aか
ら新しい染色体A′が生成された。
【0180】図35から明らかなように、染色体A′は
次のような新しいプログラムを表現していることが分か
る。
【0181】
【数8】
【0182】この場合は、概略処理である色情報変換、
色エッジ強調、直線存在度計算が変更された。
【0183】ある染色体の特定のビットを反転させる確
率は、予め決めるかユーザによって指定される突然変異
率で与える。また突然変異の結果存在しないプログラム
の染色体が生成された場合は、それを捨てる。突然変異
の操作はやり直さない。
【0184】このようにして交叉と突然変異で新しく生
成した染色体を加えて、全体として数の増えた染色体集
団(図24の染色体集団8h)を部品決定部8dに供給
する。
【0185】部品決定部8dは、コーディング情報に従
って染色体を解釈し、その染色体が表現しているプログ
ラムのプログラム部品を部品ファイルから検索する。そ
して、染色体集団8hの各染色体ごと、プログラム部
品、プログラム部品と概略処理との対応(どの概略処理
をどのプログラム部品で置き換えるか)、概略処理の接
続関係を組み合わせてすべての染色体についてまとめた
ものを、部品情報8iとしてプログラム結合手段4に供
給する。
【0186】部品探索手段8は、以上のように、概略処
理手順からプログラムの合成に必要な全ての情報を供給
する。
【0187】ステップT3)プログラム結合手段4は、
最終的には部品決定部8dが供給する具体的な処理手順
(すなわち部品情報8i)にしたがって、プログラム部
品のプログラムの引数を結合する。結合の方法について
は、第1の実施形態の説明と同様である。
【0188】プログラム結合手段4のプログラム合成部
4a(図24参照)は、プログラム部品のプログラムの
引数の結合に加え、必要な記憶領域の確保や、変数の宣
言、画像データの読み込みに必要なソースコードの生成
をおこなう。引数が結合されたプログラム部品と前述の
ソースコードとを接続すると、染色体が表現しているプ
ログラムができあがる。
【0189】染色体集団8hの全ての染色体に対応する
プログラムソースコード群4c(図24参照)は、コン
パイラ・リンカ4bに渡されて、プログラム実行形式群
4dに変換される。
【0190】ステップT4)生成されたプログラム実行
形式群4dは、プログラム評価手段5のプログラム実行
部5fに供給される。評価用データ5gには、画像デー
タとその画像データに色斑があるか専門家が判定した結
果との組が、複数(ここではn組とする)保持されてい
る。
【0191】プログラム実行部5fは、評価用データの
画像データをプログラムに入力し、そのデータに対する
プログラムの出力値(この場合、画像に対する直線の存
在度)を受けとる。前述したように、画像処理プログラ
ムによる色斑の有無の判断は、算出した直線の存在度が
規定値以上であるか否かによって決める。このプログラ
ムによる色斑有無の判断と、専門家による判定結果とが
一致する画像の件数をmとしたとき、このプログラムに
対する評価値eを、 e=m/n と算出する。
【0192】プログラム実行部5fは、プログラム実行
形式群4dのすべてのプログラムについて評価値を算出
する。
【0193】ステップT5)算出されたプログラム評価
値は、部品探索手段8の淘汰操作部8eに供給される。
淘汰操作部8eは、染色体集団8hの個々の染色体に対
応するプログラムの評価値の高い順に上位j位までの染
色体のみをのこし、それ以下の染色体を捨てる。ここで
jは、初期染色体発生部8bで最初に生成した染色体の
数に等しい。残った染色体は、次の世代の染色体8gと
して交叉・突然変異部8cに供給される。
【0194】ステップT6)ステップT6については、
前述の通りである。
【0195】(8−4) 効果 プログラムを生成しては評価値を計算し、評価値の高い
ものを残して次の世代のプログラムをまた生成するとい
う方式では、生成したプログラムを実際に実行しなけれ
ばならない。前述したように、生成するプログラムが処
理時間を要するものである場合(言うまでもなく、画像
処理は時間が掛かる処理の典型である)、所望の評価値
に達するプログラムを得るまでには、膨大な回数の繰り
返し処理と、処理時間が必要となる。
【0196】処理時間を短縮するには、プログラム生成
の際のプログラム部品の選択肢を、良いプログラムが生
成できそうな範囲に制約することが非常に効果がある。
しかしこれまでは、プログラム部品の選択肢への制約を
かける方法が存在しなかった。
【0197】本発明は、プログラムを開発しようとして
いる専門家は、概略の処理手順なら比較的容易に設計で
きる場合が多いということに着目し、この概略処理をプ
ログラム部品の制約に利用することによって、上記の問
題を解決するものである。これまで、最初は暫定的なプ
ログラムから初めて徐々に改良を加えることで性能の良
いプログラムを合成する技術は、プログラム部品の組合
せ爆発が原因で、現実的な時間内に所望性能のプログラ
ムを生成できない、現実性の薄いものであった。これを
初めて現実的なものにするという意味において、本発明
の効果は非常に大きいといえる。
【0198】
【発明の効果】以上説明したように、本発明によれば、
効率よく(短時間に容易に)所望のプログラムを合成で
きる。また、所望するプログラムの課題に沿った、性能
の高いプログラムを合成できる。また、ユーザの所望す
る条件を満たした高性能のプログラムを容易に合成でき
る。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るプログラム合成
装置の概略構成を示すブロック図。
【図2】プログラム合成装置の処理の流れを大まかに説
明する流れ図。
【図3】処理手順指定手段の構成を示すブロック図。
【図4】図3の概略処理記憶手段に記憶されている概略
処理の一覧表のデータ構造を示す図。
【図5】処理手順指定手段によりディスプレイに表示さ
れるインタフェイス画面の一例を示す模式図。
【図6】プログラム部品記憶手段のプログラム部品のデ
ータ構造を示す図。
【図7】プログラム部品のデータ構造を示す図。
【図8】部品選択手段によるプログラム部品の選択動作
を説明するための図。
【図9】部品選択手段により概略処理が適当なプログラ
ム部品に置き換えられた結果の一例を示す図。
【図10】プログラム部品記憶手段で記憶されるプログ
ラム部品の属性情報の一例を示す図。
【図11】プログラム結合手段が行なうデータ受渡しの
指定方法の処理手順を示すフローチャート。
【図12】図11に示した手順に従って求められた各プ
ログラム部品間のデータの受渡しの様子を示す図。
【図13】プログラム評価手段の概略構成を示すブロッ
ク図。
【図14】プログラム評価手段で合成されたプログラム
を評価する際合成されたプログラムに入力された入力デ
ータと、それがプログラムに入力されたときに期待され
る出力データと、合成したプログラムの実際の出力デー
タとの対応の一例を示す図。
【図15】プログラム部品記憶手段に記憶されているプ
ログラム部品のデータ構造の他の例を示す図。
【図16】本発明の第2の実施形態に係るプログラム合
成装置の概略構成を示すブロック図。
【図17】評価尺度定義手段とプログラム評価手段の関
係を示した図。
【図18】本発明の第3の実施形態に係るプログラム合
成装置の概略構成を示すブロック図。
【図19】処理手順生成手段の構成を示すブロック図。
【図20】本発明の第4の実施形態に係るプログラム合
成装置の概略構成を示すブロック図。
【図21】本発明の第5の実施形態に係るプログラム合
成装の置部品選択手段による概略処理とプログラム部品
との対応付けの様子を示す図。
【図22】本発明の第6の実施形態に係るプログラム合
成装置のプログラム部品記憶手段に保持されるプログラ
ム部品の属性情報の一例を示す図。
【図23】本発明の第7の実施形態に係るプログラム合
成装置の概略構成を示すブロック図。
【図24】本発明の第8の実施形態に係る、画像前処理
プログラムを合成するプログラム合成装置の具体的な構
成を示すブロック図。
【図25】概略処理手順入力部に記憶された概略処理の
記憶例を示す図。
【図26】合成された画像前処理プログラムの処理対象
となる画像の一例を示す模式図。
【図27】概略処理手順を指定するインタフェース画面
の表示例を示す模式図。
【図28】プログラム部品記憶手段における部品分類お
よび各分類に属するプログラム部品の記憶例を示す図。
【図29】プログラム部品記憶手段に記憶されるプログ
ラム部品(プログラムコードと属性情報)のデータ構造
例を示す図。
【図30】コーディング情報が表現している各概略処理
手順と、染色体ビット列との対応関係の例を示す図。
【図31】図27のウインドウに表示されている概略処
理手順と、図28に示したような部品ファイルに収めら
れているプログラム部品の情報から生成されるコーディ
ング情報の具体例を示す図。
【図32】交叉・突然変異操作部により交叉操作を施す
前の2つの染色体A、Bの具体例を示す図。
【図33】2つの染色体A、Bに対し交叉操作を施して
得られた染色体A’、B’の具体例を示す図。
【図34】突然変異操作を施す前の染色体の具体例を示
す図。
【図35】突然変異操作を施して得られた染色体の具体
例を示す図。
【符号の説明】
1…処理手順指定手段 2…部品選択手段 3…プログラム部品記憶手段 4…プログラム結合手段 5…プログラム評価手段
───────────────────────────────────────────────────── フロントページの続き (72)発明者 後藤 幸博 神奈川県横浜市磯子区新磯子町33番地 株 式会社東芝生産技術研究所内 (72)発明者 塚田 弘志 神奈川県横浜市磯子区新磯子町33番地 株 式会社東芝生産技術研究所内 (72)発明者 後藤 和久 神奈川県横浜市磯子区新磯子町33番地 株 式会社東芝生産技術研究所内 (72)発明者 遠藤 経一 神奈川県川崎市幸区柳町70番地 株式会社 東芝柳町工場内 (72)発明者 小野 明 神奈川県横浜市磯子区新磯子町33番地 株 式会社東芝生産技術研究所内

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 プログラム部品を組み合わせて所望のプ
    ログラムを合成するプログラム合成装置において、 予め分類されたプログラム部品を記憶する部品記憶手段
    と、 前記プログラム部品の分類に基づき所望のプログラムの
    概略処理手順を指定する処理手順指定手段と、 前記部品記憶手段に記憶されたプログラム部品から前記
    概略処理手順に対応するプログラム部品を選択する部品
    選択手段と、 前記部品選択手段で選択されたプログラム部品を結合し
    てプログラムを合成する合成手段と、 前記合成手段で合成されたプログラムの性能を評価する
    評価手段と、 を具備することを特徴とするプログラム合成装置。
  2. 【請求項2】 前記部品選択手段は、前記評価手段で得
    られた評価値を参照してプログラム部品を選択すること
    を特徴とする請求項1に記載のプログラム合成装置。
  3. 【請求項3】 前記評価手段でプログラムを評価する際
    の評価尺度を定義する手段をさらに具備することを特徴
    とする請求項1に記載のプログラム合成装置。
  4. 【請求項4】 プログラム部品を組み合わせて所望のプ
    ログラムを合成するプログラム合成装置において、 予め分類されたプログラム部品を記憶する部品記憶手段
    と、 予め指定された条件に従って、前記プログラム部品の分
    類に基づき所望のプログラムの概略処理手順を生成する
    処理手順生成手段と、 前記部品記憶手段に記憶されたプログラム部品から前記
    概略処理手順に対応するプログラム部品を選択する部品
    選択手段と、 前記部品選択手段で選択されたプログラム部品を結合し
    てプログラムを合成する合成手段と、 前記合成手段で合成されたプログラムの性能を評価する
    評価手段と、 を具備することを特徴とするプログラム合成装置。
  5. 【請求項5】 前記処理手順生成手段は、前記評価手段
    で得られた評価値を参照して概略処理手順を生成し、前
    記部品選択手段は前記評価値を参照してプログラム部品
    を選択することを特徴とする請求項4に記載のプログラ
    ム合成装置。
  6. 【請求項6】 前記評価手段でプログラムを評価する際
    の評価尺度を定義する手段をさらに具備することを特徴
    とする請求項4に記載のプログラム合成装置。
  7. 【請求項7】 前記プログラム部品の分類に基づき所望
    のプログラムの概略処理手順の全部あるいは一部を指定
    する処理手順指定手段をさらに具備することを特徴とす
    る請求項4に記載のプログラム合成装置。
  8. 【請求項8】 プログラム部品を組み合わせて所望のプ
    ログラムを合成するプログラム合成装置において、 予め分類されたプログラム部品を記憶する部品記憶手段
    と、 前記プログラム部品の分類に基づき所望のプログラムの
    概略処理手順を指定する処理手順指定手段と、 前記部品記憶手段に記憶されたプログラム部品から前記
    概略処理手順に対応するプログラム部品を、遺伝的アル
    ゴリズムに基づいて探索する部品探索手段と、 前記部品探索で探索されたプログラム部品を結合してプ
    ログラムを合成する合成手段と、 前記合成手段で合成されたプログラムの性能を評価する
    評価手段と、 を具備することを特徴とするプログラム合成装置。
  9. 【請求項9】 前記部品探索手段は、前記処理手順指定
    手段より与えられる概略処理手順に含まれる個々の概略
    処理の並びに従って、前記プログラム部品記憶手段から
    プログラム部品を選択して配列し、染色体を得ることを
    特徴とする請求項8に記載のプログラム合成装置。
  10. 【請求項10】 前記染色体は、実行順序を持った一連
    のプログラム部品の流れであり、前記部品探索手段によ
    り異なった配列方法で作られる複数の染色体は、染色体
    集団を構成することを特徴とする請求項9に記載のプロ
    グラム合成装置。
  11. 【請求項11】 前記染色体集団は、前記プログラム結
    合手段に供給され、当該プログラム結合手段は、個々の
    染色体についてプログラム部品間の引数対応を決定する
    ことを特徴とする請求項10に記載のプログラム合成装
    置。
  12. 【請求項12】 前記プログラム結合手段により引数対
    応を付られた染色体集団はプログラム評価手段に供給さ
    れ、当該プログラム評価手段は、個々の染色体をプログ
    ラムとして実行し、各々のプログラムの評価値を算出す
    ることを特徴とする請求項11に記載のプログラム合成
    装置。
  13. 【請求項13】 前記部品探索手段は、より良い評価値
    を得る可能性の高い染色体を交叉又は突然変異を用いて
    生成し直すことを特徴とする請求項9に記載のプログラ
    ム合成装置。
  14. 【請求項14】 予め分類された複数のプログラム部品
    のうち所定のプログラム部品を組み合わせて所望のプロ
    グラムを合成するプログラム合成方法において、 前記プログラム部品の分類に基づき所望のプログラムの
    概略処理手順を指定する指定ステップと、 前記複数のプログラム部品から前記概略処理手順に対応
    するプログラム部品を選択する部品選択ステップと、 前記部品選択ステップにおいて選択されたプログラム部
    品を結合してプログラムを合成する合成ステップと、 前記合成ステップにおいて合成されたプログラムの性能
    を評価して評価値を求め、その評価値に基づいて前記部
    品選択ステップ、合成ステップを繰り返す評価ステップ
    と、 を具備することを特徴とするプログラム合成方法。
  15. 【請求項15】 前記部品選択ステップは、前記評価ス
    テップで得られた評価値を参照してプログラム部品を選
    択することを特徴とする請求項14に記載のプログラム
    合成方法。
  16. 【請求項16】 予め分類された複数のプログラム部品
    のうち所定のプログラム部品を組み合わせて所望のプロ
    グラムを合成するプログラム合成方法において、 所望のプログラムの概略処理手順を所定の規則に従って
    生成する概略処理手順生成ステップと、 前記複数のプログラム部品から前記概略処理手順に対応
    するプログラム部品を選択する部品選択ステップと、 前記部品選択ステップにおいて選択されたプログラム部
    品を結合してプログラムを合成する合成ステップと、 前記合成ステップにおいて合成されたプログラムの性能
    を評価して表価値を求め、その表価値に基づいて前記部
    品選択ステップ、合成ステップを繰り返す評価ステップ
    と、 を具備することを特徴とするプログラム合成方法。
  17. 【請求項17】 前記処理手順生成ステップは、前記評
    価ステップで得られた評価値を参照して概略処理手順を
    生成し、前記部品選択ステップは前記評価値を参照して
    プログラム部品を選択することを特徴とする請求項16
    に記載のプログラム合成方法。
  18. 【請求項18】 予め分類された複数のプログラム部品
    のうち、所定のプログラム部品を組み合わせて所望のプ
    ログラムを合成するプログラム合成方法において、 前記プログラム部品の分類に基づき所望のプログラムの
    概略処理手順を指定する指定ステップと、 前記分類された複数のプログラム部品から前記概略処理
    手順に対応するプログラム部品を、遺伝的アルゴリズム
    に基づいて探索する部品探索ステップと、 この部品探索で探索されたプログラム部品を結合してプ
    ログラムを合成する合成ステップと、 前記合成ステップにおいて合成されたプログラムの性能
    を評価して表価値を求め、その表価値に基づいて前記部
    品選択ステップ、合成ステップを繰り返す評価ステップ
    と、 を具備することを特徴とするプログラム合成方法。
  19. 【請求項19】 前記部品探索ステップは、前記処理手
    順指定ステップにおいて指定された概略処理手順に含ま
    れる個々の概略処理の並びに従って、前記分類された複
    数のプログラム部品からプログラム部品を選択して配列
    し、染色体を得ることを特徴とする請求項18に記載の
    プログラム合成方法。
  20. 【請求項20】 前記染色体は、実行順序を持った一連
    のプログラム部品の流れであり、前記部品探索ステップ
    によって異なった配列方法で作られる複数の染色体は、
    染色体集団を構成することを特徴とする請求項19に記
    載のプログラム合成方法。
  21. 【請求項21】 前記染色体集団は、前記プログラム結
    合ステップに供給され、当該プログラム結合ステップに
    おいて、個々の染色体についてプログラム部品間の引数
    対応が決定されることを特徴とする請求項20に記載の
    プログラム合成方法。
  22. 【請求項22】 前記プログラム結合ステップにおいて
    引数対応が付られた染色体集団は前記評価ステップに供
    給され、当該評価ステップは、個々の染色体がプログラ
    ムとして実行し、各々のプログラムの評価値を算出する
    ことを特徴とする請求項21に記載のプログラム合成方
    法。
  23. 【請求項23】 前記部品探索ステップは、より良い評
    価値を得る可能性の高い染色体を交叉又は突然変異を用
    いて生成し直すことを特徴とする請求項19に記載のプ
    ログラム合成方法。
  24. 【請求項24】 予め分類された複数のプログラム部品
    のうち所定のプログラム部品を組み合わせて所望のプロ
    グラムを合成するプログラムコード手段が記録された、
    計算機により読み出し可能な記録媒体において、 前記プログラム部品の分類に基づき所望のプログラムの
    概略処理手順を指定させるインストラクション手段と、 前記複数のプログラム部品から前記概略処理手順に対応
    するプログラム部品を選択させるインストラクション手
    段と、 前記選択されたプログラム部品を結合してプログラムを
    合成させるインストラクション手段と、 前記合成されたプログラムの性能を評価して表価値を求
    め、その表価値に基づいて前記プログラム部品の選択、
    及びプログラム合成を繰り返させるインストラクション
    手段と、 を具備することを特徴とする計算機により読み出し可能
    な記憶媒体。
JP24909897A 1996-09-17 1997-09-12 プログラム合成装置及びプログラム合成方法 Expired - Fee Related JP3601949B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24909897A JP3601949B2 (ja) 1996-09-17 1997-09-12 プログラム合成装置及びプログラム合成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24535996 1996-09-17
JP8-245359 1996-09-17
JP24909897A JP3601949B2 (ja) 1996-09-17 1997-09-12 プログラム合成装置及びプログラム合成方法

Publications (2)

Publication Number Publication Date
JPH10149280A true JPH10149280A (ja) 1998-06-02
JP3601949B2 JP3601949B2 (ja) 2004-12-15

Family

ID=26537199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24909897A Expired - Fee Related JP3601949B2 (ja) 1996-09-17 1997-09-12 プログラム合成装置及びプログラム合成方法

Country Status (1)

Country Link
JP (1) JP3601949B2 (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002251603A (ja) * 2001-02-23 2002-09-06 Matsushita Electric Works Ltd 画像処理プログラム作成方法およびそのシステム
WO2004023295A1 (ja) * 2002-09-06 2004-03-18 Sony Corporation Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
JP2006099308A (ja) * 2004-09-29 2006-04-13 Hitachi Ltd コンポーネントベース・アプリケーション構築方法
JP2007128517A (ja) * 2005-11-01 2007-05-24 Fuji Xerox Co Ltd コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
JP2008250838A (ja) * 2007-03-30 2008-10-16 Kddi Corp ソフトウェア生成装置、方法、およびプログラム
US7596514B2 (en) 2000-07-21 2009-09-29 Ricoh Company, Ltd. Component management system and method
JP2010055640A (ja) * 2003-03-31 2010-03-11 Microsoft Corp ソフトウェアの動的な追加方法
US7823075B2 (en) 2002-09-06 2010-10-26 Sony Corporation GUI application development support device, GUI display device, and method, and computer program
JP2013534331A (ja) * 2010-06-30 2013-09-02 サーモ エレクトロン サイエンティフィック インストルメンツ リミテッド ライアビリティ カンパニー 分析計測のためのインテリジェントな多機能マクロ言語
JP2014238631A (ja) * 2013-06-06 2014-12-18 三菱電機株式会社 暗号モジュール生成装置
JP2015075876A (ja) * 2013-10-08 2015-04-20 キヤノン株式会社 設計支援装置、設計支援方法、及びプログラム
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2016062300A (ja) * 2014-09-18 2016-04-25 日本電気株式会社 ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム
JP2018010580A (ja) * 2016-07-15 2018-01-18 株式会社日立製作所 プログラム開発環境推薦システム及びその方法
JP2019061459A (ja) * 2017-09-26 2019-04-18 株式会社東芝 ソフトウェア作成システム
JP2020149683A (ja) * 2019-03-13 2020-09-17 株式会社日立製作所 画像解析プログラムの自動ビルドの方法およびシステム
JP2021114266A (ja) * 2020-01-21 2021-08-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
DE112021001800T5 (de) 2020-05-29 2023-02-16 Hitachi Astemo, Ltd. Prüfskripterzeugungssystem, prüfskripterzeugungsverfahren und elektronische steuervorrichtung

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7596514B2 (en) 2000-07-21 2009-09-29 Ricoh Company, Ltd. Component management system and method
JP2002251603A (ja) * 2001-02-23 2002-09-06 Matsushita Electric Works Ltd 画像処理プログラム作成方法およびそのシステム
WO2004023295A1 (ja) * 2002-09-06 2004-03-18 Sony Corporation Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
CN1585925B (zh) 2002-09-06 2010-05-26 索尼株式会社 图形用户界面应用程序开发支持设备和方法
US7823075B2 (en) 2002-09-06 2010-10-26 Sony Corporation GUI application development support device, GUI display device, and method, and computer program
US8074174B2 (en) 2002-09-06 2011-12-06 Sony Corporation GUI application development supporting apparatus, method, and computer program
JP2010055640A (ja) * 2003-03-31 2010-03-11 Microsoft Corp ソフトウェアの動的な追加方法
JP2006099308A (ja) * 2004-09-29 2006-04-13 Hitachi Ltd コンポーネントベース・アプリケーション構築方法
JP2007128517A (ja) * 2005-11-01 2007-05-24 Fuji Xerox Co Ltd コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
JP2008250838A (ja) * 2007-03-30 2008-10-16 Kddi Corp ソフトウェア生成装置、方法、およびプログラム
JP2013534331A (ja) * 2010-06-30 2013-09-02 サーモ エレクトロン サイエンティフィック インストルメンツ リミテッド ライアビリティ カンパニー 分析計測のためのインテリジェントな多機能マクロ言語
JP2014238631A (ja) * 2013-06-06 2014-12-18 三菱電機株式会社 暗号モジュール生成装置
JP2015075876A (ja) * 2013-10-08 2015-04-20 キヤノン株式会社 設計支援装置、設計支援方法、及びプログラム
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2016062300A (ja) * 2014-09-18 2016-04-25 日本電気株式会社 ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム
JP2018010580A (ja) * 2016-07-15 2018-01-18 株式会社日立製作所 プログラム開発環境推薦システム及びその方法
JP2019061459A (ja) * 2017-09-26 2019-04-18 株式会社東芝 ソフトウェア作成システム
JP2020149683A (ja) * 2019-03-13 2020-09-17 株式会社日立製作所 画像解析プログラムの自動ビルドの方法およびシステム
JP2021114266A (ja) * 2020-01-21 2021-08-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
DE112021001800T5 (de) 2020-05-29 2023-02-16 Hitachi Astemo, Ltd. Prüfskripterzeugungssystem, prüfskripterzeugungsverfahren und elektronische steuervorrichtung

Also Published As

Publication number Publication date
JP3601949B2 (ja) 2004-12-15

Similar Documents

Publication Publication Date Title
JP3601949B2 (ja) プログラム合成装置及びプログラム合成方法
US6191792B1 (en) Scheme for automatic data conversion definition generation according to data feature in visual multidimensional data analysis tool
JPH0877010A (ja) データ分析方法および装置
US20060004528A1 (en) Apparatus and method for extracting similar source code
WO2001067291A2 (en) Method, process and system for optimized outcome driven workflow synthesis and reduction
JP2004537811A (ja) 特許データベースから特許間の相互関係を分析し提供する方法
US7558803B1 (en) Computer-implemented systems and methods for bottom-up induction of decision trees
Collaris et al. StrategyAtlas: Strategy analysis for machine learning interpretability
JP6909596B2 (ja) 知識モデル構築システム及び知識モデル構築方法
KR102484180B1 (ko) 비구조적인 문서를 데이터베이스로 구축하는 방법 및 시스템
CN113379504A (zh) 一种商品信息搜索推荐方法、系统及计算机存储介质
CN115048490A (zh) 一种基于深度学习的云制造服务流程推荐方法
CN113204498A (zh) 针对闭源函数库生成模糊测试驱动器的方法和装置
US20060161569A1 (en) Method and system to identify records that relate to a pre-defined context in a data set
CN119066445B (zh) 一种职业技能人才劳务用工智能匹配方法、系统及平台
US4989162A (en) Method of using an accuracy valve in a conflict resolution of a forward inference
CN118536673A (zh) 一种预测未来技术热点的方法、装置、存储器和电子设备
CN118551769A (zh) 基于大语言模型的标签圈选方法、装置以及计算机设备
JP3772401B2 (ja) 文書分類装置
TWI891365B (zh) 資料集擴充支援裝置、資料集擴充支援方法及資料集擴充支援程式
JP4972997B2 (ja) 資産診断のためのプログラム解析方法
Gholami et al. Automatic generation of CEP rules using data analysis techniques and model-driven engineering
CN119940515B (zh) 一种基于深度学习的产业链知识图谱构建方法和系统
CN118820813B (zh) 基于深度学习模型的产品聚类分析方法
JP7706100B1 (ja) 情報処理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040802

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040813

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: 20040917

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040921

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees