Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Recursion and dynamic data-structures in bounded space: towards embedded ML programming
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Static prediction of heap space usage for first-order functional programs
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimized Live Heap Bound Analysis
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Escape analysis for JavaTM: Theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
Precise Analysis of Memory Consumption using Program Logics
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Deriving escape analysis by abstract interpretation
Higher-Order and Symbolic Computation
Experiments in Cost Analysis of Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
Certified memory usage analysis
FM'05 Proceedings of the 2005 international conference on Formal Methods
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
Detecting non-cyclicity by abstract compilation into boolean functions
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Memory usage verification for OO programs
SAS'05 Proceedings of the 12th international conference on Static Analysis
Inferring cost equations for recursive, polymorphic and higher-order functional programs
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
Type-Based amortised heap-space analysis
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Removing useless variables in cost analysis of Java bytecode
Proceedings of the 2008 ACM symposium on Applied computing
Parametric prediction of heap memory requirements
Proceedings of the 7th international symposium on Memory management
Analysing memory resource bounds for low-level programs
Proceedings of the 7th international symposium on Memory management
COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode
Formal Methods for Components and Objects
Live heap space analysis for languages with garbage collection
Proceedings of the 2009 international symposium on Memory management
Parametric heap usage analysis for functional programs
Proceedings of the 2009 international symposium on Memory management
Cost Relation Systems: A Language-Independent Target Language for Cost Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
User-Definable Resource Usage Bounds Analysis for Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
Parametric inference of memory requirements for garbage collected languages
Proceedings of the 2010 international symposium on Memory management
A space consumption analysis by abstract interpretation
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
Offline GC: trashing reachable objects on tiny devices
Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems
Cost analysis of object-oriented bytecode programs
Theoretical Computer Science
Automatic inference of resource consumption bounds
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
A type system for finding upper resource bounds of multi-threaded programs with nested transactions
Proceedings of the Third Symposium on Information and Communication Technology
Resource-Driven CLP-Based test case generation
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
A type system for counting instances of software components
Theoretical Computer Science
A hybrid approach for resource-based comparison of adaptable Java applications
Science of Computer Programming
Hi-index | 0.00 |
This article presents a heap space analysis for (sequential) Java bytecode. The analysis generates heap space cost relations which define at compile-time the heap consumption of a program as a function of its data size. These relations can be used to obtain upper bounds on the heap space located during the execution of the different methods. In addition, we describe how to refine the cost relations, by relying on escape analysis, in order to take into account the heap space that can be safely deallocated by the garbage collector upon exit from a corresponding method. These refined cost relations are then used to infer upper bounds on the active heap space upon methods return. Example applications for the analysis consider inference of constant heap usage and heap usage proportional to the data size (including polynomial and exponential heap consumption). Our prototype implementation is reported and demonstrated by means of a series of examples which illustrate how the analysis naturally encompasses standard data-structures like lists, trees and arrays with several dimensions written in object-oriented programming style.