Designers of concurrent programs are faced with many choices of synchronization mechanisms, among which clear functional trade-offs exist. Making synchronization customizable is h...
Using the application programming interfaces (API) of large software systems requires developers to understand details about the interfaces that are often not explicitly defined. ...
Garbage collectors are notoriously hard to verify, due to their lowlevel interaction with the underlying system and the general difficulty in reasoning about reachability in graph...
Contracts are behavioural descriptions of Web services. We devise a theory of contracts that formalises the compatibility of a client to a service, and the safe replacement of a s...
We define a type system, which may also be considered as a simple Hoare logic, for a fragment of an assembly language that deals with code pointers and jumps. The typing is aimed ...