Abstract
This paper reports on an approach for improving the understanding of old programs which have become very complex due to numerous extensions. We have adapted partial evaluation techniques for program understanding. These techniques mainly use propagation through statements and simplifications of statements.
We focus here on the automatic interprocedural analysis and we specify both tasks (propagation and simplification) for call-statements, in terms of inference rules with notations taken from the formal specification languages B and VDM.
We describe how we have implemented that interprocedural analysis in a tool, and how it can be used to improve program understanding. The difficulty of that analysis is due to the lack of well defined interprocedural mechanisms and the complexity of visibility rules in Fortran.
Preview
Unable to display preview. Download preview PDF.
References
J.R.Abrial The B method CNAM lecture notes, 1994
L.O. Andersen Program analysis and specialization for the C programming language Ph.D.Thesis, Univ. of Copenhagen, Denmark, DIKU rep. 94/19, 1994.
R.Baier, R.Glück, R.Zöchling Partial evaluation of numerical programs in Fortran ACM SIGPLAN Workshop PEPM, Melbourne, 1994, 119–132.
S.Blazy, P.Facon Partial evaluation as an aid to the comprehension of Fortran programs 2nd IEEE Workshop on Program Comprehension, Capri, Italy, July 1993, 46–54.
S.Blazy, P.Facon SFAC: a tool for program comprehension by specialization 3rd IEEE Workshop on Program Comprehension, Washington D.C., November 1994, 162–167.
S. Blazy, P. Facon Formal specification and prototyping of a program specializer TAPSOFT'95, Aarhus, Denmark, May 1995, LNCS 915, 666–680.
Coen-Porisini, F. De Paoli, C. Ghezzi, D. Mandrioli Software specializaton via symbolic execution IEEE Trans. on Soft. Engineering, 17(9), 1991, 884–899.
FORTRAN. ANSI standard X3.9, 1978.
M.Haziza, J.F.Voidrot, E.Minor, L.Pofelski, S.Blazy Software maintenance: an analysis of industrial needs and constraints IEEE Conf. on Soft. Maintenance, Orlando, 11/1992.
C.B.Jones Systematic development using VDM 2nd eds., Prentice-Hall, 1990.
N.D.Jones, C.K.Gomard, P.Sestoft Partial evaluation and automatic program generation Prentice-Hall, 1993.
G.Kahn, Natural semantics Proc. of STACS'87, LNCS, vol.247, March 1987.
H.Parisot, F.Paumier Aide à la compréhension et à la maintenance du logiciel: calculs inter-procéduraux pour la maintenance de programmes MSc. thesis, IIE-CNAM, 06/95.
S.Tilley, K.Wong, M.A.Storey, H.Müller Programmable reverse engineering Int. Journal of Soft.Eng.&Knowledge Eng., 4(4), December 1994, 501–520.
H.J.Van Zuylen Understanding in reverse engineering. REDO handbook, Wiley, 09/92.
G.A. Venkatesh The semantic approach to program slicing Proc. ACM SIGPLAN Conf. on Programming Languages Design and Implementation, Toronto, Canada, 1991, ACM SIGPLAN Notices, 26(6), 107–119.
A. Von Maryhauser, A.M. Vans Dynamic code cognition behaviors for large scale code 3rd IEEE Workshop on Program Comprehension, Washington D.C., November 1994, 74–81.
M. Weiser Program slicing IEEE Trans. on Soft. Engineering, 10(4), 352–357, 1984.
N.Wilde, M.C.Scully Software reconnaissance: mapping program features to code Software maintenance research and practice, vol. 7, 1995, 49–62.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Blazy, S., Facon, P. (1996). An automatic interprocedural analysis for the understanding of scientific application programs. In: Danvy, O., Glück, R., Thiemann, P. (eds) Partial Evaluation. Lecture Notes in Computer Science, vol 1110. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61580-6_1
Download citation
DOI: https://doi.org/10.1007/3-540-61580-6_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61580-4
Online ISBN: 978-3-540-70589-5
eBook Packages: Springer Book Archive