Formalizing and Verifying Semantic Type Soundness of a Simple Compiler (Preliminary Report)
نویسندگان
چکیده
We describe a semantic type soundness result, formalized in the Coq proof assistant, for a compiler from a simple imperative language with heap-allocated data into an idealized assembly language. Types in the high-level language are interpreted as binary relations, built using both second-order quantification and a form of separation structure, over stores and code pointers in the low-level machine.
منابع مشابه
SPOTS: A System for Proving Optimizing Transformations Sound
A compiler optimizer analyzes and transforms programs to improve their performance. This allows programmers to focus on functionality of programs without having to bother about efficiency of the generated code. Optimizers have therefore become an integral part of the modern compilers. However, a mistake in the design or the implementation of an optimizer can proliferate in the form of bugs in t...
متن کاملMechanized Verification of Computing Dominators for Formalizing Compilers
One prerequisite to the formal verification of modern compilers is to formalize computing dominators, which enable SSA forms, advanced optimizations, and analysis. This paper provides an abstract specification of dominance analysis that is sufficient for formalizing modern compilers; it describes a certified implementation and instance of the specification that is simple to design and reason ab...
متن کاملSyntactic Control of Interference for Separation Logic (Preliminary Report)
In an important paper in 1978 [26], Reynolds formulated a system of rules for “syntactic control of interference” formalizing the extant conventions for good programming practice in controlling variable aliasing as well as the conventions used in the programming logics formulated by Hoare [11, 12]. The focus of the rules at that time was the use of procedures. However, concurrency poses very mu...
متن کاملCompiling R: A Preliminary Report
This paper outlines an initial implementation of a byte code compiler for R. The compilation process is illustrated on a simple example. Semantic issues raised by the compilation process are discussed and sketches of the current virtual machine implementation and compiler design are given.
متن کاملCalculating Certified Compilers for Non-deterministic Languages
Reasoning about programming languages with non-deterministic semantics entails many difficulties. For instance, to prove correctness of a compiler for such a language, one typically has to split the correctness property into a soundness and a completeness part, and then prove these two parts separately. In this paper, we present a set of proof rules to prove compiler correctness by a single pro...
متن کامل