JPH01191233A - プログラム自動生成方式 - Google Patents
プログラム自動生成方式Info
- Publication number
- JPH01191233A JPH01191233A JP1445788A JP1445788A JPH01191233A JP H01191233 A JPH01191233 A JP H01191233A JP 1445788 A JP1445788 A JP 1445788A JP 1445788 A JP1445788 A JP 1445788A JP H01191233 A JPH01191233 A JP H01191233A
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- prototype
- macro
- procedure
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、計算処理システムを用いて計算機プログラム
開発を支援する方式に関する。
開発を支援する方式に関する。
プログラム部品をライブラリとして蓄え、利用するもの
として、例えば、日立評論Vo 1.68゜Nn5.r
システム開発支援ソフトウェア“EAGLE”」に述べ
られているような、EAGLEの部品ライブラリ管理機
能がある。
として、例えば、日立評論Vo 1.68゜Nn5.r
システム開発支援ソフトウェア“EAGLE”」に述べ
られているような、EAGLEの部品ライブラリ管理機
能がある。
上記従来例では、「併合する」「整列する」等といった
大きな機能によって分類した部品原型(従来例では「プ
ログラムパターン」と呼んでいる)を用い、別に用意し
たデータ定義と組み合わせてプログラム生成を行ってい
る。従って、データ(処理対象情報)と手続きとが独立
のプログラム構成要素となるため、理解性が劣り、また
、保守時・拡張時に変更箇所が分散してしまうという問
題があった。この結果、互いに整合のとれない方法でデ
ータの更新や参照を行ってしまうなどの誤りが、保守・
拡張作業の際に入り込みやすかった。
大きな機能によって分類した部品原型(従来例では「プ
ログラムパターン」と呼んでいる)を用い、別に用意し
たデータ定義と組み合わせてプログラム生成を行ってい
る。従って、データ(処理対象情報)と手続きとが独立
のプログラム構成要素となるため、理解性が劣り、また
、保守時・拡張時に変更箇所が分散してしまうという問
題があった。この結果、互いに整合のとれない方法でデ
ータの更新や参照を行ってしまうなどの誤りが、保守・
拡張作業の際に入り込みやすかった。
上記の問題を解決するため、データ(処理対象情報)と
手続きとが関連を持った部品原型を登録できるようにし
た。また、複雑な構造のデータを扱うプログラムを自動
生成するために、型構成子部品原型をもとにして、単純
な構造のデータを扱うプログラムからより複雑な構造の
データを扱うプログラムを合成する手段を与えた。
手続きとが関連を持った部品原型を登録できるようにし
た。また、複雑な構造のデータを扱うプログラムを自動
生成するために、型構成子部品原型をもとにして、単純
な構造のデータを扱うプログラムからより複雑な構造の
データを扱うプログラムを合成する手段を与えた。
ここで、上記「部品原型」とは、処理対象名、データ型
等をマクロ化したプログラムの雛型をいう。また、「型
構成子部品原型」とは処理対象データの構成要素をマク
ロ化し、処理対象データを操作する手続きにおいても、
該構成要素を操作するべき部分をマクロ化した部品原型
をいう。
等をマクロ化したプログラムの雛型をいう。また、「型
構成子部品原型」とは処理対象データの構成要素をマク
ロ化し、処理対象データを操作する手続きにおいても、
該構成要素を操作するべき部分をマクロ化した部品原型
をいう。
処理対象情報と、それに対する手続きとを組にし、処理
対象情報に対する操作を限定することによって、予想外
のところで処理対象情報が書き換えられたり、不適切な
方法での参照や更新が行われるなどの誤りが保守・拡張
時に入り込む余地が少なくなる。但し、このようなプロ
グラム部品だけでは複雑な構造のデータを扱うプログラ
ムを簡単に生成することができない。型構成子部品原型
をもとにして、単純な構造のデータを扱うプログラムか
らより複雑な構造のデータを扱うプログラムを合成する
手段を与えることができる。
対象情報に対する操作を限定することによって、予想外
のところで処理対象情報が書き換えられたり、不適切な
方法での参照や更新が行われるなどの誤りが保守・拡張
時に入り込む余地が少なくなる。但し、このようなプロ
グラム部品だけでは複雑な構造のデータを扱うプログラ
ムを簡単に生成することができない。型構成子部品原型
をもとにして、単純な構造のデータを扱うプログラムか
らより複雑な構造のデータを扱うプログラムを合成する
手段を与えることができる。
以下、本発明によるプログラム自動生成方式を図1〜1
0を用いて説明する6 第2図は、本発明を適用した典型的な例について、その
利用形態を示したものである。
0を用いて説明する6 第2図は、本発明を適用した典型的な例について、その
利用形態を示したものである。
第2図において、21は部品生成のために必要な指示を
与え、また、処理の状況等を表示するための入出力装置
、22は処理装置、23は部品原型を保存しておくため
の記憶装置、24は生成されたプログラム部品を出力す
るための記憶装置である。
与え、また、処理の状況等を表示するための入出力装置
、22は処理装置、23は部品原型を保存しておくため
の記憶装置、24は生成されたプログラム部品を出力す
るための記憶装置である。
第6図は、プログラム自動生成方式を用いてプログラム
を生成する典型的な例を示す図、第3図はプログラム自
動生成の処理の流れを示す図である。
を生成する典型的な例を示す図、第3図はプログラム自
動生成の処理の流れを示す図である。
部品原型を変形するためのプログラム作成者からの指示
は、第6図の例では、10のように、入出力装置21か
ら部品原型名及び部品原型中に現れるマクロの値を指定
することにより与えられる。
は、第6図の例では、10のように、入出力装置21か
ら部品原型名及び部品原型中に現れるマクロの値を指定
することにより与えられる。
第4図に、生成パラメーター獲得(31)の詳細な処理
の流れを示す。また、第5図に、生成パラメーター獲得
のための画面の様子を示す。
の流れを示す。また、第5図に、生成パラメーター獲得
のための画面の様子を示す。
生成パラメーターは、具体的にはマクロの値という形で
与えられるが、一部又は全部を予めファイル(以下「生
成パラメーターファイル」という)に保存しておき、生
成パラメーターファイルを援用することもできる。典型
的には、複数個の部品を生成しようとする際、共通に与
えるべきマクロ値をその都度入力するという手間を省く
ために利用できる。生成パラメーターファイルの指定が
あれば、それを参照する(41)。
与えられるが、一部又は全部を予めファイル(以下「生
成パラメーターファイル」という)に保存しておき、生
成パラメーターファイルを援用することもできる。典型
的には、複数個の部品を生成しようとする際、共通に与
えるべきマクロ値をその都度入力するという手間を省く
ために利用できる。生成パラメーターファイルの指定が
あれば、それを参照する(41)。
次に、指定された部品ファイルを調べ、必要なマクロの
一覧表を作る。この際、マクロ値がわかっているものが
あれば埋めて、第5図に示すような形式で画面に表示し
、まだ埋まっていないマクロ値の指定を促す(42,4
4)。
一覧表を作る。この際、マクロ値がわかっているものが
あれば埋めて、第5図に示すような形式で画面に表示し
、まだ埋まっていないマクロ値の指定を促す(42,4
4)。
マクロ値の入力の後、妥当性の検査を行い、正しければ
マクロの一覧表に埋める。妥当性の検査とは、例えば、
プログラム言語で許容されていない特殊文字の入力を排
除する、などである。
マクロの一覧表に埋める。妥当性の検査とは、例えば、
プログラム言語で許容されていない特殊文字の入力を排
除する、などである。
マクロ値が全部埋まるまで44及び45の処理を繰り返
すことにより(43)、31の生成パラメーター獲得が
完了する。
すことにより(43)、31の生成パラメーター獲得が
完了する。
生成パラメーター獲得が終わると、部品原型ファイルを
読み込み(33)、マクロの置換を行ってファイルに出
力する(34)。
読み込み(33)、マクロの置換を行ってファイルに出
力する(34)。
典型的な例では、第6図の11のように、部品原型中の
、”$(<マクロ名〉)″の形式の部分がマクロである
。この部分を、生成パラメーター獲得により作成された
マクロ表に従って置換していく。また、上記の例では、
%”で始まる@語によって、部品原型を構成する節を示
している。
、”$(<マクロ名〉)″の形式の部分がマクロである
。この部分を、生成パラメーター獲得により作成された
マクロ表に従って置換していく。また、上記の例では、
%”で始まる@語によって、部品原型を構成する節を示
している。
節については後述するが、該鍵語は、生成されるプログ
ラムには残らない。
ラムには残らない。
以上、請求の範囲第1項のプログラム自動生成方式の実
施例を示した。
施例を示した。
プログラム自動生成方式では、上述のように、予め部品
原型を用意しておく必要がある。
原型を用意しておく必要がある。
次に、部品原型の構成を述べる。典型的な例では、部品
原型はいくつかの節と型構成子記述文とから成る。
原型はいくつかの節と型構成子記述文とから成る。
対象節は、プログラムが処理を施す対象となる情報に対
応した、データ又は型の宣言を書く部分である。手続き
節は、実際の処理記述の部分である。
応した、データ又は型の宣言を書く部分である。手続き
節は、実際の処理記述の部分である。
第1図に、型構成子部品原型及び基底部品原型を用いた
プログラム生成の様子を示す。
プログラム生成の様子を示す。
第1図において、201は型構成子部品原型、202は
基底部品原型を示す。また、203は、201と202
をもとに、生成されたプログラムである。
基底部品原型を示す。また、203は、201と202
をもとに、生成されたプログラムである。
第1図のように、生成系は、通常のマクロ展開のほか、
型槽成子部品原型201の2つの”%typecons
t”の部分に基底部品原型の適当な部分を埋め込む。但
し、基底部品原型にある手続きを呼び出す形式を記述し
た部分は、−度手続き呼び出しの形式に展開し、次に、
手続きをインライン展開する。
型槽成子部品原型201の2つの”%typecons
t”の部分に基底部品原型の適当な部分を埋め込む。但
し、基底部品原型にある手続きを呼び出す形式を記述し
た部分は、−度手続き呼び出しの形式に展開し、次に、
手続きをインライン展開する。
第7図は型構成子部品原型の例、第8図は基底部品原型
の例を示す。また、第9図は、これらの部品原型を用い
てプログラムを生成するための生成パラメーターの例を
示す。第10図は生成されたプログラムを示す。
の例を示す。また、第9図は、これらの部品原型を用い
てプログラムを生成するための生成パラメーターの例を
示す。第10図は生成されたプログラムを示す。
型構成子部品原型は、第7図のような構成をとる。対象
節には処理対象データの宣言を記述するが、該データを
構成する要素の一部を、%typeconst”とのみ
書いて、具体的な形を示さないでおく。手続き節には、
対象節に記述した処理対象データを操作する手続きを記
述するが、%typeconst”とした要素を操作す
る部分は、該要素を操作する、基底部品原型にある手続
きを呼び出す形式を記述しておく。
節には処理対象データの宣言を記述するが、該データを
構成する要素の一部を、%typeconst”とのみ
書いて、具体的な形を示さないでおく。手続き節には、
対象節に記述した処理対象データを操作する手続きを記
述するが、%typeconst”とした要素を操作す
る部分は、該要素を操作する、基底部品原型にある手続
きを呼び出す形式を記述しておく。
基底部品原型は、第8図のような構成をとる。
対象節には、より複雑な構造のデータの一要素として埋
め込むときの形式で変数の宣言を行う。典型的な例では
、構造体の要素として該変数を記述するときの書き方に
なる。手続き節には、対象節に記述したものと同じ型の
変数を引数として受けとって処理する手続きを記述する
。
め込むときの形式で変数の宣言を行う。典型的な例では
、構造体の要素として該変数を記述するときの書き方に
なる。手続き節には、対象節に記述したものと同じ型の
変数を引数として受けとって処理する手続きを記述する
。
第9図のような生成パラメーターを与えると、生成系は
まず、91の記述に従って、”Frame″′という部
品原型を検索する。第7図の部品原型は、75が部品原
型名を宣言しており、これが”Frame”という名前
で一致しているので、生成系はこれをもとに生成処理を
始める。
まず、91の記述に従って、”Frame″′という部
品原型を検索する。第7図の部品原型は、75が部品原
型名を宣言しており、これが”Frame”という名前
で一致しているので、生成系はこれをもとに生成処理を
始める。
71は、対象節の中にある%typeconst”であ
る。そこで、基底部品原型の検索を始める。92゜93
は基底部品原型の名前の指定である。一方、第8図の2
つの基底部品原型は、それぞれ”5TRING”、”P
O8ITION”という名前であることが、81.82
の記述かられかる。そこで、この2つの基底部品原型の
対象節の内容(83,84)を71に順に埋め込む。こ
の際、基底部品原型に対する生成パラメーターは、95
.96で指定されているものを採用する。
る。そこで、基底部品原型の検索を始める。92゜93
は基底部品原型の名前の指定である。一方、第8図の2
つの基底部品原型は、それぞれ”5TRING”、”P
O8ITION”という名前であることが、81.82
の記述かられかる。そこで、この2つの基底部品原型の
対象節の内容(83,84)を71に順に埋め込む。こ
の際、基底部品原型に対する生成パラメーターは、95
.96で指定されているものを採用する。
72は、手続き節の中の%typeconst”である
。
。
2つの基底部品原型について順次、手続き呼び出しの文
を生成する。72において、” $ $ (OBJ)
”は、マクロ展開において、基底部品原型に対して与え
られたマクロ値を優先的に使うことを指示するものであ
る。従って、72は、” text−clear(sp
ctbl [i ] 、 text) ; ”、” p
osition−clear(spctbl [iコ、
position) ;”となる。このままでは手
続き呼出しの文であるから、呼び出されて実際の処理を
行うプログラムを作る必要があるが、それに代えて、基
底部品原型の該当手続き(85,86)にマクロ展開を
施したプログラムをインライン展開する。
を生成する。72において、” $ $ (OBJ)
”は、マクロ展開において、基底部品原型に対して与え
られたマクロ値を優先的に使うことを指示するものであ
る。従って、72は、” text−clear(sp
ctbl [i ] 、 text) ; ”、” p
osition−clear(spctbl [iコ、
position) ;”となる。このままでは手
続き呼出しの文であるから、呼び出されて実際の処理を
行うプログラムを作る必要があるが、それに代えて、基
底部品原型の該当手続き(85,86)にマクロ展開を
施したプログラムをインライン展開する。
73も同様であるが、ここは74の11%1oop”に
より繰返しの中にある部分と指定されているので、2つ
の基底部品原型について、別々に展開する。
より繰返しの中にある部分と指定されているので、2つ
の基底部品原型について、別々に展開する。
以上の処理により、第10図のプログラムが生成される
。
。
第7図の76に基づいて101が生成され、%typa
const”が、基底部品原型の83.84で置き換え
られている。また、77に基づいて102が、78に基
づいて103と104が生成されている。77のうち、
72の部分は、基底部品原型に基づくインライン展開の
結果、105及び106のように展開されている。同様
に、73の部分は103.104になる。
const”が、基底部品原型の83.84で置き換え
られている。また、77に基づいて102が、78に基
づいて103と104が生成されている。77のうち、
72の部分は、基底部品原型に基づくインライン展開の
結果、105及び106のように展開されている。同様
に、73の部分は103.104になる。
以上のように、本実施例によると、複雑な構造のデータ
を扱うプログラムを、簡単な構造のデータを扱うプログ
ラムから容易に合成することができるという効果がある
。
を扱うプログラムを、簡単な構造のデータを扱うプログ
ラムから容易に合成することができるという効果がある
。
本発明によれば、理解性・保守性・信頼性が高く、人手
による修正を施さずに使えるプログラムを自動生成でき
るので、ソフトウェア生産性を大幅に向上させることが
できる。また、複雑な構造のデータを扱うプログラムを
容易に自動生成できる。
による修正を施さずに使えるプログラムを自動生成でき
るので、ソフトウェア生産性を大幅に向上させることが
できる。また、複雑な構造のデータを扱うプログラムを
容易に自動生成できる。
第1図は本発明の実施例において、型構成子部品原型及
び基底部品原型を用いたプログラム生成の様子を示す説
明図である。第2図は本発明を実施せしめる装置構成を
示すブロック図である。第3図はプログラム自動生成の
処理の流れを示す図である。第4図は生成パラメーター
獲得の詳細な処理の流れを示す図である。第5図は生成
パラメーター獲得のための画面の様子を示す図である。 第6図はプログラム自動生成系を用いてプログラムを生
成する典型的な例を示す説明図である。第7図は型構成
子部品原型の例示図、第8図は基底部品原型の例示図で
ある。第9図は、第7図、第8図の部品原型を用いてプ
ログラムを生成するための生成パラメーターの例示図で
ある。第10図は第7図、第8図、第9図に基づいて生
成されたプログラムの例示図である。 21・・・入出力装置、22・・・処理装置、23・・
・記憶装置(部品原型ライブラリ)、24・・・記憶装
置(プログラム部品出力)、201・・・型構成子部品
原型、202・・・基底部品原型、203・・・201
と労・fil 1′卯lに (悠 茅 1 図 (”fi1m氏子婢晶社)(↓太番下品パ)第9 図 第 2 図 笈 第 5 凶 第 3 図 第 4 図 第7 図 ゴ5
び基底部品原型を用いたプログラム生成の様子を示す説
明図である。第2図は本発明を実施せしめる装置構成を
示すブロック図である。第3図はプログラム自動生成の
処理の流れを示す図である。第4図は生成パラメーター
獲得の詳細な処理の流れを示す図である。第5図は生成
パラメーター獲得のための画面の様子を示す図である。 第6図はプログラム自動生成系を用いてプログラムを生
成する典型的な例を示す説明図である。第7図は型構成
子部品原型の例示図、第8図は基底部品原型の例示図で
ある。第9図は、第7図、第8図の部品原型を用いてプ
ログラムを生成するための生成パラメーターの例示図で
ある。第10図は第7図、第8図、第9図に基づいて生
成されたプログラムの例示図である。 21・・・入出力装置、22・・・処理装置、23・・
・記憶装置(部品原型ライブラリ)、24・・・記憶装
置(プログラム部品出力)、201・・・型構成子部品
原型、202・・・基底部品原型、203・・・201
と労・fil 1′卯lに (悠 茅 1 図 (”fi1m氏子婢晶社)(↓太番下品パ)第9 図 第 2 図 笈 第 5 凶 第 3 図 第 4 図 第7 図 ゴ5
Claims (1)
- 【特許請求の範囲】 1、計算処理システムを用いて計算機プログラム開発を
支援するシステムにおいて、処理対象名、データ型等を
マクロ化したプログラムの雛型(以下「部品原型」とい
う)を予め登録しておき、プログラム作成者の指示に従
つて実際の処理対象名、データ型等で部品原型中のマク
ロ部分を置換すること(以下「マクロ展開」という)に
よりプログラムに変形する手段を有することを特徴とす
るプログラム自動生成方式。 2、処理対象データを、より複雑な構造のデータの一要
素として埋め込むときの形式で宣言し、該処理対象デー
タと同じ型のデータを引数として受けとつて処理する手
続きを記述した部品原型(以下「基底部品原型」という
)を登録する機能と、処理対象データの構成要素をマク
ロ化し、処理対象データを操作する手続きにおいても、
該構成要素を操作するべき部分をマクロ化した部品原型
(以下「型構成子部品原型」という)を登録する機能と
、マクロ展開と同時に基底部品原型の内容を型構成子部
品原型に埋め込み、インライン展開する機能を有するこ
とにより、型構成子部品原型をもとにしてプログラムを
生成する際に、処理対象の構成要素部分に埋め込む基底
部品原型を指定することにより複雑な構造のデータを扱
うプログラムを生成できることを特徴とする、特許請求
の範囲第1項記載のプログラム自動生成方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1445788A JPH01191233A (ja) | 1988-01-27 | 1988-01-27 | プログラム自動生成方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1445788A JPH01191233A (ja) | 1988-01-27 | 1988-01-27 | プログラム自動生成方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH01191233A true JPH01191233A (ja) | 1989-08-01 |
Family
ID=11861573
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1445788A Pending JPH01191233A (ja) | 1988-01-27 | 1988-01-27 | プログラム自動生成方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH01191233A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03214234A (ja) * | 1990-01-18 | 1991-09-19 | Matsushita Electric Ind Co Ltd | ソフトウェア自動生成装置 |
| JP2002157118A (ja) * | 2000-09-06 | 2002-05-31 | Ns Solutions Corp | プログラム生成支援装置、プログラム生成方法、記録媒体およびプログラム |
| JP2008159074A (ja) * | 2008-02-04 | 2008-07-10 | Nec Corp | プログラム生成システムおよび方法 |
-
1988
- 1988-01-27 JP JP1445788A patent/JPH01191233A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03214234A (ja) * | 1990-01-18 | 1991-09-19 | Matsushita Electric Ind Co Ltd | ソフトウェア自動生成装置 |
| JP2002157118A (ja) * | 2000-09-06 | 2002-05-31 | Ns Solutions Corp | プログラム生成支援装置、プログラム生成方法、記録媒体およびプログラム |
| JP2008159074A (ja) * | 2008-02-04 | 2008-07-10 | Nec Corp | プログラム生成システムおよび方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5161211A (en) | Method and system of specification processing | |
| JPS63181033A (ja) | プログラム自動生成方式 | |
| JP2005515518A (ja) | レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム | |
| JP5147240B2 (ja) | リバーシブルなデザイン・ツリーの変換のための方法とシステム | |
| JP3625084B2 (ja) | ソフトウエア部品の再利用システム | |
| JPH06348766A (ja) | ツール組み込み方法及び装置 | |
| CN113743071A (zh) | 一种web端确定pdf发票模板的方法及系统 | |
| JP2609820B2 (ja) | プログラム管理方法 | |
| JPH04140834A (ja) | プログラム生成方法およびそのための仕様入力方法 | |
| JPH0969041A (ja) | ソフトウェア部品の作成支援方法 | |
| JPH07160536A (ja) | 対話型システムのプログラムテスト支援装置 | |
| TW552557B (en) | Automatic program generating system and the method thereof | |
| CN121900796A (zh) | 一种软件包同步方法、装置及程序项目同步方法 | |
| CN118034658A (zh) | 一种基于优化设计工作流中计算构件协同的建模方法 | |
| André et al. | The Bosco Project-A JMI-Compliant Template-based Code Generator. | |
| JPH01282651A (ja) | 網羅度管理のための制御項目自動管理方式 | |
| JPH07191716A (ja) | 制御装置 | |
| JPH02100129A (ja) | 設計仕様処理方法 | |
| CN115686501A (zh) | 一种机载嵌入式软件可视化集成方法 | |
| JPH06266545A (ja) | Gui部品ライブラリ開発支援装置 | |
| JPH04190423A (ja) | 機能別ポインタを用いた情報管理支援装置 | |
| JPH04330521A (ja) | クロスリファレンスリスト生成方式 | |
| JPS60178535A (ja) | 処理の実行定義形コマンド方式 | |
| JPH03251961A (ja) | 論理シミュレーション回路展開方式 | |
| JPS63220367A (ja) | 木構造チヤ−ト作成装置 |