4 citations · 10 across the 9 of their papers we have counts for
10 papers
Necessity Specifications for Robustness
Julian Mackay, Sophia Drossopoulou, James Noble +1
Robust modules guarantee to do only what they are supposed to do - even in the presence of untrusted, malicious clients, and considering not just the direct behaviour of individual…
Rusty Links in Local Chains
James Noble, Julian Mackay, Tobias Wrigstad
Rust successfully applies ownership types to control memory allocation. This restricts the programs' topologies to the point where doubly-linked lists cannot be programmed in Safe…
More Programming Than Programming: Teaching Formal Methods in a Software Engineering Programme
James Noble, David Streader, Isaac Oscar Gariano +1
Formal methods for software correctness are critical to the future of software engineering - and so must be an essential part of software engineering education. Unfortunately, form…
Dala: A Simple Capability-Based Dynamic Language Design For Data Race-Freedom
Kiko Fernandez-Reyes, Isaac Oscar Gariano, James Noble +3
Dynamic languages like Erlang, Clojure, JavaScript, and E adopted data-race freedom by design. To enforce data-race freedom, these languages either deep copy objects during actor (…
Holistic Specifications for Robust Programs
Sophia Drossopoulou, James Noble, Julian Mackay +1
Functional specifications describe what program components do: the sufficient conditions to invoke a component's operations. They allow us to reason about the use of components in…
Towards Gradual Checking of Reference Capabilities
Kiko Fernandez-Reyes, Isaac Oscar Gariano, James Noble +1
Concurrent and parallel programming is difficult due to the presence of memory side-effects, which may introduce data races. Type qualifiers, such as reference capabilities, can re…