Conventional approaches to compiler correctness, type safety and type preservation have focused on off-line proofs, either on paper or formalised with a machine, of existing compilation schemes with respect to a reference operational semantics. This pearl shows how the use of dependent types in programming, illustrated here in Epigram, allows us not only to build-in these properties, but to write programs which guarantee them by design and subsequent construction. We focus here on a very simple expression language, compiled into tree-structured code for a simple stack machine. Our purpose here is not to claim any sophistication in the source language being modelled, but to show off the metalanguage as a tool for writing programs for which t...
We have designed, implemented, and proved the correctness of a compiler generator that accepts actio...
This paper deals with the application of constructive type theory to the theory of programming langu...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...
Programming language implementations bridge the gap between what the program developer sees and unde...
Compilers for monomorphic languages, such as C and Pascal, take advantage of types to determine data...
Many kinds of networked devices receive and execute new programs from various sources. Since we may ...
The definition of type equivalence is one of the most important design issues for any typed language...
Most existing programming languages provide little support to formally state and prove properties ab...
A growing number of programmers use dependently typed languages such as Coq to machine-verify impor...
I present Pyrosome1 , a generic framework for the verification of extensible, compositional compiler...
Compilers are difficult to write, and difficult to get right. Bahr and Hutton recently developed a n...
International audienceDependently typed languages such as Coq are used to specify and verify the ful...
Dependent types and multi-stage programming have both been used, separately, in programming language...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...
We present a certified compiler from the simply-typed lambda calculus to assembly language. The comp...
We have designed, implemented, and proved the correctness of a compiler generator that accepts actio...
This paper deals with the application of constructive type theory to the theory of programming langu...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...
Programming language implementations bridge the gap between what the program developer sees and unde...
Compilers for monomorphic languages, such as C and Pascal, take advantage of types to determine data...
Many kinds of networked devices receive and execute new programs from various sources. Since we may ...
The definition of type equivalence is one of the most important design issues for any typed language...
Most existing programming languages provide little support to formally state and prove properties ab...
A growing number of programmers use dependently typed languages such as Coq to machine-verify impor...
I present Pyrosome1 , a generic framework for the verification of extensible, compositional compiler...
Compilers are difficult to write, and difficult to get right. Bahr and Hutton recently developed a n...
International audienceDependently typed languages such as Coq are used to specify and verify the ful...
Dependent types and multi-stage programming have both been used, separately, in programming language...
Types express a program's meaning, and checking types ensures that a program has the intended meanin...
We present a certified compiler from the simply-typed lambda calculus to assembly language. The comp...
We have designed, implemented, and proved the correctness of a compiler generator that accepts actio...
This paper deals with the application of constructive type theory to the theory of programming langu...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...