研究概要 |
1.研究の背景と目標 近年,コンパイラのバックエンド処理の新しい内部表現として,単一代入の変数を用いるSSA(Static Single Assignment)形式が提唱され,コンパイラの最適化変換やプログラム変換が容易にできるとして注目を浴びている.しかし,現状のSSA形式には次のような問題がある. (1)構文木等の中間表現からSSA形式への変換が手続き的にしか記述されていない (2)SSA形式による解析アルゴリズムが従来のデータフロー方程式のような簡潔な等式で定式化されていない 本研究では,これらの問題を解決するため,次を行う点を目標とする. (1)構文木等の中間表現からSSA形式への変換を,構文木の書換え系として読解性の良い形に定式化する. (2)SSA形式に基づく種々の解析と最適化変換を,簡潔な等式によりわかりやすく定式化する. (3)これらを扱えるよう,バックエンドを生成する生成系自身の新たな体系化を行う.この出発点として属性文法による体系化を採用する. 2.平成9年度の研究経過 C言語のサブセットについて,(a)構文木からSSA形式への変換,(b)SSA形式によるデータフロー解析および最適化変換,(c)SSA形式から通常形式の構文木への逆変換,(d)SSA形式の特徴を生かしたレジスた割付,のアルゴリズムを属性文法により定式化し,生成系Junを利用してプロトタイプ・コンパイラを作成した[発表1,2].これにより,1.で述べた目標のうちの(1),(2)が達成された.
|