特許
J-GLOBAL ID:200903021850937608

プログラム自動合成方法およびその装置

発明者:
出願人/特許権者:
代理人 (1件): 境 廣巳
公報種別:公開公報
出願番号(国際出願番号):特願平8-090128
公開番号(公開出願番号):特開平9-258970
出願日: 1996年03月19日
公開日(公表日): 1997年10月03日
要約:
【要約】【課題】 書き換え規則を使い、木構造で表現されるプログラム仕様の変換を繰り返してプログラム合成する際の、書き換え規則の選択に要するコストを低減する。【解決手段】 書き換え規則コンパイル部15は、書き換え規則集合24を入力して、左辺部に定義された部分木の最外部関数記号(最も根に近い関数記号)が同一である書き換え規則のグループ毎に1つの書き換え関数を生成する。このとき、或る書き換え規則の適用後に生成される木構造が、他の書き換え規則によって書き換えられる可能性がある場合、書き換え規則を再度選択することなく直接書き換えられるように該当する書き換え規則を直接呼び出すような書き換え関数を生成する。書き換え装置12はプログラム仕様22に対して最左最内戦略に基づいて探索した変換対象部分木の構造を引数にしてその部分木の最外部関数記号に対応する書き換え関数を呼び出し、その返却される変換後の部分木の構造に書き換える。
請求項(抜粋):
左辺部にプログラム仕様中の変換を行う部分木の構造を、右辺部にその部分木の変換後の構造をそれぞれ定義した書き換え規則の集合を用いて、関数記号を節とする木構造で表現されたプログラム仕様の変換を繰り返してプログラムを生成するプログラム自動合成方法において、書き換え規則の集合を入力し、左辺部に定義された部分木の最外部関数記号が同一である書き換え規則のグループ毎に、呼び出し元から引数で与えられる変換対象部分木構造に基づき当該グループの何れの書き換え規則の左辺部が変換対象部分木とマッチするかを判断し、且つ、マッチする左辺部に対応する右辺部に定義された部分木中に自グループまたは他グループの書き換え規則の左辺部に定義された部分木の最外部関数記号が存在するときは当該右辺部の定義に基づく変換後の部分木の構造を引数として当該存在した最外部関数記号に対応する書き換え関数を呼び出してその返却値を呼び出し元に返却し、そのような最外部関数記号が存在しないときは当該右辺部の定義に基づく変換後の部分木の構造を返却値として呼び出し元に返却する書き換え関数を生成するステップと、変換対象とするプログラム仕様に対して最左最内戦略に基づいて探索した変換対象部分木の構造を引数にしてその部分木の最外部関数記号に対応する書き換え関数を呼び出し、その返却される変換後の部分木の構造に基づき前記変換対象部分木の書き換えを行う処理を、変換可能な部分木が無くなるまで繰り返すステップとを含むことを特徴とするプログラム自動合成方法。

前のページに戻る