remove old redirect file
[web.git] / research / thesis.html
index 2510b236fee5de8852aa0ae21c46dfc775fd7b59..5e486158b71293fe4f9f6a4c1da3b671dab69217 100644 (file)
@@ -3,4 +3,22 @@ title: Understanding and Evolving the Rust Programming Language
 slug: Thesis
 ---
 
 slug: Thesis
 ---
 
-This is where my PhD thesis will be made available.
+<p><em>Rust</em> is a young systems programming language that aims to fill the gap between <em>high-level languages</em>—which provide strong static guarantees like memory and thread safety—and <em>low-level languages</em>—which give the programmer fine-grained control over data layout and memory management. This dissertation presents two projects establishing the first formal foundations for Rust, enabling us to better <em>understand</em> and <em>evolve</em> this important language: <em>RustBelt</em> and <em>Stacked Borrows</em>.</p>
+
+<p><em>RustBelt</em> is a formal model of Rust’s type system, together with a soundness proof establishing memory and thread safety. The model is designed to verify the safety of a number of intricate APIs from the Rust standard library, despite the fact that the implementations of these APIs use <em>unsafe</em> language features.</p>
+
+<p><em>Stacked Borrows</em> is a proposed extension of the Rust specification, which enables the compiler to use the strong aliasing information in Rust’s types to better analyze and optimize the code it is compiling. The adequacy of this specification is evaluated not only formally, but also by running real Rust code in an instrumented version of Rust’s <em>Miri</em> interpreter that implements the Stacked Borrows semantics.</p>
+
+<p>RustBelt is built on top of <em>Iris</em>, a language-agnostic framework, implemented in the Coq proof assistant, for building higher-order concurrent separation logics. This dissertation begins by giving an introduction to Iris, and explaining how Iris enables the derivation of complex high-level reasoning principles from a few simple ingredients. In RustBelt, this technique is exploited crucially to introduce the <em>lifetime logic</em>, which provides a novel separation-logic account of <em>borrowing</em>, a key distinguishing feature of the Rust type system.</p>
+
+<p style="color:red">
+This thesis has received an <a href="https://awards.acm.org/about/2020-doctoral-dissertation" style="color:red;font-weight:bold;">Honorable Mention for the 2020 ACM Doctoral Dissertation Award</a>, a <a href="https://www.mpg.de/prizes/otto-hahn-medal" style="color:red;font-weight:bold;">2021 Otto Hahn Medal</a> and the <a href="https://etaps.org/2021/doctoral-dissertation-award" style="color:red;font-weight:bold;">2021 ETAPS Doctoral Dissertation Award</a>.
+</p>
+
+<h3>Download and references</h3>
+
+<ul>
+<li><a href="phd/thesis-screen.pdf">Screen-optimized version (PDF)</a> (updated 2020-12-08)</li>
+<li><a href="phd/thesis-print.pdf">Print-optimized version (PDF)</a> (official final version)</li>
+<li>DOI: <a href="http://dx.doi.org/10.22028/D291-31946">10.22028/D291-31946</a></li>
+</ul>