Errors in code for software lead to failures both routine and catastrophic -- and to the vulnerabilities at the root of the escalating security crisis.
Errors in code for people -- the human genome -- give rise to chronic conditions, devastating rare diseases and, for half of us, cancer.
This talk addresses how to end errors in code -- both digital and biological -- through conservatively approximating solutions to the halting problem for the former and through a computational rethink of the practice of molecular or "precision" medicine for the latter. To evade the halting problem, I will present a broad, universal framework for conservatively approximating the behavior of programs and discuss the success of applying this approach to detecting and eliminating security issues in software. I will then provide a programmer's introduction and overview of precision medicine; argue that computation has becoming the limiting reagent in saving lives; and explain how a computational re-visioning to the practice of medicine is the key to the diagnosis, discovery and treatment of both rare genetic disorders and cancers.
Solve halting problem. Cure cancer.
Programmers curious about static analysis or medicine.
Matt Might is the inaugural Director of the Hugh Kaul Personalized Medicine Institute. He is also on the faculty in the Department of Biomedical Informatics at the Harvard Medical School (since July 2015) and a strategist in the Executive Office of the President at the White House (since March 2016).
In computer science, Matt’s primary research area is static analysis of higher-order programs, although he also does work in functional programming, relational programming, parsing and purely functional data structures.
In medicine, Matt's primary research area is precision medicine -- the use of data (particularly genomic data) to optimise healthcare outcomes and to deliver the best possible treatment for patients. He is particularly interested in drug repurposing and novel drug development.
His broader interests include language design, compiler implementation, security, program optimization, parallelism and program verification.