Of What Use is a Veri ed Compiler Speci cation ?
نویسنده
چکیده
Program veri cation is normally performed on source code. However, it is the object code which is executed and so which ultimately must be correct. The compiler used to produce the object code must not introduce bugs. The majority of the compiler correctness literature is concerned with the veri cation of compiler speci cations rather than executable implementations. We discuss di erent ways that veri ed speci cations can be used to obtain implementations with varying degrees of security. In particular, we describe how a speci cation can be executed by proof. We discuss how this method can be used in conjunction with an insecure production compiler so as to retain security without slowing the development cycle of application programs. A veri ed implementation of a compiler in a high-level language is not su cient to obtain correct object code. The compiler must itself be compiled into a low-level language before it can be executed. At rst sight it appears we need an already veri ed compiler to obtain a secure low-level implementation of a compiler. We describe how a low-level implementation of a compiler can be securely obtained from a veri ed compiler speci cation.
منابع مشابه
A Veriied Vista Implementation Final Report
Specification Implementation Refine Algorithm Figure 1.3: The Re nement Hierarchy concerns whether the algorithm is correct with respect to the abstract speci cation, that is, whether the semantics of a source program is preserved in the code that the algorithm speci es should be produced. By far the majority of compiler correctness work described in the literature is concerned with this form o...
متن کاملAn Architecture for Veri ed
machine term rewriting graph rewriting traversal techniques . . . prefabricated parts generated from specifications Compiler executes Figure3. Implementation architecture 4.3 An Initial Correct Compiler The discussion in the previous subsection relies on the availability of a correct compiler for the implementation language. This problem must be dealt with in order to continue. The aim of this ...
متن کاملFormal Verification of a Memory Model for C-Like Imperative Languages
This paper presents a formal veri cation with the Coq proof assistant of a memory model for C -like imperative languages. This model de nes the memory layout and the operations that manage the memory. The model has been speci ed at two levels of abstraction and implemented as part of an ongoing certi cation in Coq of a moderatelyoptimising C compiler. Many properties of the memory have been ver...
متن کاملAn Approach to Veri able Compiling Speci cation and Prototyping
A compiler may be speci ed as a set of theorems, each describing how a construct in the programming language is translated into a sequence of machine instructions. The machine may be speci ed as an interpreter written in the programming language itself. Using re nement algebra, it can then be veri ed that interpreting a compiled program is the same or better than executing the original source p...
متن کاملTransformations on Dependency Graphs :
Dependency graphs are used to model data and control ow in hardware and software design. In a transformational design approach, optimization and re nement transformations are used to transform dependency-graph-based speci cations at higher abstraction levels to those at lower abstraction levels. In this dissertation, we investigate the formal speci cation and mechanical veri cation of transform...
متن کامل