書き換え操作によってプログラムの意味が定義される宣言型プログラミング言語では展開/畳み込みプログラム変換が普遍的に定義可能であると思われる.我々はこれを属性文法について検討する.まず属性文法の基礎である文脈自由文法について展開/畳み込み変換を定義し,それを属性文法へ拡張する.この変換によって,コピー規則などの冗長な表現が除去される.また意味規則の右辺に現れる関数呼び出しの変形や呼び出し位置の移動などの効率化が可能になる.変換の正当性は,論理プログラム,Coupled Context-Free Grammarにおける変換の議論を通して理解される.展開/畳み込み変換は理論的な基礎のしっかりした変換理論であるから,属性文法変換の研究に与える影響は大きいと思われる.