Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Efficient tests for top-down termination of logical rules
Journal of the ACM (JACM)
Inference of monotonicity constraints in datalog programs
PODS '89 Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Termination proofs for logic programs
Termination proofs for logic programs
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Goal independency and call patterns in the analysis of logic programs
SAC '94 Proceedings of the 1994 ACM symposium on Applied computing
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Core semantics of multithreaded Java
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
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
Java Virtual Machine Specification
Java Virtual Machine Specification
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Automated Software Engineering
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Distinctness and Sharing Domains for Static Analysis of Java Programs
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
On Termination of Logic Programs with Floating Point Computations
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
TALP: A Tool for the Termination Analysis of Logic Programs
RTA '00 Proceedings of the 11th International Conference on Rewriting Techniques and Applications
TermiLog: A System for Checking Termination of Queries to Logic Programs
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Class analyses as abstract interpretations of trace semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Inferring termination conditions for logic programs using backwards analysis
Theory and Practice of Logic Programming
cTI: a constraint-based termination inference tool for ISO-Prolog
Theory and Practice of Logic Programming
Precise widening operators for convex polyhedra
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Termination proofs for systems code
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Integrating static analysis and general-purpose theorem proving for termination analysis
Proceedings of the 28th international conference on Software engineering
Higher-Order and Symbolic Computation
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program termination analysis in polynomial time
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Specification and verification challenges for sequential object-oriented programs
Formal Aspects of Computing
Formal Translation of Bytecode into BoogiePL
Electronic Notes in Theoretical Computer Science (ENTCS)
Proving Termination by Divergence.
SEFM '07 Proceedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods
Cyclic proofs of program termination in separation logic
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ISEC '08 Proceedings of the 1st India software engineering conference
Recurrence with affine level mappings is p-time decidable for clp$({\mathbb r})$
Theory and Practice of Logic Programming
The pitfalls of verifying floating-point computations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Termination Analysis of Java Bytecode
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Nullness Analysis in Boolean Form
SEFM '08 Proceedings of the 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods
Using CLP Simplifications to Improve Java Bytecode Termination Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
Electronic Notes in Theoretical Computer Science (ENTCS)
Bytecode Analysis for Proof Carrying Code
Electronic Notes in Theoretical Computer Science (ENTCS)
Automated termination analysis for logic programs by term rewriting
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
jMoped: a test environment for java programs
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Shape analysis for composite data structures
CAV'07 Proceedings of the 19th international conference on Computer aided verification
On the relative completeness of bytecode analysis versus source code analysis
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
Testing for termination with monotonicity constraints
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Interprocedural shape analysis with separated heap abstractions
SAS'06 Proceedings of the 13th international conference on Static Analysis
Size-Change termination and bound analysis
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Model checking real time java using java pathfinder
ATVA'05 Proceedings of the Third international conference on Automated Technology for Verification and Analysis
Modular verification of static class invariants
FM'05 Proceedings of the 2005 international conference on Formal Methods
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Termination of polynomial programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Abstract interpretation with alien expressions and heap structures
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Purity and side effect analysis for java programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
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
jMoped: a java bytecode checker based on moped
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Detecting non-cyclicity by abstract compilation into boolean functions
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Abstraction refinement for termination
SAS'05 Proceedings of the 12th international conference on Static Analysis
Pair-sharing analysis of object-oriented programs
SAS'05 Proceedings of the 12th international conference on Static Analysis
A local shape analysis based on separation logic
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Magic-sets transformation for the analysis of java bytecode
SAS'07 Proceedings of the 14th international conference on Static Analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
From object fields to local variables: a practical approach to field-sensitive analysis
SAS'10 Proceedings of the 17th international conference on Static analysis
Automated termination proofs for haskell by term rewriting
ACM Transactions on Programming Languages and Systems (TOPLAS)
The nullness analyser of JULIA
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Task-level analysis for a language with async/finish parallelism
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Termination graphs for Java bytecode
Verification, induction termination analysis
Inference of field initialization
Proceedings of the 33rd International Conference on Software Engineering
Termination graphs for Java bytecode
Verification, induction termination analysis
Static analysis of Android programs
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Detecting and escaping infinite loops with jolt
Proceedings of the 25th European conference on Object-oriented programming
Magic-sets for localised analysis of Java bytecode
Higher-Order and Symbolic Computation
Handling Non-linear Operations in the Value Analysis of COSTA
Electronic Notes in Theoretical Computer Science (ENTCS)
Cost analysis of object-oriented bytecode programs
Theoretical Computer Science
Incremental resource usage analysis
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Cost analysis of concurrent OO programs
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Modular termination analysis of java bytecode and its application to phoneME core libraries
FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
On the termination of integer loops
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Termination analysis of imperative programs using bitvector arithmetic
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
A new look at the automatic synthesis of linear ranking functions
Information and Computation
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Verified resource guarantees for heap manipulating programs
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Compositional termination proofs for multi-threaded programs
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Static analysis of Android programs
Information and Software Technology
Reachability analysis of program variables
IJCAR'12 Proceedings of the 6th international joint conference on Automated Reasoning
Automated termination proofs for Java programs with cyclic data
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Precise enforcement of progress-sensitive security
Proceedings of the 2012 ACM conference on Computer and communications security
Bolt: on-demand infinite loop escape in unmodified binaries
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
On the Termination of Integer Loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Binary reachability analysis of higher order functional programs
SAS'12 Proceedings of the 19th international conference on Static Analysis
On the linear ranking problem for integer linear-constraint loops
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reachability-based acyclicity analysis by Abstract Interpretation
Theoretical Computer Science
Eventual linear ranking functions
Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming
Proving termination starting from the end
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Reachability analysis of program variables
ACM Transactions on Programming Languages and Systems (TOPLAS)
An operational semantics for android activities
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
It is important to prove that supposedly terminating programs actually terminate, particularly if those programs must be run on critical systems or downloaded into a client such as a mobile phone. Although termination of computer programs is generally undecidable, it is possible and useful to prove termination of a large, nontrivial subset of the terminating programs. In this article, we present our termination analyzer for sequential Java bytecode, based on a program property called path-length. We describe the analyses which are needed before the path-length can be computed such as sharing, cyclicity, and aliasing. Then we formally define the path-length analysis and prove it correct with respect to a reference denotational semantics of the bytecode. We show that a constraint logic program PCLP can be built from the result of the path-length analysis of a Java bytecode program P and formally prove that if PCLP terminates, then P also terminates. Hence a termination prover for constraint logic programs can be applied to prove the termination of P. We conclude with some discussion of the possibilities and limitations of our approach. Ours is the first existing termination analyzer for Java bytecode dealing with any kind of data structures dynamically allocated on the heap and which does not require any help or annotation on the part of the user.