Formal Translation of Bytecode into BoogiePL
نویسندگان
چکیده
Many modern program verifiers translate the program to be verified and its specification into a simple intermediate representation and then compute verification conditions on this representation. Using an intermediate language improves the interoperability of tools and facilitates the computation of small verification conditions. Even though the translation into an intermediate representation is critical for the soundness of a verifier, this step has not been formally verified. In this paper, we formalize the translation of a small subset of Java bytecode into an imperative intermediate language similar to BoogiePL. We prove soundness of the translation by showing that each bytecode method whose BoogiePL translation can be verified, can also be verified in a logic that operates directly on bytecode.
منابع مشابه
A Translator from BML annotated Java Bytecode to BoogiePL
The goal of this master project is to extend an existing formalization of a translation from Java bytecode to BoogiePL and to provide an implementation for that formalization. Possible improvements to the existing translation thereby include the extension of the set of bytecode instructions supported by the formalization as well as the the translation of various semantic properties of the Java ...
متن کاملBML and Related Tools
The Bytecode Modeling Language (BML) is a speci cation language for Java bytecode, that provides a high level of abstraction, while not restricting the format of the bytecode. Notably, BML speci cations can be stored in class les, so that they can be shipped together with the bytecode. This makes BML particularly suited as property specication language in a proof-carrying code framework. Moreov...
متن کاملBoogiePL: A typed procedural language for checking object-oriented programs
This note defines BoogiePL, an intermediate language for program analysis and program verification. The language is a simple coarsely typed imperative language with procedures and arrays, plus support for introducing mathematical functions and declaring properties of these functions. BoogiePL can be used to represent programs written in an imperative source language (like an object-oriented .NE...
متن کاملFormal Certification of Android Bytecode
Android is an operating system that has been usedin a majority of mobile devices. Each application in Androidruns in an instance of the Dalvik virtual machine, which isa register-based virtual machine (VM). Most applications forAndroid are developed using Java, compiled to Java bytecodeand then translated to DEX bytecode using the dx tool inthe Android SDK. In this work,...
متن کاملTranslating Java bytecode to X86 assembly code
ABSTRACT Java has become one of the most popular languages for network applications. The main drawback of Java is concerned with the execution speed due to interpreted execution. We implemented a translation system that converts Java bytecode to X86 assembly code. The main approach of our translation system is that objects are still created and manipulated inside the (run-time) Java virtual mac...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 190 شماره
صفحات -
تاریخ انتشار 2007