Peter William O'Hearn (born 13 July 1963 in Halifax, Nova Scotia), formerly a research scientist at Meta,[15] is a Distinguished Engineer at Lacework[16] and a Professor of Computer science at University College London (UCL).[17] He has made significant contributions to formal methods for program correctness. In recent years these advances have been employed in developing industrial software tools that conduct automated analysis of large industrial codebases.[10]
Education
O'Hearn attained a BSc degree in computer science from Dalhousie University, Halifax, Nova Scotia (1985), followed by MSc (1987) and PhD (1991) degrees from Queen's University, Kingston, Ontario, Canada. His dissertation was on Semantics of Non-interference: A natural approach, supervised by Robert D. Tennent.[11][18]
Career and research
O'Hearn is best known for separation logic,[12] a theory he developed with John C. Reynolds that unearthed new domains for scaling logical reasoning about code. This built on prior research from O'Hearn and David Pym on logic for resources, termed bunched logic.[13] With Stephen Brookes, Carnegie Mellon University, O'Hearn created Concurrent Separation Logic (CSL), extending the theory further. Tony Hoare, in discussing the grand challenge of program verification, described CSL as "solving two problems...concurrecy and object orientation".[19]
He conducted a study of programming languages which were similar to ALGOL, with his former doctoral advisor Robert D. Tennent, which became the book Algol-Like Languages.[20]
Separation logic has given rise to the Infer Static Analyzer (Facebook Infer), a static program analysis utility developed by O'Hearn's team at Facebook.[14] After 20 plus years in academia, O'Hearn began working at Facebook in 2013 with the acquisition of Monoidics Ltd, a startup he cofounded.[21] Since its inception, Infer has enabled Facebook engineers to resolve tens of thousands of bugs before reaching production.[22] It was open sourced in 2016, and is used by Amazon Inc, Spotify, Mozilla, Uber, and others.[14] In 2017, O'Hearn and the team open sourced RacerD, an automated static race condition detection tool that reduces the time it takes to flag potential problems in concurrent software, as part of the Infer platform.[23]