JPH05181651A - プログラム自動生成装置 - Google Patents

プログラム自動生成装置

Info

Publication number
JPH05181651A
JPH05181651A JP36073291A JP36073291A JPH05181651A JP H05181651 A JPH05181651 A JP H05181651A JP 36073291 A JP36073291 A JP 36073291A JP 36073291 A JP36073291 A JP 36073291A JP H05181651 A JPH05181651 A JP H05181651A
Authority
JP
Japan
Prior art keywords
design knowledge
specifications
design
partial
program
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
JP36073291A
Other languages
English (en)
Inventor
Hiroshi Takeuchi
寛 竹内
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP36073291A priority Critical patent/JPH05181651A/ja
Publication of JPH05181651A publication Critical patent/JPH05181651A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 設計知識を変換対象部分と変換対象にならな
い部分に分離することにより、変換途中の仕様を小さく
保ち検索時間を削減する。 【構成】 設計知識109の集まりから設計知識ベース
110を作る設計知識ベース生成手段106と、仕様1
08を入力し構文木形式に変換する仕様入力手段101
と、構文木形式の仕様の変換を制御する設計制御手段1
02とを備え、設計知識選択手段103により、設計知
識ベース110から、変換すべき部分仕様に適用する設
計知識を選択可能なときその部分仕様と設計知識を適合
性検査手段104に渡し、部分仕様と適用する設計知識
が適合可能であるとき仕様変換手段105に部分仕様と
適用する設計知識を渡して仕様変換処理を選択し、書き
換え関係のときに部分仕様を書き換え、置き換え手段に
より書き換え後の仕様と設計知識ベースに格納されてい
る置き換えデータを用いてプログラムを生成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラム自動生成装置
に関し、特に、構文木の形式に変換された入力仕様から
設計知識ベースを用いて目的とするプログラムに変換す
るプログラム自動生成装置に関する。
【0002】
【従来の技術】従来の構文木の形式に変換された入力仕
様から設計知識ベースを用いて目的とするプログラムに
変換するプログラム自動生成装置には、図8に示すよう
に、設計詳細化の過程を自動化することにより、自動的
にプログラムを生成しようとするシステムがある。
【0003】このような装置では、仕様入力手段201
は仕様206を入力し構文木の形式に変換し、設計制御
手段202は構文木形式の仕様の変換を制御し、仕様が
変換不能になるまで変換を繰り返し、変換不能になった
仕様を変換結果のプログラム208として出力する。設
計知識選択手段203は、いくつかのプログラム断片と
その間の関係を表す関係部から構成される設計知識の集
まりからなる設計知識ベース207から、変換すべき部
分仕様に適用する設計知識を選択可能なとき適合性検査
手段204にその部分仕様と設計知識を渡し選択可能な
設計知識が存在しないときその旨設計制御手段202に
通知する。
【0004】適合性検査手段204は、部分仕様と適用
する設計知識が適合するか否かを検査し、適合可能であ
るとき仕様変換手段205に部分仕様と適用する設計知
識を渡し、仕様変換手段205は、部分仕様と適用する
設計知識から適用する設計知識の関係部が書き換え関係
であるときに部分仕様を書き換える。
【0005】図9は設計知識選択手段203の動作を説
明するフローチャートである。設計知識選択手段203
は設計すべき仕様を受け取ると、ステップ601によっ
てその仕様に適用する知識ベース207を得る。ステッ
プ602によって設計すべき仕様に対して適用していな
い知識ベース207中の設計知識があるか検査する。適
用すべき設計知識がのこっているならばステップ603
により、設計知識を取り出し、この設計知識と設計すべ
き仕様との組を適合性検査手段204へ渡す。
【0006】ステップ605では、適合性検査手段20
4の結果が不適合でなければ、適合性検査手段204が
返却した変換済み仕様を返却値として設計制御手段20
2にもどり、適合性検査手段204の結果が不適合なら
ば、次の設計知識を得るためにステップ602へもど
る。ステップ602によって適用すべき設計知識がなか
ったとき、ステップ606を行なう。
【0007】ステップ606では、変換すべき仕様の子
どもの木(部分仕様)のうち、まだ設計知識選択手段2
03を適用していないものがないか検査する。まだ設計
知識選択手段203を適用していない部分仕様があるな
らば、その部分仕様をステップ607で取り出し、ステ
ップ608によって新たに設計知識選択手段203を起
動する。ここで、子どもの木あるいは部分仕様とは、設
計すべき仕様がファンクタ1(項1、項2、・・・ 、項
n)の形式のときの、項1、項2、・・・ 、項nのことで
ある。
【0008】ステップ609によりこの結果を評価し変
換不能であったならば、ステップ606にもどり、変換
されたならば、ステップ608の結果得られた変換済み
仕様を返却値として終了する。ステップ606でのこり
の部分仕様がない場合は、ステップ610で変換不能を
返却する。
【0009】
【発明が解決しようとする課題】ところで、この従来の
プログラム自動生成装置にあっては、設計知識選択手段
において変換途中の構文木形式の仕様から変換可能な部
分を選択する際に、部分仕様に対して新たに設計知識選
択手段を駆動し、変換可能な部分を探す。このとき変換
可能であるか否かを判定する適合性検査手段が何度も用
いられる。全ての変換可能部分仕様がなくなり変換が終
了するまでに用いられる適合性検査手段の適用回数は膨
大な数になる。この適合性検査手段は、変換対象の仕様
の部分仕様の個数が多くなれば多くなるほど、変換可能
な部分仕様を見つけ出すために適用される回数が増える
ことになる。
【0010】一方、仕様変換手段では、関係が書き換え
関係である場合に知識ベース中の設計知識の最初のプロ
グラム断片に適合した、部分仕様を二つ目のプログラム
断片に書き換える。したがって、書き換えられる部分仕
様に対して、新たに書き換えるプログラム断片が大きい
場合には書き換えて行くにつれて書き換え対象の仕様が
大きくなり変換対象の仕様の部分仕様の個数が多くな
る。特に、設計知識ベースを部品利用システムとして用
いる場合は、部品展開を指定する部分仕様に比べて書き
換えられるプログラム断片が非常に大きいことが多くな
る。
【0011】このように従来の技術では、設計知識によ
って仕様の書き換えが行なわれる間に仕様が大きくな
り、変換が終了するまでの処理時間が多くなってしまう
という問題がある。
【0012】本発明は、上記の問題点にかんがみてなさ
れたもので、仕様の変換が終了するまでの処理時間の短
縮を図ったプログラム自動生成装置の提供を目的とす
る。
【0013】
【課題を解決するための手段】上記目的を達成するため
本発明のプログラム自動生成装置は、設計知識を用いて
プログラムの仕様の変換を繰り返して目的とするプログ
ラムに変換するプログラム自動生成装置において、いく
つかのプログラム断片とその間の関係を表す関係部から
構成される設計知識の集まりから設計知識ベースを作る
設計知識ベース生成手段と、仕様を入力し構文木形式に
変換する仕様入力手段と、構文木形式の仕様の変換を制
御する設計制御手段と、上記設計知識ベース生成手段に
よって生成された設計知識ベースから、変換すべき部分
仕様に適用する設計知識を選択可能なときその部分仕様
と設計知識を選択する設計知識選択手段と、該選択され
た部分仕様と適用する設計知識が適合するか否かを検査
し、適合可能であるとき該部分仕様と適用する設計知識
を送出する適合性検査手段と、該送出された部分仕様と
適用する設計知識から仕様変換処理を選択し適用する設
計知識の関係部が書き換え関係であるときに部分仕様を
書き換える仕様変換手段と、書き換え後の仕様と設計知
識ベースに格納されている置き換えデータを用いて最終
的なプログラムを生成する置き換え手段とを備えた構成
としてある。
【0014】
【実施例】以下、本発明の実施例について図面を参照し
て説明する。本発明および従来の技術では仕様を記述す
る言語の構文は文脈自由文法定義されていると考えてい
る。また本実施例では仕様と最終的に出力するプログラ
ムと設計知識中のプログラム断片を表現する言語は、プ
ログラム断片をその値域とする変数を記述する構文とプ
ログラム断片を抽象的に表現する項を記述する構文とを
加えた構文によって定まる言語とする。項とはファンク
タ名の後ろに複数個の項を並べ括弧でくくった形式で、
ファンクタ名(項、・・・ )という形のものである。ファ
ンクタ名とは識別子である。文脈自由文法はBNFで記
述可能である。
【0015】図2で示されるBNFで定義された構文に
適合する言語記述x=y+zは、ファンクタ名assi
gnを持つ項記述、assign(“x”,add
(“y”,“z”))と考えることができる。一方、項
は、ファンクタ名をノードとして持ちそのノードからそ
の子どもを構文木に変換したものへのアークを張ったも
のに変換できる。たとえば項記述、assign
(“x”,add(“y”,“z”))は、図3に示す
木に変換できる。この手法により仕様記述言語で記述さ
れた任意の仕様を、構文木に変換することが可能とな
る。
【0016】図1は本発明の一実施例を示す全体構成図
である。図に示すプログラム自動生成装置において、1
06はいくつかのプログラム断片とその間の関係を表す
関係部から構成される設計知識の集まり109から設計
知識ベース110を作る設計知識ベース生成手段であ
る。101は仕様108を入力し構文木形式に変換する
仕様入力手段である。本実施例の仕様入力手段101は
仕様記述言語で記述された仕様108を入力し、上記に
示した手法により構文木に変換する。102は構文木形
式の仕様の変換を制御する設計制御手段である。
【0017】また、103は設計知識選択手段であり、
設計知識ベース生成手段106によって生成された設計
知識ベース110から、変換すべき部分仕様に適用する
設計知識を選択可能なときその部分仕様と設計知識を後
述の適合性検査手段104に渡す。適合性検査手段10
4は、部分仕様と適用する設計知識が適合するか否かを
検査し、適合可能であるとき後述の仕様変換手段105
に部分仕様と適用する設計知識を渡す。
【0018】仕様変換手段105は部分仕様と適用する
設計知識から仕様変換処理を選択し適用する設計知識の
関係部が書き換え関係であるときに部分仕様を書き換え
るものである。107は、書き換え後の仕様と設計知識
ベース110に格納されている置き換えデータ114を
用いて最終的なプログラムを生成する置き換え手段であ
る。
【0019】したがって、実施例に係るプログラム自動
生成装置によれば、設計知識ベース生成手段106は、
例えば、図4に示す設計知識を一つもつ設計知識の集ま
り109を入力すると、設計知識のプログラム断片2に
格納されたプログラム断片を表現する構文木中で、書き
換え対象となることがなくまた変数を含まない部分木を
抽出し知識ベース110を生成する。ここで書き換え対
象となることがないとは、その部分木が今変換仕様とし
ている設計知識の集まりによって、変換可能となる構造
を持っていないことである。
【0020】したがって設計知識ベース生成手段106
では、書き換え関係の場合は各設計知識のプログラム断
片1とマッチする構造を持たずかつ変数を持たない部分
木を抽出し置き換えデータ114を生成し、元の部分木
を置き換えデータへのタグにかえることによって設計知
識ベース110を生成する。例えば、図4に示す設計知
識の集まりから図5に示す設計知識が生成される。図5
のプログラム断片2の木の持つノードの数は、生成前の
プログラム断片と比べて非常に少なくなっていることが
わかる。
【0021】したがって、設計知識選択手段103にお
いて、従来の技術で述べた図9による変換可能部分木の
検査対象のノードがへり、本実施例では、変換が高速に
行われることになる。
【0022】本実施例の置き換え手段107は、変換不
能になった仕様を設計制御手段から受け取り、その仕様
中に含まれる置き換えデータへのタグを、設計知識ベー
ス110中の置き換えデータ114を参照して、置き換
えデータ114に置き換えることにより、最終的なプロ
グラムを生成する。例えば、図3に示す入力木を図5で
示す知識ベースを用いて変換すると、図6に示す仕様が
設計制御手段から出力され、置き換え手段107は図5
の設計知識ベースを用いて、図7に示すプログラムを生
成する。
【0023】
【発明の効果】以上説明したように本発明のプログラム
自動生成装置によれば、設計知識ベース生成手段によっ
て、設計知識を変換対象部分と変換対象にならない部分
に分離したことにより、変換途中の仕様を小さく保ち無
駄な検索時間をなくすることができる。さらに最終的な
変換結果に変換対象にならない部分をもどすことにより
従来の変換結果と同じ変換結果を得ることができるとい
う結果を有する。
【図面の簡単な説明】
【図1】本発明の実施例に係るプログラム自動生成装置
の全体構成を示す図である。
【図2】BNFで記述された構文の例を表す図である。
【図3】BNFで記述された構文によって記述された記
号列を木に変換した例を示す図である。
【図4】設計知識の集まりの例を示す図である。
【図5】図4で示す設計知識の集まりの例を、設計知識
ベース生成手段によって生成した設計知識ベースの例で
ある。
【図6】図3で示す木を図5で示す設計知識ベースによ
って変換した結果設計制御手段が出力する仕様を表す木
の例である。
【図7】図6で示す仕様を図5で示す設計知識ベースを
用いて、置き換え手段が生成したプログラムの例であ
る。
【図8】従来のプログラム自動生成装置の一例を示す図
である。
【図9】従来および実施例に係る設計知識選択手段の動
作を説明するフローチャートである。
【符号の説明】
101 仕様入力手段 102 設計制御手段 103 設計知識選択手段 104 適合性検査手段 105 仕様変換手段 106 設計知識ベース生成手段 107 置き換え手段 108 仕様 109 設計知識の集まり 110 設計知識ベース 111 設計知識 112 関係部 113 プログラム断片 114 置き換えデータ 115 プログラム

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 設計知識を用いてプログラムの仕様の変
    換を繰り返して目的とするプログラムに変換するプログ
    ラム自動生成装置において、いくつかのプログラム断片
    とその間の関係を表す関係部から構成される設計知識の
    集まりから設計知識ベースを作る設計知識ベース生成手
    段と、仕様を入力し構文木形式に変換する仕様入力手段
    と、構文木形式の仕様の変換を制御する設計制御手段
    と、上記設計知識ベース生成手段によって生成された設
    計知識ベースから、変換すべき部分仕様に適用する設計
    知識を選択可能なときその部分仕様と設計知識を選択す
    る設計知識選択手段と、該選択された部分仕様と適用す
    る設計知識が適合するか否かを検査し、適合可能である
    とき該部分仕様と適用する設計知識を送出する適合性検
    査手段と、該送出された部分仕様と適用する設計知識か
    ら仕様変換処理を選択し適用する設計知識の関係部が書
    き換え関係であるときに部分仕様を書き換える仕様変換
    手段と、書き換え後の仕様と設計知識ベースに格納され
    ている置き換えデータを用いて最終的なプログラムを生
    成する置き換え手段とを備えたことを特徴とするプログ
    ラム自動生成装置。
