Bahr and Hutton recently developed a new approach to calculating correct compilers directly from specifications of their correctness. However, the methodology only considers converging behaviour of the source language, which means that the compiler could potentially produce arbitrary, erroneous code for source programs that diverge. In this article, we show how the methodology can naturally be extended to support the calculation of compilers that address both convergent and divergent behaviour simultaneously, without the need for separate reasoning for each aspect. Our approach is based on the use of the partiality monad to make divergence explicit, together with the use of strong bisimilarity to support equational-style calculations, but a...
Verified compilers are typically proved correct under severe restrictions on what the compiler\u27s ...
International audienceThis paper reports on the correctness proof of compiler optimizations based on...
Software frequently converts data from one representation to another and vice versa. Naively specify...
Bahr and Hutton recently developed a new approach to calculating correct compilers directly from spe...
In this article we present a new approach to the problem of calculating compilers. In particular, we...
Compilers are difficult to write, and difficult to get right. Bahr and Hutton recently developed a n...
In this article we present a new approach to the problem of calculating compilers. In particular, we...
Abstract. Reasoning about programming languages with non-deter-ministic semantics entails many diffi...
The standard approach to proving compiler correctness for concurrent languages requires the use of m...
Fifty years ago, John McCarthy and James Painter (1967) published the first paper on compiler verifi...
Choice trees have recently been introduced as a general structure for defining the semantics of prog...
International audienceGiven the complexity and sophistication of code generation and optimization al...
Compiler optimizations are critical to the efficiency of modern functional programs. At the same tim...
AbstractThe theory of relative program correctness and its preservation allows for elaborate and pra...
This paper presents an approach to compiler correctness in which the compiler generates a proof that...
Verified compilers are typically proved correct under severe restrictions on what the compiler\u27s ...
International audienceThis paper reports on the correctness proof of compiler optimizations based on...
Software frequently converts data from one representation to another and vice versa. Naively specify...
Bahr and Hutton recently developed a new approach to calculating correct compilers directly from spe...
In this article we present a new approach to the problem of calculating compilers. In particular, we...
Compilers are difficult to write, and difficult to get right. Bahr and Hutton recently developed a n...
In this article we present a new approach to the problem of calculating compilers. In particular, we...
Abstract. Reasoning about programming languages with non-deter-ministic semantics entails many diffi...
The standard approach to proving compiler correctness for concurrent languages requires the use of m...
Fifty years ago, John McCarthy and James Painter (1967) published the first paper on compiler verifi...
Choice trees have recently been introduced as a general structure for defining the semantics of prog...
International audienceGiven the complexity and sophistication of code generation and optimization al...
Compiler optimizations are critical to the efficiency of modern functional programs. At the same tim...
AbstractThe theory of relative program correctness and its preservation allows for elaborate and pra...
This paper presents an approach to compiler correctness in which the compiler generates a proof that...
Verified compilers are typically proved correct under severe restrictions on what the compiler\u27s ...
International audienceThis paper reports on the correctness proof of compiler optimizations based on...
Software frequently converts data from one representation to another and vice versa. Naively specify...