Prologプログラム変換による手続き的知識の学習に関する研究
Project/Area Number |
60210006
|
Research Category |
Grant-in-Aid for Special Project Research
|
Allocation Type | Single-year Grants |
Research Institution | Yokohama National University |
Principal Investigator |
中川 裕志 横浜国立大学, 工, 助教授 (20134893)
|
Project Period (FY) |
1985
|
Project Status |
Completed (Fiscal Year 1985)
|
Budget Amount *help |
¥1,000,000 (Direct Cost: ¥1,000,000)
Fiscal Year 1985: ¥1,000,000 (Direct Cost: ¥1,000,000)
|
Keywords | PROLOG / プログラム変換 / 知識 / 学習 / プログラム合成 |
Research Abstract |
プログラミング容易な宣言的記述と、効率のよい手続き的記述のいずれも可能な論理型言語Prologで書かれたプログラムを対象として、効率化を目指したプログラム変換について検討した。既に昨年度の研究で、会話型のプログラム変換システムを開発したが、本年度は以下に述べるような機能の拡張を行なった。 1.一意展開:最も基本的な変換である展開(unfold)に関して展開結果が一意的である場合を探索して展開を自動的に進める一意展開を導入した。これは、実行時に条件分岐を生じない場合を予め抽出し、計算時間の短縮に効果を持つ。 2.変数構造の制限:展開結果が一意的でない場合も、各展開結果における変数の構造的な共通性を抽出し、これを制約条件として別の部分での一意展開を促進することができ、強力な変換操作である。 次に、上記の拡張されたプログラム変換システムを利用して、種々の変換を試み、変換戦略として重要な以下の知見を得た。 3.変数の値に関する発見的知識の必要性:例えば、appeid(A,nil,B)ならば当然A=Bだが、このことは変換により導出することができない。このような変換で導出することのできない発見的知識がいくつか明らかになった。これらは発見的知識のデータベースとして外部に置き、変換システムからは適宣参照して利用する方式を採った。 4.再計算の回避:効率化を促進する大きな要素として、同じ計算を再度行なう部分を抽出して、これらを1個に統合する方法が有力である。プログラムの字面上で同一のパターンが現れた場合は、自動的にこれを統合することができるようになった。一方、再計算を統合により回避する方法が必ずしも、変換の等価性を保証しない場合の分析も進んだ。逆に言えば、等価性をあえて捨てた場合の変換戦略の解明の系口が明らかになったといえる。
|
Report
(1 results)
Research Products
(5 results)