Overview
Since the early nineteen sixties an enormous number of programming languages have been designed and implemented. Reasons for the continuous stream of new languages include changes in both the underlying architectures and the range of problems people believe are amenable to solution by computer. Programming languages are large and complex artifacts. There may be errors in both their design and their implementation.
My work has focused on the specification and design of programming languages and their runtime systems. I work on:
- providing a clearer understanding of widely used programming languages
- developing new language features for faster development of better programs - my main focus recently has been in the development of features for concurrent programming
- development of verification tools and automatic test suites
A clearer understanding of a programming language can be obtained by describing its significant features in formal models and using examples to clarify any issues. The implications of these issues can be developed for programming, program development and language implementation. New features are also described in terms of formal models and developed via prototype implementations.
Guest Lectures
Programming Language Research and Technical Disruption, ACM-W WomENcourage, Johannes Kepler University LinzLinz, Austria, 2016
Research Student Supervision
Allwood,T, PhD Student
Anderson,C, Second supervision
Argent-Katwala,A, Second supervision
Buckley,A, Second supervision
Cai,H, PhD Student
Chatley,R, PhD Student
Cunningham,D, PhD Student
Furey,D, PhD Student
Gudka,K, PhD Student
Hosek,P, Second supervision
Hu,R, Second supervision
Jones,W, Second supervision
Kotrajaras,V, PhD Student
Martins,P, Second supervision
Petrounias,A, PhD Student
Phillips,A, PhD Student
Radestock,M, PhD Student
Smith,M, Second supervision
Spinellis,D, PhD Student