Abstract
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.
This research was supported by the MRG project (IST-2001-33149) which is funded by the EC under the FET proactive initiative on Global Computing.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Appel, A.: Foundational proof-carrying code. In: Proceedings of LICS 2001, pp. 247–256. IEEE Computer Society Press, Los Alamitos (2001)
Appel, A.W.: Compiling with Continuations. Cambridge University Press, Cambridge (1992)
Appel, A.W.: SSA is functional programming. ACM SIGPLAN Notices 33(4), 17–20 (1998)
Aspinall, D., Beringer, L., Hofmann, M., Loidl, H.-W., Momigliano, A.: A program logic for resource verification. In: Slind, K., Bunker, A., Gopalakrishnan, G.C. (eds.) TPHOLs 2004. LNCS, vol. 3223, pp. 34–49. Springer, Heidelberg (2004)
Aspinall, D., Compagnoni, A.: Heap bounded assembly language. Journal of Automated Reasoning 31(3-4), 261–302 (2003)
Aspinall, D., Hofmann, M.: Another type system for in-place update. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 36–52. Springer, Heidelberg (2002)
Augustsson, L.: Cayenne - a language with dependent types. In: International Conference on Functional Programming, pp. 239–250 (1998)
Beringer, L., Hofmann, M., Momigliano, A., Shkaravska, O.: Towards certificate generation for linear heap consumption. In: Proceedings of the ICALP/LICS Workshop on Logics for Resources, Processes, and Programs, LRPP 2004 (2004)
Beringer, L., MacKenzie, K., Stark, I.: Grail: a functional form for imperative mobile code. In: Foundations of Global Computing: Proceedings of the 2nd EATCS Workshop, number 85.1 in Electronic Notes in Theoretical Computer Science. Elsevier, Amsterdam (June 2003)
Colby, C., Lee, P., Necula, G.C., Blau, F., Cline, K., Plesko, M.: A certifying compiler for Java. In: Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2000), Vancouver, Canada (2000)
Flanagan, C., Sabry, A., Duba, B.F., Felleisen, M.: The essence of compiling with continuations. In: Proc. PDLI 1993, ACM SIGPLAN Notices, vol. 28(6), pp. 237–247 (1993)
Flanagan, C., Sabry, A., Duba, B.F., Felleisen, M.: Retrospective on “The essence of compiling with continuations”. In: 20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation (1979-1999): A Selection. ACM Press, New York (2003)
Foster, I., Kesselman, C., Lee, C., Lindell, R., Nahrstedt, K., Roy, A.: A distributed resource management architecture that supports advance reservations and co-allocation. In: Proceedings of the IEEE/IFIP 7th International Workshop on Quality of Service (1999)
Hofmann, M.: A type system for bounded space and functional in-place update. Nordic Journal of Computing 7(4), 258–289 (2000)
Hofmann, M.: Linear types and non size-increasing polynomial time computation. Information and Computation 183, 57–85 (2003)
Hofmann, M., Jost, S.: Static prediction of heap space usage for first-order functional programs. In: Proceedings of the 30th ACM Symposium on Principles of Programming Languages, New Orleans (2003)
Jost, S.: lfd_infer: an implementation of a static inference on heap space usage. In: Proceedings of Second Workshop on Semantics, Program Analysis and Computing Environments for Memory Management, SPACE 2004 (2004)
Kleymann, T.: Hoare Logic and VDM: Machine-Checked Soundness and Completeness Proofs. PhD thesis, LFCS, University of Edinburgh (1999)
League, C., Trifonov, V., Shao, Z.: Functional Java bytecode. In: Proc. 5th SCI World Multiconference, Workshop on Intermediate Representation Engineering for the Java Virtual Machine. Internat. Inst. of Informatics and Systemics (July 2001)
Leavens, G., Leino, R., Poll, E., Ruby, C., Jacobs, B.: JML: notations and tools supporting detailed design in Java. In: OOPSLA 2000 Companion, pp. 105–106 (2000)
Leroy, X.: Bytecode verification on Java smart cards. Software Practice & Experience 32, 319–340 (2002)
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. The Java Series. Addison-Wesley, Reading (January 1997)
MacKenzie, K., Wolverson, N.: Camelot and Grail: resource-aware functional programming for the JVM. In: Trends in Functional Programming, vol. 4, pp. 29–46 (2004) (Intellect)
Microsoft. Overview of the .NET framework. .NET Framework Developer’s Guide, http://msdn.microsoft.com
Morrisett, G., Walker, D., Crary, K., Glew, N.: From System F to typed assembly language. ACM Transactions on Programming Languages and Systems 21(3), 528–569 (1999)
Necula, G.: Proof-carrying code. In: Proceedings of the ACM Symposium on Principles of Programming Languages (1997)
Nipkow, T.: Hoare logics for recursive procedures and unbounded nondeterminism. In: Bradfield, J.C. (ed.) CSL 2002 and EACSL 2002. LNCS, vol. 2471, pp. 103–119. Springer, Heidelberg (2002)
Nipkow, T., Paulson, L., Wenzel, M.: Isabelle/HOL: A Proof Assistant for Higher-Order Logic. In: Nipkow, T., Paulson, L.C., Wenzel, M.T. (eds.) Isabelle/HOL. LNCS, vol. 2283. Springer, Heidelberg (2002)
O’Caml Web site. The O’Caml Language, http://www.ocaml.org
Prowse, M.: Proving Grail resource bounds. University of Edinburgh (May 2003)
Reynolds, J.: Separation logic: A logic for shared mutable data structures. In: LICS 2002: Proceedings of the Seventeenth Annual IEEE Symposium on Logic in Computer Science, pp. 55–74 (2002)
Shaylor, N., Simon, D.N., Bush, W.R.: A Java virtual machine architecture for very small devices. In: Language, Compiler, and Tool Support for Embedded Systems: Proceedings of LCTES 2003, ACM SIGPLAN Notices, vol. 38(7), pp. 31–41 (July 2003)
Sun Microsystems. Java Card 2.2 Platform Specification (2003), available online at, http://java.sun.com/products/javacard/specs.html
Wand, M.: Correctness of procedure representations in higher-order assembly language. In: Proc. MFPS 1991. LNCS, vol. 298, pp. 294–311. Springer, Heidelberg (1992)
Wolverson, N.: Optimisation and resource bounds in Camelot compilation. Laboratory for Foundations of Computer Science, University of Edinburgh (2003)
Wolverson, N., MacKenzie, K.: O’Camelot: Adding objects to a resource aware functional language. In: Trends in Functional Programming, vol. 4, pp. 47–62 (2004) (Intellect)
Xi, H., Pfenning, F.: Dependent types in practical programming. In: Proceedings of the 26th ACM SIGPLAN Symposium on Principles of Programming Languages, San Antonio, pp. 214–227 (January 1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Aspinall, D., Gilmore, S., Hofmann, M., Sannella, D., Stark, I. (2005). Mobile Resource Guarantees for Smart Devices. In: Barthe, G., Burdy, L., Huisman, M., Lanet, JL., Muntean, T. (eds) Construction and Analysis of Safe, Secure, and Interoperable Smart Devices. CASSIS 2004. Lecture Notes in Computer Science, vol 3362. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30569-9_1
Download citation
DOI: https://doi.org/10.1007/978-3-540-30569-9_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-24287-1
Online ISBN: 978-3-540-30569-9
eBook Packages: Computer ScienceComputer Science (R0)