|Affiliation||University of Kent|
|Research area code||(I1) Computer science|
|Fellowship Inauguration Year||2015|
My work lies at the intersection of the theory and application of programming languages. Programming languages are central to progress in computing, helping to manage complexity in hardware and software by providing ways to hide unnecessary details (the principle of abstraction). Programming aids creativity, problem solving, and can provide new insights. Thus, programming languages are now a core tool in both the sciences and humanities.
My PhD work studied the foundations of context-dependent programs, a pattern which is particularly prevalent in numerical and graphical applications. I formalised classes of context-dependent computation, using abstract mathematics to reason about program correctness. From this, I developed a number of new programming approaches for various forms of context dependence.
During my post doc research (at Cambridge and now Imperial College) I have studied two separate, but related areas: (1) applying programming language research to aid programming in scientific computing (2) automatically verifying concurrent and parallel programs.
I believe that many concepts in programming language research can, and should, be targeted at creating new languages to aid core aspects of the scientific method: reproducibility, dissemination, validation, and to target modern computer hardware via parallelism.
|Title||Start date||End date|
|Meeting on Testing and Verification for Computational Science||Tuesday, 17 October 2017|
|Programming language evolution and sustainable software||Monday, 16 October 2017|