Bernard Sufrin Created 2026-10-31 Updated 2026-11-05
Bernard Sufrin is a computer scientist whose work includes formal methods, programming language design and tools for mathematical reasoning about programs. His Oxford profile identifies computer support for refinement and proof among his research interests.[ref]
His Communicating Scala Objects by Bernard Sufrin describes a Scala library for concurrent computing through communicating components. Channels and process composition make communication structure explicit; closure and alternation then require specified semantics so that a component can respond coherently to several possible interactions.[ref]
Formal methods 2026-11-05
Formal methods use mathematically defined models, specifications and reasoning techniques to describe and analyze systems. They include writing a formal specification, proving properties through formal verification, exploring a finite model by model checking and deriving information through static program analysis. A method's guarantee is relative to its model and assumptions.
For example, a loop summing an array can maintain the invariant that the current accumulator equals the sum of the entries already visited. Initialization, preservation by one iteration and the exit condition establish the returned sum; a separate termination argument shows that an answer is reached. Arithmetic and array bounds must be specified, since a proof using unbounded integers need not describe overflowing machine arithmetic.[ref]