An algorithm deciding functional equivalence in a new class of program schemes
Theoretical Computer Science - Special issue on the Second French-Soviet Workshop on Methods of Compilation and Program Construction, Nice, France, Feb. 1988
On optimal slicing of parallel programs
STOC '01 Proceedings of the thirty-third annual ACM symposium on Theory of computing
Theory of Program Structures: Schemes, Semantics, Verification
Theory of Program Structures: Schemes, Semantics, Verification
Equivalence of conservative, free, linear program schemas is decidable
Theoretical Computer Science
On the Complexity of Constant Propagation
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
The complexity of theorem-proving procedures
STOC '71 Proceedings of the third annual ACM symposium on Theory of computing
Static Program Slicing Algorithms are Minimal for Free Liberal Program Schemas
The Computer Journal
Equivalence of linear, free, liberal, structured program schemas is decidable in polynomial time
Theoretical Computer Science
Lower bounds for natural proof systems
SFCS '77 Proceedings of the 18th Annual Symposium on Foundations of Computer Science
On formalised computer programs
Journal of Computer and System Sciences
Checking herbrand equalities and beyond
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Interprocedural herbrand equalities
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Hi-index | 0.00 |
The problem of deciding whether one point in a program is data dependent upon another is fundamental to program analysis and has been widely studied. In this article we consider this problem at the abstraction level of program schemas in which computations occur in the Herbrand domain of terms and predicate symbols, which represent arbitrary predicate functions, are allowed. Given a vertex l in the flowchart of a schema S having only equality (variable copying) assignments, and variables v, w, we show that it is PSPACE-hard to decide whether there exists an execution of a program defined by S in which v holds the initial value of w at at least one occurrence of l on the path of execution, with membership in PSPACE holding provided there is a constant upper bound on the arity of any predicate in S. We also consider the ‘dual’ problem in which v is required to hold the initial value of w at every occurrence of l, for which the analogous results hold. Additionally, the former problem for programs with nondeterministic branching (in effect, free schemas) in which assignments with functions are allowed is proved to be polynomial-time decidable provided a constant upper bound is placed upon the number of occurrences of the concurrency operator in the schemas being considered. This result is promising since many concurrent systems have a relatively small number of threads (concurrent processes), especially when compared with the number of statements they have.