Abstract
We describe a technique and a tool supporting partial evaluation of Fortran programs, i.e. their specialization for specific values of their input variables. We aim at understanding old programs, which have become very complex due to numerous extensions. From a given Fortran program and these values of its input variables, the tool provides a simplified program, which behaves like the initial one for the specific values. This tool uses mainly constant propagation and simplification of alternatives to one of their branches. The tool is specified in inference rules and operates by induction on the Fortran abstract syntax. These rules are compiled into Prolog by the Centaur/Fortran environment.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Download to read the full chapter text
Chapter PDF
References
Programming language Fortran ANSI standard X3.9 1978.
L.O.Andersen C program specialization Master's thesis, University of Copenhagen, May 1992, 160 pages.
A. Berlin, D.Weise Compiling scientific code using partial evaluation, Computer, December 1990, 25–37.
Centaur group The Centaur 1.1 documentation January 1990.
A.Coen-Porsini, F.De Paoli, C.Ghezzi, D.Mandrioli Software specialization via symbolic execution IEEE Transactions on Software Engineering, 17(9), September 1991, 884–899.
A.P.Ershov, B.N.Ostrovski Controlled mixed computation and its application to systematic development of language-oriented parsers Program Specification and Transformation, IFIP'87,31–48.
Connexite Reference manual of the Foresys line of software products 1993.
K.B. Gallagher, J. R.Lyle Using program slicing in software maintenance IEEE Transactions on Software Engineering, 17(8), August 1991, 751–761.
M.Haziza, J.F.Voidrot, E.Minor, L.Pofelski, S.Blazy Software maintenance: an analysis of industrial needs and constraints IEEE Conference on Software Maintenance, Orlando, USA, November 1992.
C.B.Jones Systematic software development using VDM Prentice-Hall, 2nd eds., 1990.
N. DJones, P.Sestoft, H.Sondergaard MIX: a self-applicable partial evaluator for experiments in compiler generation Lisp and Symbolic Computation 2, 1989, 9–50.
G.Kahn Natural semantics Proceedings of STACS'87. Lecture Notes in Computer Science, vol.247, March 1987.
V.Kasyanov Transformational approach to program concretization Theoretical computer science, 90, 1991, 37–46.
R.Kemmerer, S.Eckmann UNISEX: a UNIX-based Symbolic Executor for Pascal Software Practice and Experience, 15(5), 1985, 439–457.
U.Meyer Techniques for evaluation of imperative languages ACM SIGSOFT, March 1991, 94–105.
G.Nicolas, S.Aubry, E.Briere A finite volume approach for 3D two phase flows in tube bundles: the THYC code Kernforschungscentrum, Karlsruhe, Vol.2, 1989, 1247–1253.
D.Sahlin An automatic partial evaluator for full Prolog Ph.D. thesis, Swedish Institute of Computer Science, March 1991, 170 pages.
T.H.Sneed The myth of ‘top-down’ software development and its consequences IEEE Conference on Software Maintenance, Miami, USA. October 1989, 22–29.
H.J.Van Zuylen Understanding in reverse engineering In REDO team The REDO handbook Wiley eds., September 1992.
M.N.Wegman, K.Zadeck Constant propagation with conditional branches ACM Transactions on Programming Languages and Systems 13(2), April 1991, 181–210.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Blazy, S., Facon, P. (1993). Partial evaluation and symbolic computation for the understanding of Fortran programs. In: Rolland, C., Bodart, F., Cauvet, C. (eds) Advanced Information Systems Engineering. CAiSE 1993. Lecture Notes in Computer Science, vol 685. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56777-1_10
Download citation
DOI: https://doi.org/10.1007/3-540-56777-1_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56777-6
Online ISBN: 978-3-540-47735-8
eBook Packages: Springer Book Archive