Certified Memory Usage Analysis
We present a certified algorithm for resource usage analysis, applicable to languages in the style of Java byte code. The algorithm verifies that a program executes in bounded memory. The algorithm is destined to be used in the development process of applets and for enhanced byte code verification on embedded devices. We have therefore aimed at a low-complexity algorithm derived from a loop detection algorithm for control flow graphs. The expression of the algorithm as a constraint-based static analysis of the program over simple lattices provides a link with abstract interpretation that allows to state and prove formally the correctness of the analysis with respect to an operational semantics of the program. The certification is based on an abstract interpretation framework implemented in the Coq proof assistant which has been used to provide a complete formalisation and formal verification of all correctness proofs.
KeywordsProgram analysis certified memory analysis theorem proving constraint solving
Unable to display preview. Download preview PDF.
- 4.Casset, L., Burdy, L., Requet, A.: Formal Development of an embedded verifier for Java Card Byte Code. In: Proc. of IEEE Int. Conference on Dependable Systems & Networks (DSN) (2002)Google Scholar
- 5.Crary, K., Weirich, S.: Resource bound certification. In: Proc. 27th ACM Symp. on Principles of Programming Languages (POPL 2000), pp. 184–198. ACM Press, New York (2000)Google Scholar
- 8.Hofmann, M., Jost, S.: Static prediction of heap space usage for first-order functional programs. In: Proc. of 30th ACM Symp. on Principles of Programming Languages (POPL 2003), pp. 185–197. ACM Press, New York (2003)Google Scholar
- 11.Marlet, R.: Syntax of the JCVM language to be studied in the SecSafe project. Technical Report SECSAFE-TL-005, Trusted Logic SA (May 2001)Google Scholar
- 13.Pichardie, D.: Coq sources of the development, http://www.irisa.fr/lande/pichardie/MemoryUsage/
- 14.Schneider, G.: A constraint-based algorithm for analysing memory usage on Java cards. Technical Report RR-5440, INRIA (December 2004)Google Scholar
- 15.Siveroni, I.: Operational semantics of the Java Card Virtual Machine. J. Logic and Algebraic Programming 58(1-2) (2004)Google Scholar