ScienceDirect® Home Skip Main Navigation Links
You have guest access to ScienceDirect. Find out more.
 
Home
Browse
My Settings
Alerts
Help
 Quick Search
 Search tips (Opens new window)
    Clear all fields    
Theoretical Computer Science
Volume 389, Issue 3, 15 December 2007, Pages 411-445
Semantic and Logical Foundations of Global Computing
 
Font Size: Decrease Font Size  Increase Font Size
 Abstract - selected
Purchase PDF (610 K)

 
 
 
Related Articles in ScienceDirect
View More Related Articles
 
View Record in Scopus
 
doi:10.1016/j.tcs.2007.09.003    How to Cite or Link Using DOI (Opens New Window)
Copyright © 2007 Published by Elsevier B.V.

A program logic for resources

David Aspinalla, Corresponding Author Contact Information, E-mail The Corresponding Author, Lennart Beringera, E-mail The Corresponding Author, Martin Hofmannb, E-mail The Corresponding Author, Hans-Wolfgang Loidlb, E-mail The Corresponding Author and Alberto Momiglianoa, E-mail The Corresponding Author

aLaboratory for the Foundations of Computer Science, School of Informatics, University of Edinburgh, Edinburgh EH9 3JZ, Scotland, United Kingdom bInstitut für Informatik, Ludwig-Maximilians Universität, D-80538 München, Germany

Available online 17 September 2007.

Purchase the full-text article



References and further reading may be available for this article. To view references and further reading you must purchase this article.

Abstract

We introduce a reasoning infrastructure for proving statements about resource consumption in a fragment of the Java Virtual Machine Language (JVML). The infrastructure is based on a small hierarchy of program logics, with increasing levels of abstraction: at the top there is a type system for a high-level language that encodes resource consumption. The infrastructure is designed to be used in a proof-carrying code (PCC) scenario, where mobile programs can be equipped with formal evidence that they have predictable resource behaviour.

This article focuses on the core logic in our infrastructure, a VDM-style program logic for partial correctness, which can make statements about resource consumption alongside functional behaviour. We establish some important results for this logic, including soundness and completeness with respect to a resource-aware operational semantics for the JVML. We also present a second logic built on top of the core logic, which is used to express termination; it too is shown to be sound and complete. We then outline how high-level language type systems may be connected to these logics.

The entire infrastructure has been formalized in Isabelle/HOL, both to enhance the confidence in our meta-theoretical results, and to provide a prototype implementation for PCC. We give examples to show the usefulness of this approach, including proofs of resource bounds on code resulting from compiling high-level functional programs.

Keywords: Program logic; Proof-carrying-code; Object-oriented languages; Java virtual machine language; Cost modelling; Quantitative type-systems; Lightweight verification


Theoretical Computer Science
Volume 389, Issue 3, 15 December 2007, Pages 411-445
Semantic and Logical Foundations of Global Computing
 
Home
Browse
My Settings
Alerts
Help
Elsevier.com (Opens new window)
About ScienceDirect  |  Contact Us  |  Information for Advertisers  |  Terms & Conditions  |  Privacy Policy
Copyright © 2008 Elsevier B.V. All rights reserved. ScienceDirect® is a registered trademark of Elsevier B.V.