Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
Java and the Java Virtual Machine: Definition, Verification, Validation with Cdrom
Java and the Java Virtual Machine: Definition, Verification, Validation with Cdrom
Automatic generation of program specifications
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
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
Theoretical Computer Science - Foundations of software science and computation structures
A Type System for the Java Bytecode Language and Verifier
Journal of Automated Reasoning
Heap-Bounded Assembly Language
Journal of Automated Reasoning
Secure Information Flow by Self-Composition
CSFW '04 Proceedings of the 17th IEEE workshop on Computer Security Foundations
Program Instrumentation and Run-Time Analysis of Scoped Memory in Java
Electronic Notes in Theoretical Computer Science (ENTCS)
Guaranteeing Correctness Properties of a Java Card Applet
Electronic Notes in Theoretical Computer Science (ENTCS)
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
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Proving Resource Consumption of Low-level Programs Using Automated Theorem Provers
Electronic Notes in Theoretical Computer Science (ENTCS)
Heap space analysis for java bytecode
Proceedings of the 6th international symposium on Memory management
Theoretical Computer Science
Parametric prediction of heap memory requirements
Proceedings of the 7th international symposium on Memory management
Parametric heap usage analysis for functional programs
Proceedings of the 2009 international symposium on Memory management
JACK: a tool for validation of security and behaviour of Java applications
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Mobile resource guarantees and policies
CASSIS'05 Proceedings of the Second international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Formal methods for smartcard security
Foundations of Security Analysis and Design III
A type system for counting instances of software components
Theoretical Computer Science
Hi-index | 0.01 |
Memory consumption policies provide ameans to control resource usage on constrained devices, and play an important role in ensuring the overall quality of software systems, and in particular resistance against resource exhaustion attacks. Such memory consumption policies have been previously enforced through static analysis, which yield automatic bounds at the cost of precision, or run-time analysis, which incur an overhead that is not acceptable for constrained devices. In this paper, we study the use of logical methods to specify and statically verify precisememory consumption policies for Java bytecode programs. First, we demonstrate how the Bytecode Specification Language (a variant of the Java Modelling Language tailored to bytecode) can be used to specify precise memory consumption policies for (sequential) Java applets, and how verification tools can be used to enforce such memory consumption policies. Second, we consider the issue of inferring some of the annotations required to express the memory consumption policy, and report on an inference algorithm. Our broad conclusion is that logical methods provide a suitable means to specify and verify expressive memory consumption policies, with an acceptable overhead.