Lecturer at the School of Computing, University of Kent
I am interested in programming language theory and applications, new programming techniques and language approaches for aiding reproducibility and sustainability of scientific software, and the use of verification techniques for sustainability.
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 the communication of ideas. Thus, programming languages are now a core research tool in both the sciences and humanities. My work lies at the intersection between the theory and application of programming languages.
On the theoretical side, I study fundamental structures of computation that are widely used in programming, mainly focusing on concurrency and resource usage. This study of underlying computational structures is exploited in my work on languages and tools to aid the understanding, expression, verification, and efficient execution of code.
On the application side, I apply ideas from programming language research to aid computational science. This includes developing tools and language extensions to help preserve the value in existing, long-running projects, as well as developing new programming approaches for the future.
I believe that verification can play a key role in supporting sustainable software. For example, most verification approaches (such as testing or type/specification systems) encode program properties and invariants which give useful specifications of program behaviour. This helps to document the intention behind the code and aids code maintenance, extension, adaptation, and reuse.
I also co-organise the Workshop on Programming Language Evolution (PLE). The workshop gathers researchers involved in addressing the problems inherent in language evolution, such as, how is existing code supported if the language changes? and how can we assess the advantages/disadvantages of changes to a language? These problems are at the core of supporting sustainable software in the long term.
Dominic has an undergraduate degree in Computer Science from the University of Warwick and PhD in Computer Science from the University of Cambridge's Computer Laboratory. He then worked as a Research Associate at the Computer Laboratory and in the Department of Computing at Imperial College London before taking up his current post at the University of Kent.
Check out contributions by and mentions of Dominic Orchard on www.software.ac.uk