The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Testing for the Church-Rosser Property
Journal of the ACM (JACM)
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Proving the correctness of heuristically optimized code
Communications of the ACM
Symbolic execution and program testing
Communications of the ACM
Generation of optimal code for expressions via factorization
Communications of the ACM
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Complexity of finitely presented algebras
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
Exponential space complete problems for Petri nets and commutative semigroups (Preliminary Report)
STOC '76 Proceedings of the eighth annual ACM symposium on Theory of computing
STOC '76 Proceedings of the eighth annual ACM symposium on Theory of computing
A normal form for compiler testing
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Assignment Commands with Array References
Journal of the ACM (JACM)
Variations on the Common Subexpression Problem
Journal of the ACM (JACM)
Journal of the ACM (JACM)
Program logic without binding is decidable
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
New results on rewrite-based satisfiability procedures
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
The classical common subexpression problem in program optimization is the detection of identical subexpressions. Suppose we have some extra information and are given pairs of expressions ei1=ei2 which must have the same value, and expressions fj1≠fj2 which must have different values. We ask if as a result, h1=h2, or h1≠h2. This has been called the uniform word problem for finitely presented algebras, and has application in theorem-proving and code optimization. We show that such questions can be answered in O(nlogn) time, where n is the number of nodes in a graph representation of all relevant expressions. A linear time algorithm for detecting common subexpressions is derived. Algorithms which process equalities, inequalities and deductions on-line are discussed.