We present a certified compiler from the simply-typed lambda calculus to assembly language. The compiler is certified in the sense that it comes with a machine-checked proof of semantics preservation, performed with the Coq proof assistant. The compiler and the terms of its several intermediate languages are given dependent types that guarantee that only well-typed programs are representable. Thus, type preservation for each compiler pass follows without any significant “proofs ” of the usual kind. Semantics preservation is proved based on denotational semantics assigned to the intermediate languages. We demonstrate how working with a type-preserving compiler enables type-directed proof search to discharge large parts of our proof obligatio...
We motivate the design of a statically typed assembly language (TAL) and present a typepreserving tr...
Conventional approaches to compiler correctness, type safety and type preservation have focused on o...
Many kinds of networked devices receive and execute new programs from various sources. Since we may ...
When verifying that compiler phases preserve some property of the compiled program, a major difficul...
Dependent types and multi-stage programming have both been used, separately, in programming language...
Type-directed certifying compilation and typed assembly language (TAL) aim to minimize the trusted c...
International audienceDependently typed languages such as Coq are used to specify and verify the ful...
We motivate the design of a typed assembly language (TAL) and present a type-preserving transla-tion...
A type-based certifying compiler maps source code to ma-chine code and target-level type annotations...
We motivate the design of a typed assembly language (TAL) by presenting a type-preserving translatio...
A certified binary is a value together with a proof that the value satisfies a given specification. ...
A certified binary is a value together with a proof that the value satisfies a given specification. ...
We motivate the design of a statically typed assembly language (TAL) and present a type-preserving t...
This paper reports on the development and formal certification (proof of semantic preservation) of a...
We motivate the design of a statically typed assembly language (TAL) and present a type-preserving t...
We motivate the design of a statically typed assembly language (TAL) and present a typepreserving tr...
Conventional approaches to compiler correctness, type safety and type preservation have focused on o...
Many kinds of networked devices receive and execute new programs from various sources. Since we may ...
When verifying that compiler phases preserve some property of the compiled program, a major difficul...
Dependent types and multi-stage programming have both been used, separately, in programming language...
Type-directed certifying compilation and typed assembly language (TAL) aim to minimize the trusted c...
International audienceDependently typed languages such as Coq are used to specify and verify the ful...
We motivate the design of a typed assembly language (TAL) and present a type-preserving transla-tion...
A type-based certifying compiler maps source code to ma-chine code and target-level type annotations...
We motivate the design of a typed assembly language (TAL) by presenting a type-preserving translatio...
A certified binary is a value together with a proof that the value satisfies a given specification. ...
A certified binary is a value together with a proof that the value satisfies a given specification. ...
We motivate the design of a statically typed assembly language (TAL) and present a type-preserving t...
This paper reports on the development and formal certification (proof of semantic preservation) of a...
We motivate the design of a statically typed assembly language (TAL) and present a type-preserving t...
We motivate the design of a statically typed assembly language (TAL) and present a typepreserving tr...
Conventional approaches to compiler correctness, type safety and type preservation have focused on o...
Many kinds of networked devices receive and execute new programs from various sources. Since we may ...