Program generalization for software reuse: from C to C++

  • Authors:
  • Michael Siff;Thomas Reps

  • Affiliations:
  • University of Wisconsin-Madison, 1210 West Dayton Street, Madison, WI;University of Wisconsin-Madison, 1210 West Dayton Street, Madison, WI

  • Venue:
  • SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

We consider the problem of software generalization: Given a program component C, create a parameterized program component C′ such that C′ is usable in a wider variety of syntactic contexts than C. Furthermore, C′ should be a semantically meaningful generalization of C; namely, there must exist an instantiation of C′ that is equivalent in functionality to C.In this paper, we present an algorithm that generalizes C functions via type inference. The original functions operate on specific data types; the result of generalization is a collection of C++ function templates that operate on parameterized types. This version of the generalization problem is useful in the context of converting existing C programs to C++.