<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
Dear all,
<div><br>
</div>
<div>We have a fully funded PhD scholarship available in the School of Computer Science at the University of St Andrews on ‘Refactoring Fault-Tolerant Communication Protocols’.</div>
<div><br>
</div>
<div>Any potential candidates are advised to contact Adam Barwell (adb23@st-andrews.ac.uk) for more information. Formal applications can be made through the School’s postgraduate research portal [1].</div>
<div><br>
</div>
<div>A description of the project can be found below and full details of the project can be found here: <a href="https://urldefense.com/v3/__https://www.findaphd.com/phds/project/refactoring-fault-tolerant-communication-protocols/?p165748__;!!IBzWLUs!Vmjnp7wt0f_QN37wtPKm3z2zlPfU99UK_N5vO_8KAND5DFYHTsqT4fyYifuNrkYM1w-imOp0D5TxdB-IfDE53oi8RzbwbJQYKP4$">https://www.findaphd.com/phds/project/refactoring-fault-tolerant-communication-protocols/?p165748</a></div>
<div><br>
</div>
<div>The positions are open for both UK and international applications.</div>
<div><br>
</div>
<div>Kind regards,</div>
<div><br>
</div>
<div>Adam</div>
<div><br>
</div>
<div>[1] https://www.st-andrews.ac.uk/computer-science/prospective/pgr/how-to-apply/</div>
<div><br>
</div>
<div>----</div>
<div><br>
</div>
<div>Project Title: Refactoring Fault-Tolerant Communication Protocol</div>
<div><br>
</div>
<div>
<div>Concurrent and distributed systems are now standard. Yet programming approaches have failed to keep pace. These systems are prone to a range of subtle and difficult-to-debug errors, e.g. communication mismatches, deadlocks, and livelocks. Session Types
 aim to address these issues via high-level formal specifications of communications protocols. An advantage of this approach is that session types enable static guarantees of desirable behavioural properties, e.g. deadlock-freedom and liveness.</div>
<div><br>
</div>
<div>Recent work has focussed on extending session types to support fault-tolerance, enabling protocols with real-world crash-handling behaviours, e.g. failover and the circuit-breaker pattern. Furthermore such approaches enable a gradual approach to introducing
 failure-handling, whereby a fully reliable protocol can be made fault-tolerant one participant at a time. Nevertheless, a fault-tolerant protocol can be significantly larger and more complex than the fully-reliable protocol from which it is derived. Moreover,
 ensuring that the desired transformations are effected uniformly and correctly both from a protocol and implementation perspectives can be a laborious and error-prone process.</div>
<div><br>
</div>
<div>This PhD project will address this issue by leveraging semi-automatic program transformation techniques from refactoring to develop automatic methods to introduce and manipulate fault-tolerant behaviours in communications protocols. The project will explore
 the theoretical underpinnings of such transformations, ensuring that the guarantees provided by session types are preserved. Additionally, the project aims to develop tooling to enable application of the developed techniques to real-world code.</div>
</div>
</body>
</html>