The authors describe a technique and an environment-supporting specialization of generalized software components. The technique is based on symbolic execution. It allows one to transform a generalized software component into a more specific and more efficient component. Specialization is proposed as a technique that improves software reuse. The idea is that a library of generalized components exists and the environment supports a designer in customizing a generalized component when the need arises for reusing it under more restricted conditions. It is also justified as a reengineering technique that helps optimize a program during maintenance. Specialization is supported by an interactive environment that provides several transformation tools: a symbolic executor/simplifier, an optimizer, and a loop refolder. The conceptual basis for these transformation techniques is described, examples of their application are given, and how they cooperate in a prototype environment for the Ada programming language is outlined
Coen Porisini, A., DE PAOLI, F., Ghezzi, C., Mandrioli, D. (1991). Software specialization via symbolic execution. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 17(9), 884-899 [10.1109/32.92907].
Software specialization via symbolic execution
DE PAOLI, FLAVIO MARIASecondo
;
1991
Abstract
The authors describe a technique and an environment-supporting specialization of generalized software components. The technique is based on symbolic execution. It allows one to transform a generalized software component into a more specific and more efficient component. Specialization is proposed as a technique that improves software reuse. The idea is that a library of generalized components exists and the environment supports a designer in customizing a generalized component when the need arises for reusing it under more restricted conditions. It is also justified as a reengineering technique that helps optimize a program during maintenance. Specialization is supported by an interactive environment that provides several transformation tools: a symbolic executor/simplifier, an optimizer, and a loop refolder. The conceptual basis for these transformation techniques is described, examples of their application are given, and how they cooperate in a prototype environment for the Ada programming language is outlinedI documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.