Software Specialization Via Symbolic Execution

  • Authors:
  • Alberto Coen-Porisini;Flavio De Paoli;Carlo Ghezzi;Dino Mandrioli

  • Affiliations:
  • Politecnico di Milano, Milan, Italy;Politecnico di Milano, Milan, Italy;Politecnico di Milano, Milan, Italy;Politecnico di Milano, Milan, Italy

  • Venue:
  • IEEE Transactions on Software Engineering
  • Year:
  • 1991

Quantified Score

Hi-index 0.01

Visualization

Abstract

A technique and an environment-supporting specialization of generalized software components are described. 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.