A heuristic for deriving loop functions
IEEE Transactions on Software Engineering
Properties of data flow frameworks: a unified model
Acta Informatica
The new math of computer programming
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Loop Transformations for Restructuring Compilers: The Foundations
Loop Transformations for Restructuring Compilers: The Foundations
The Science of Programming
Symbolic evaluation of programs: a look at loop analysis
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
Non-linear loop invariant generation using Gröbner bases
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Loop Squashing Transformations for Amorphous Slicing
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
An Algorithm for Automated Generation of Invariants for Loops with Conditionals
SYNASC '05 Proceedings of the Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing
Proceedings of the 5th international conference on Generative programming and component engineering
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
Program verification using automatic generation of invariants
ICTAC'04 Proceedings of the First international conference on Theoretical Aspects of Computing
Hi-index | 0.00 |
We consider a while loop on some space S and we are interested in deriving the function that this loop defines between its initial states and its final states (when it terminates). Such a capability is useful in a wide range of applications, including reverse engineering, software maintenance, program comprehension, and program verification. In the absence of a general theoretical solution to the problem of deriving the function of a loop, we explore engineering solutions. In this paper we use a relational refinement calculus to approach this complex problem in a systematic manner. Our approach has many drawbacks, some surmountable and some not (being inherent to the approach); nevertheless, it offers a way to automatically derive the function of loops or an approximation thereof, under some conditions.