Architectural Tradeoffs for a Meaning-Preserving Program Restructuring Tool

  • Authors:
  • William G. Griswold;David Notkin

  • Affiliations:
  • Univ. of California at San Diego, La Jolla;Univ. of Washington, Seattle

  • Venue:
  • IEEE Transactions on Software Engineering - Special issue on software architecture
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

Maintaining the consistency of multiple program representations驴such as abstract syntax trees and program dependence graphs驴in a program manipulation tool is difficult. This paper describes a hybrid software architecture for a meaning-preserving program restructuring tool. Layering is the primary architectural paradigm, which successively provides increasingly integrated and unified abstract machines to implement the tool. However, layering does not provide adequate control over extensibility or the independence of components. Consequently, we also adopted the paradigm of keeping the key program abstractions separate throughout the layering, providing independent 驴columns驴 of abstract data types. A pair of columns is integrated by a mapping column that translates elements in one column's data type into related elements in the other column's data type. Thus integration of function and separation of representation can be achieved simultaneously in this complex domain.This hybrid architecture was crucial in overcoming severe performance problems驴classic in traditional layered systems驴 that became apparent once the basic tool was completed. By taking advantage of the independence of the columns and the special characteristics of meaning-preserving restructuring, it was possible to extend one representation column of the architecture to the uppermost layer to provide the required access for efficient update without compromising independence. The cost of the extended architecture is that the upper layers are no longer as simple because they expose operations that only guarantee consistency under careful usage. However, the structural constraints of the hybrid architecture and provided models for building the more complicated layers minimizes the negative impact of this tradeoff.