Mobile Resource Guarantees for Smart Devices

We present the Mobile Resource Guarantees framework: a system for ensuring that downloaded programs are free from run-time violations of resource bounds. Certificates are attached to code in the form of efficiently checkable proofs of resource bounds; in contrast to cryptographic certificates of code origin, these are independent of trust networks. A novel programming language with resource constraints encoded in function types is used to streamline the generation of proofs of resource usage.

[1]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[2]  Mitchell Wand Correctness of Procedure Representations in Higher-Order Assembly Language , 1991, MFPS.

[3]  Amr Sabry,et al.  The essence of compiling with continuations , 1993, PLDI '93.

[4]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[5]  Liwu Li,et al.  Java Virtual Machine , 1998 .

[6]  Thomas Kleymann,et al.  Hoare logic and VDM : machine-checked soundness and completeness proofs , 1998 .

[7]  Lennart Augustsson,et al.  Cayenne—a language with dependent types , 1998, ICFP '98.

[8]  Andrew W. Appel,et al.  SSA is functional programming , 1998, SIGP.

[9]  Klara Nahrstedt,et al.  A distributed resource management architecture that supports advance reservations and co-allocation , 1999, 1999 Seventh International Workshop on Quality of Service. IWQoS'99. (Cat. No.98EX354).

[10]  Frank Pfenning,et al.  Dependent types in practical programming , 1999, POPL '99.

[11]  Martin Hofmann,et al.  Linear types and non-size-increasing polynomial time computation , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[12]  MorrisettGreg,et al.  From system F to typed assembly language , 1999 .

[13]  Gary T. Leavens,et al.  JML: notations and tools supporting detailed design in Java , 2000 .

[14]  Bart Jacobs,et al.  JML (poster session): notations and tools supporting detailed design in Java , 2000, OOPSLA '00.

[15]  M. Hofmann A Type System for Bounded Space and Functional In-Place Update , 2000, Nord. J. Comput..

[16]  George C. Necula,et al.  A certifying compiler for Java , 2000, PLDI '00.

[17]  Christopher League,et al.  Functional Java Bytecode ∗ , 2001 .

[18]  Andrew W. Appel,et al.  Foundational proof-carrying code , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[19]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[20]  Martin Hofmann,et al.  Another Type System for In-Place Update , 2002, ESOP.

[21]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[22]  Xavier Leroy,et al.  Bytecode verification on Java smart cards , 2002 .

[23]  Tobias Nipkow,et al.  Hoare Logics for Recursive Procedures and Unbounded Nondeterminism , 2002, CSL.

[24]  Stephen R. G. Fraser Overview of the .NET Framework , 2003 .

[25]  William R. Bush,et al.  A java virtual machine architecture for very small devices , 2003, LCTES '03.

[26]  Martin Hofmann,et al.  Static prediction of heap space usage for first-order functional programs , 2003, POPL '03.

[27]  Kenneth MacKenzie,et al.  Grail: a functional form for imperative mobile code , 2003, Electron. Notes Theor. Comput. Sci..

[28]  Kenneth MacKenzie,et al.  Camelot and Grail: resource-aware functional programming for the JVM , 2003, Trends in Functional Programming.

[29]  William R. Bush,et al.  A java virtual machine architecture for very small devices , 2003 .

[30]  Kenneth MacKenzie,et al.  O'Camelot: adding objects to a resource-aware functional language , 2003, Trends in Functional Programming.

[31]  Steffen Jost Lfd_infer: an Implementation of a Static Inference on Heap Space Usage , 2004 .

[32]  David Aspinall,et al.  Heap-Bounded Assembly Language , 2004, Journal of Automated Reasoning.

[33]  Martin Hofmann,et al.  A Program Logic for Resource Verification , 2004, TPHOLs.

[34]  Towards certificate generation for linear heap consumption , 2004 .