Making Bitcoin Legal

Exploring New Attack Vectors for Exploitation of Smartphones (2017)

The Notion of Proof in Hardware Verification (draft) (1989)

ML For The Working Programmer, 2nd ed.

Some Were Meant for C: The Endurance of an Unmanageable Language

Network Semantics

Why Cryptosystems Fail (1993)

ML for the Working Programmer, 2nd Edition (1996)

ASCII and Unicode quotation marks

Some Were Meant for C: The Endurance of an Unmanageable Language

Firmament: Fast, Centralized Scheduling at Scale (2016)

A Generic Synthesisable Test Bench

Comparison of AArch64 Dynamic Binary Modification Tools

Visual Cryptography Kit

ALEXANDRIA: Large-Scale Formal Proof for the Working Mathematician

Chaffinch: Confidentiality in the Face of Legal Threats

Building Auto-Tuners with Structured Bayesian Optimization

Understanding the Basis of the Kalman Filter

A semantic model for a substantial fragment of C

Algebraic Subtyping

Algebraic Subtyping [pdf]

Course materials from Cambridge's Optimizing Compilers course

Custom ELF program headers—what, why and how

Debugging with the natives, part 2

Polymorphism, subtyping and type inference in MLsub [PDF]

The Missing Link: Explaining ELF Static Linking, Semantically

Kalman Filter via a Simple and Intuitive Derivation

The Operating System: Should There Be One? (2013)

The Lynx Queue

OCaml inside: a drop-in replacement for libtls

More →