Abstract
In this paper we present an example of customization of an AdaTM component by means of a tool (SESADA) that performs program specialization. Specializing a software component means to transform it into a component having the same functionality, but working only on a sub-domain of input data. Specialization is achieved by means of symbolic execution and static optimizations.
Specialization is motivated as a technique to improve reusability of software components. In fact, reusing software components involves complex problems; for example, we need to know where we shall look for components, and how to identify components that match our requirements. In addition, very often it is impossible to find a component that exactly matches requirements. Therefore, it is reasonable to suppose that some changes should be performed on existing components in order to reuse them.
Specialization is expected to produce software components that are smaller and more efficient than their original counterparts. As a consequence specialized components are likely to be more effective when employed in new environments.
SESADA has been implemented at Politecnico di Milano and runs under Unix operating system.
Partially supported by CNR Progetto Finalizzato Sistemi Informatici e Calcolo Parallelo.
Preview
Unable to display preview. Download preview PDF.
References
A.V. Aho, R. Sethi, J.D. Ullman “Compilers: principles, techniques, and tools”, Addison-Wesley(1986).
T.J. Biggerstaff and A.J. Perlis, “Software Reusability voll.1–2” ACM Press, 1989.
W.W. Bledsoe “The Sup-Inf method in Presburger Arithmetic.” Tech. Kept. Department of Mathematics — University of Texas, 1974.
C.L. Chang, R.C. Lee “Symbolic logic and mechanical theorem proving”, Academic Press (1973).
A. Coen-Porisini, F. DePaoli “Symbad: a Symbolic Executor for sequential Ada programs.” In Proceedings of the SAFECOMP '90 (Symposium on sfety of computer control system), Gatwick, U.K. 30 October–2 November 1990, Pergamon Press, pp. 105–111.
A. Coen-Porisini, F. DePaoli, C. Ghezzi, D. Mandrioli “Software Specialization via Symbolic Execution” to appear on IEEE Transactions on Software Engineering, September 1991.
A.P. Ershov “Mixed computation: potential applications and problems for study.” Theoretical Computer Science 18 (1982), 41–67.
A.P. Ershov “On the partial computation principle.” Information Processing Letters 6, 2 (1977).
IEEE Software “Maintenance & Reverse Engineering & Design Recovery”, vol. 7, n. 1, 1990.
R. Kemmerer, S. Eckmann “UNISEX a UNIx-based Symbolic EXecutor for Pascal.” Software-Practice and Experience 15, 5 (May 1985).
J.C. King “Symbolic execution and program testing.” Communications of the ACM 19, 7 (1976).
J. Laski “Testing in the program development cycle.” Software Engineering Journal (March 1989).
H. Partsch and R. Steinbruggen, “Program Transformation Systems” Computing Surveys, vol. 15, n. 3, pp. 199–236, 1983.
“Reference Manual for the Ada Programming Language”, USA-DoD, 1983, ANSI/MIL-STD-1815 A.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Coen-Porisini, A., De Paoli, F. (1991). SESADA: An environment supporting software specialization. In: van Lamsweerde, A., Fugetta, A. (eds) ESEC '91. ESEC 1991. Lecture Notes in Computer Science, vol 550. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540547428_53
Download citation
DOI: https://doi.org/10.1007/3540547428_53
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54742-6
Online ISBN: 978-3-540-46446-4
eBook Packages: Springer Book Archive