Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Java Virtual Machine Specification
Java Virtual Machine Specification
Inferring termination conditions for logic programs using backwards analysis
Theory and Practice of Logic Programming
Variance analyses from invariance analyses
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transition predicate abstraction and fair termination
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Removing useless variables in cost analysis of Java bytecode
Proceedings of the 2008 ACM symposium on Applied computing
A SAT-based approach to size change termination with global ranking functions
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Refinement-based verification for possibly-cyclic lists
Program analysis and compilation, theory and practice
Automatic termination proofs for programs with shape-shifting heaps
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Termination analysis with calling context graphs
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Programs with lists are counter automata
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
AProVE 1.2: automatic termination proofs in the dependency pair framework
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
A termination analyzer for Java bytecode based on path-length
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
In an earlier work, a termination analyzer for Java bytecode was developed that translates a Java bytecode program into a constraint logic program and then proves the termination of the latter. An efficiency bottleneck of the termination analyzer is the construction of a proof of termination for the generated constraint logic program, which is often very large in size. In this paper, a set of program simplifications are presented that reduce the size of the constraint logic program without changing its termination behavior. These simplifications remove program clauses and/or predicate arguments that do not affect the termination behavior of the constraint logic program. Their effect is to reduce significantly the time needed to build the termination proof for the constraint logic program, as our experiments show.