Imperative programs can be inverted directly from their forward-directed program code with the use of logical inference. The relational semantics of imperative computations treats programs as logical relations over the observable state of the environment, which is taken to be the state of the variables in memory. Program relations denote both forward and backward computations, and the direction of the computation depends upon the instantiation pattern of arguments in the relation. This view of inversion has practical applications when the relational semantics is treated as a logic program. Depending on the logic programming inference scheme used, execution of this relational program can compute the inverse of the imperative program. A number of nontrivial imperative computations can be inverted with minimal logic programming tools.
CITATION STYLE
Ross, B. J. (1997). Running Programs Backwards: The Logical Inversion of Imperative Computation. Formal Aspects of Computing, 9(3), 331–348. https://doi.org/10.1007/BF01211087
Mendeley helps you to discover research relevant for your work.