Bio
My research area is programming languages and software verification. I work on the mathematical principles that define the behaviour of the essential tools that software engineers use to craft all the fantastic technology surrounding us today. My contributions to type systems around ownership, immutability, and capabilities redefined the security guarantees that modern software engineering can provide.
Impact: My work over the first decade of my career involved the concepts of ownership and immutability, and how to provide usable language support for both with the help of type parameters. My approach has now been widely adopted by the Rust programming language as “lifetime parameters”. In the second decade, I worked on the design and production of a usable and secure programming language called Wyvern that utilises object capabilities and effects. A popular configuration language called CUE is used widely within Alibaba’s cloud and service configuration. CUE based its module system design on the Wyvern modules.
Alex completed his PhD in 2006 on Generic Ownership - showing how type polymorphism can be used to provide ownership type support in any language, such as the modern-day Rust Programming Language that popularised this approach. Alex went on to show deep connections between ownership and immutability with the help of the Royal Society of New Zealand Marsden Funding in 2008 - 2011 with a book chapter on Immutability outlining all the core outcomes of this novel approach.
After a full-year sabbatical at what was then the Institute for Software Research at Carnegie Mellon University, working with Professor Jonathan Aldrich, I have created a novel general-purpose Wyvern Programming Language designed from the ground up with security and usability as its primary goals. Many students and publications came out of that project over the following decade, including novel ideas for type-specific languages and decidable typing for type members - some of which are reflected in the modern generation of the industrial Scala Programming Language.
I am currently working on some ideas for the modern module systems designs based on capabilities, combinations of abstract and algebraic effects, and other programming language design ideas, including for the world of fully verified and secure software targeting embedded and quantum computing systems.
Degrees
BSc(Hons), PhD, Victoria University of Wellington, New Zealand
Research Interests
Programming Languages Design, Security, Software Engineering
Projects for Potential Students
I am always looking for graduate students. Feel free to email me to discuss your options.
Publications
Please click here to see a list of my publications.
Students
Please click here for a list of my current and previous students.
Teaching
Please click here for a list of my current and past courses.
Conference Committees
Please click here for a list of my current and past conference committee memberships.