研究概要 |
本年度は、属性文法にもとづくソフトウェア自動生成システムの基本設計およびプロトタイプ作成、属性文法型ソフトウェア仕様記述言語AG、AG+の設計、仕様記述からのソフトウェア生成アルゴリズムの研究などを行い、ほぼ当初の目的を達成した。仕様記述言語AGは属性文法にもとづく関数型言語であり、対応にもとづく関数記述によりシステムを明確かつ柔軟に記述することができる。AG+はこれに加えてオブジェクト指向を導入したものであり、属性文法本来のデータ構造にもとづくルール的記述,関数的記述のみでなく、動的システムの記述が可能である。この言語を用いてUnixファイルシステムの記述を行い、この言語のソフトウェア仕様記述言語としての有効性を確認した。 本ソフトウェア自動生成システムは、仕様作成ツールとしてのエディタ,仕様テストツールとしのインタプリタ,デバッガー,ソフトウェア生成ツールとしてのコンパイラ,および検証システムから構成されている。本システムのプロトタイプ(AG用)の構築がほぼ完了している。エディタはAGの属性文法による記述から Cornell Synthesizer によって自動生成したものである。この記述の過程からエディタ自身の記述のもAG+が有効であることが確認された。 ソフトウェア生成アルゴリズムの研究としては、storage passing法による大域的記憶割当の研究を行った。属性に対する大域的記憶領域の割当は効率の良いソフトウェアの生成には本質的である。従来、靜的大域領域の割当法が考えられていたが、この方法より優れた方法としてstorage passing法を考案した。現在のところアルゴリズムとしての研究のみで生成システムに対する応用は行われていないが、これについては次年度に行いたいと考えている。
|