Systematic Change of Data Representation: Program Manipulations and a Case Study

We present a set of semantics-based program manipulation techniques to assist in restructuring software encapsulation boundaries and making systematic changes to data representations. These techniques adapt abstraction structure and data representations without altering program functionality. The techniques are intended to be embodied in source-level analysis and manipulation tools used interactively by programmers, rather than in fully automatic tools and compilers.

[1]  William L. Scherlis,et al.  Expression procedures and program derivation , 1980 .

[2]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[3]  William L. Scherlis Boundary and Path Manipulations on Abstract Data Types (Extended Abstract) , 1994, IFIP Congress.

[4]  Robert Paige,et al.  Programming with Invariants , 1986, IEEE Software.

[5]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1990, Theor. Comput. Sci..

[6]  William G. Griswold,et al.  Automated support for encapsulating abstract data types , 1994, SIGSOFT '94.

[7]  Alberto Pettorossi,et al.  A powerful strategy for deriving efficient programs by transformation , 1984, LFP '84.

[8]  David S. Wile Type Transformations , 1981, IEEE Transactions on Software Engineering.

[9]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[10]  William L. Scherlis,et al.  Abstract Data Types, Specialization, and Program Reuse , 1986, Advanced Programming Environments.

[11]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[12]  Gregor Kiczales,et al.  Beyond the Black Box: Open Implementation , 1996, IEEE Softw..

[13]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[14]  Kenneth R. Wood,et al.  A practical approach to software engineering using Z and the refinement calculus , 1993, SIGSOFT '93.

[15]  John Darlington The Synthesis of Implementations for Abstract Data Types , 1983 .

[16]  Robert L. Nord,et al.  Formal manipulation of modular software systems , 1990 .

[17]  William L. Scherlis,et al.  Deriving and using destructive data types , 1987 .

[18]  William G. Griswold,et al.  Automated assistance for program restructuring , 1993, TSEM.