Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1292316.1292321acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Proof-transforming compilation of programs with abrupt termination

Published: 03 September 2007 Publication History

Abstract

The execution of untrusted bytecode programs can produce undesired behavior. A proof on the bytecode programs can be generated to ensure safe execution. Automatic techniques to generate proofs, such as certifying compilation, can only be used for a restricted set of properties such as type safety. Interactive verification of bytecode is difficult due to its unstructured control flow. Our approach is verify programs on the source level and then translate the proof to the byte-code level. This translation is non-trivial for programs with abrupt termination. We present proof transforming compilation from Java to Java Bytecode. This paper formalizes the proof transformation and present a soundness result.

References

[1]
F. Y. Bannwart and P. Müller. A Logic for Bytecode. In F. Spoto, editor, Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE), volume 141 of ENTCS, pages 255--273. Elsevier, 2005.
[2]
G. Barthe, B. Grégoire, C. Kunz, and T. Rezk. Certificate Translation for Optimizing Compilers. In 13th International Static Analysis Symposium (SAS), LNCS, Seoul, Korea, August 2006. Springer-Verlag.
[3]
G. Barthe, T. Rezk, and A. Saabas. Proof obligations preserving compilation. In Third International Workshop on Formal Aspects in Security and Trust, Newcastle, UK, pages 112--126, 2005.
[4]
B. Chang, A. Chlipala, G. Necula, and R. Schneck. The Open Verifier Framework for Foundational Verifiers. In ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDIS05), 2005.
[5]
G. Goos and W. Zimmermann. Verification of Compilers. LNCS, pages 201--230. Springer-Verlag, 2005.
[6]
P. Müller. Modular Specification and Verification of Object-Oriented Programs, volume 2262 of LNCS. Springer-Verlag, 2002.
[7]
P. Müller and M. Nordio. Proof-Transforming Compilation of Programs with Abrupt Termination. Technical Report 565, ETH Zurich, 2007.
[8]
G. Necula. Compiling with Proofs. PhD thesis, School of Computer Science, Carnegie Mellon University, 1998.
[9]
G. Necula and P. Lee. The Design and Implementation of a Certifying Compiler. In Programming Language Design and Implementation (PLDI), pages 333--344. ACM Press, 1998.
[10]
M. Pavlova. Java Bytecode verification and its applications. PhD thesis, University of Nice Sophia-Antipolis, 2007.
[11]
A. Poetzsch-Heffter and M. J. Gawkowski. Towards Proof Generating Compilers. ENTCS, 132(1):37--51, 2005.
[12]
A. Poetzsch-Heffter and P. Müller. A Programming Logic for Sequential Java. In S. D. Swierstra, editor, European Symposium on Programming Languages and Systems (ESOP'99), volume 1576 of LNCS, pages 162--176. Springer-Verlag, 1999.
[13]
A. Poetzsch-Heffter and N. Rauch. Soundness and Relative Completeness of a Programming Logic for a Sequential Java Subset. Technical report, Technische Universität Kaiserlautern, 2004.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAVCBS '07: Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
September 2007
99 pages
ISBN:9781595937216
DOI:10.1145/1292316
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 September 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. proof-carrying code
  2. proof-transforming compiler
  3. trusted components

Qualifiers

  • Article

Conference

ESEC/FSE07
Sponsor:

Acceptance Rates

SAVCBS '07 Paper Acceptance Rate 8 of 17 submissions, 47%;
Overall Acceptance Rate 37 of 46 submissions, 80%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Reasoning About Exceptional Behavior at the Level of Java BytecodeiFM 202310.1007/978-3-031-47705-8_7(113-133)Online publication date: 6-Nov-2023
  • (2023)Verifying Functional Correctness Properties at the Level of Java BytecodeFormal Methods10.1007/978-3-031-27481-7_20(343-363)Online publication date: 3-Mar-2023
  • (2018)A Case for Certifying Compilers in Industrial AutomationPrincipled Software Development10.1007/978-3-319-98047-8_5(73-86)Online publication date: 24-Oct-2018
  • (2013)Certificates and Separation Logic8th International Symposium on Trustworthy Global Computing - Volume 835810.1007/978-3-319-05119-2_16(273-293)Online publication date: 30-Aug-2013
  • (2012)Automatic Verification of Advanced Object-Oriented Features: The AutoProof ApproachTools for Practical Software Verification10.1007/978-3-642-35746-6_5(133-155)Online publication date: 2012
  • (2011)Automated translation of Java source code to EiffelProceedings of the 49th international conference on Objects, models, components, patterns10.5555/2025896.2025900(20-35)Online publication date: 28-Jun-2011
  • (2011)An Abstract Model of Certificate TranslationACM Transactions on Programming Languages and Systems10.1145/1985342.198534433:4(1-46)Online publication date: 1-Jul-2011
  • (2011)Automated Translation of Java Source Code to EiffelObjects, Models, Components, Patterns10.1007/978-3-642-21952-8_4(20-35)Online publication date: 2011
  • (2010)Certificate Translation for the Verification of Concurrent ProgramsTrustworthly Global Computing10.1007/978-3-642-15640-3_16(237-252)Online publication date: 2010
  • (2009)Certificate translation for optimizing compilersACM Transactions on Programming Languages and Systems10.1145/1538917.153891931:5(1-45)Online publication date: 3-Jul-2009
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media