Partial evaluation as an aid to the comprehension of Fortran programs

The authors describe a technique and a tool supporting partial evaluation of Fortran programs, i.e. their specialization for specific values of their input variables. They 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.<<ETX>>

[1]  Victor N. Kasyanov Transformational Approach to Program Concretization , 1991, Theor. Comput. Sci..

[2]  H. M. Sneed,et al.  The myth of 'top-down' software development and its consequences for software maintenance , 1989, Proceedings. Conference on Software Maintenance - 1989.

[3]  Sandrine Blazy,et al.  Software maintenance: an analysis of industrial needs and constraints , 1992, Proceedings Conference on Software Maintenance 1992.

[4]  P. David Coward Symbolic execution systems-a review , 1988, Softw. Eng. J..

[5]  Joëlle Despeyroux,et al.  Proof of Translation in Natural Semantics , 1986, LICS.

[6]  Franco Turini,et al.  Symbolic Semantics and Program Reduction , 1985, IEEE Transactions on Software Engineering.

[7]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[8]  Neil D. Jones,et al.  Mix: A self-applicable partial evaluator for experiments in compiler generation , 1989, LISP Symb. Comput..

[9]  Carlo Ghezzi,et al.  Software Specialization Via Symbolic Execution , 1991, IEEE Trans. Software Eng..

[10]  Andrew A. Berlin,et al.  Compiling scientific code using partial evaluation , 1990, Computer.

[11]  Richard A. Kemmerer,et al.  Unisex: A unix‐based symbolic executor for pascal , 1985, Softw. Pract. Exp..

[12]  H. J. van Zuylen Understanding in reverse engineering , 1993 .