Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Cost analysis of logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Possibly Not Closed Convex Polyhedra and the Parma Polyhedra Library
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Proceedings of a symposium on Compiler optimization
Data Structures and Algorithms in Java
Data Structures and Algorithms in Java
Class analyses as abstract interpretations of trace semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstraction carrying code and resource-awareness
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Formal Translation of Bytecode into BoogiePL
Electronic Notes in Theoretical Computer Science (ENTCS)
Heap space analysis for java bytecode
Proceedings of the 6th international symposium on Memory management
Removing useless variables in cost analysis of Java bytecode
Proceedings of the 2008 ACM symposium on Applied computing
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
Automatic Inference of Upper Bounds for Recurrence Relations in Cost Analysis
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
Mobile resource guarantees for smart devices
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Enforcing resource bounds via static verification of dynamic checks
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
A new algorithm for identifying loops in decompilation
SAS'07 Proceedings of the 14th international conference on Static Analysis
Asymptotic Resource Usage Bounds
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Efficient type-checking for amortised heap-space analysis
CSL'09/EACSL'09 Proceedings of the 23rd CSL international conference and 18th EACSL Annual conference on Computer science logic
Comparing cost functions in resource analysis
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
Improvements to a resource analysis for hume
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
Characterising effective resource analyses for parallel and distributed coordination
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
Symbolic and analytic techniques for resource analysis of java bytecode
TGC'10 Proceedings of the 5th international conference on Trustworthly global computing
Validating timed models of deployment components with parametric concurrency
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
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
Satisfiability modulo recursive programs
SAS'11 Proceedings of the 18th international conference on Static analysis
Static Resource Analysis for Java Bytecode Using Amortisation and Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
Amortised resource analysis with separation logic
ESOP'10 Proceedings of the 19th European 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
Interpolation-Based height analysis for improving a recurrence solver
FOPARA'11 Proceedings of the Second international conference on Foundational and Practical Aspects of Resource Analysis
Making resource analysis practical for real-time Java
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
A unified approach for static and runtime verification: framework and applications
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I
Reachability-based acyclicity analysis by Abstract Interpretation
Theoretical Computer Science
Automatic type inference for amortised heap-space analysis
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Ten years of amortized resource analysis
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Proving termination starting from the end
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
This paper describes the architecture of costa , an abstract interpretation based cos t and t ermination a nalyzer for Java bytecode. The system receives as input a bytecode program, (a choice of) a resource of interest and tries to obtain an upper bound of the resource consumption of the program. costa provides several non-trivial notions of cost, as the consumption of the heap, the number of bytecode instructions executed and the number of calls to a specific method. Additionally, costa tries to prove termination of the bytecode program which implies the boundedness of any resource consumption. Having cost and termination together is interesting, as both analyses share most of the machinery to, respectively, infer cost upper bounds and to prove that the execution length is always finite (i.e., the program terminates). We report on experimental results which show that costa can deal with programs of realistic size and complexity, including programs which use Java libraries. To the best of our knowledge, this system provides for the first time evidence that resource usage analysis can be applied to a realistic object-oriented, bytecode programming language.