JP36073291A 1991-12-27 1991-12-27 プログラム自動生成装置 Pending JPH05181651A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36073291A JPH05181651A (ja) 1991-12-27 1991-12-27 プログラム自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP36073291A JPH05181651A (ja) 1991-12-27 1991-12-27 プログラム自動生成装置

Publications (1)

Publication Number Publication Date
JPH05181651A true JPH05181651A (ja) 1993-07-23

Family

ID=18470680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36073291A Pending JPH05181651A (ja) 1991-12-27 1991-12-27 プログラム自動生成装置

Country Status (1)

Country Link
JP (1) JPH05181651A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015099008A1 (ja) * 2013-12-27 2015-07-02 株式会社おおとり コンピュータプログラム生成装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015099008A1 (ja) * 2013-12-27 2015-07-02 株式会社おおとり コンピュータプログラム生成装置

Similar Documents

Publication Publication Date Title
JPH04280320A (ja) プログラム自動生成装置
US6173245B1 (en) Programmable logic array device design using parameterized logic modules
CN107220096A (zh) 一种json数据解析方法及装置
CN111694547A (zh) 一种基于数据状态变化的自动编码数据处理应用设计工具
JPH05181651A (ja) プログラム自動生成装置
JP5041990B2 (ja) ソフトウェア部品抽出支援装置
CN114741993A (zh) 一种基于脚本的数据流图生成方法及装置
JP3759630B2 (ja) スパイラル型オブジェクト指向ソフトウェアの開発支援システム
JPH08129483A (ja) イベント駆動型プロセス制御装置
JPH0528088A (ja) ハードウエア構成情報の自動作成方法
JPH08272622A (ja) プログラム変換装置
JP2504614B2 (ja) ディジタルフィルタ合成装置とディジタルフィルタ合成方法
JP3003459B2 (ja) プログラム作成支援装置
CN116579440A (zh) 一种机器学习模型通用部署方法
JP2000207188A (ja) プログラム自動生成装置、プログラム自動生成方法および記録媒体
JP2001282520A (ja) プログラム作成方法、プログラム作成装置およびプログラム作成用記録媒体
JP2861630B2 (ja) 接続構造解析器
CN117850757A (zh) 一种用于中后台可视化复杂表单快速动态生成方法
JPH05127885A (ja) 処理フロー図変換方式
CN117827171A (zh) 一种通过jsonSchema文件生成项目源码的方法及装置
JP2724241B2 (ja) ブロック図部品処理機能付きプログラム自動生成装置
CN116820428A (zh) 一种反序列化代码生成方法及装置
JP3087699B2 (ja) 定型情報簡易入力システム及び定型情報簡易入力方法
Steensgaard-Madsen The three parts are interconnected by a main program. Data flow between the modules without any of the three parts be-ing aware of the internal type structure defined by the other two. Also the main program is completely independent of such definitions. For example, only the i/o-module depends on
JPH02159629A (ja) 計算機言語翻訳方式