by Ilya Sergey on Dec 23, 2019 | Tags: composition, consensus protocols, Distributed systems, formal reasoning, verification
Ideas from PL research, such as functional combinators, behavioural types, and compiler correctness proofs, can be applied to distributed systems, facilitating their understanding, implementation, and formal verification.
Read more...
by Ilya Sergey on Aug 7, 2019 | Tags: abstract interpretation, concurrency, dynamic analysis, soundness, static analysis, testing
The purpose of a program analysis is to infer whether a certain property of a program execution can be observed at runtime. The notion of an analysis’ soundness defines how much confidence one should put in its results. The notion is not uniform and is determined by whether the analysis is intended to be used as a testing or as a verification tool.
Read more...