HOME STUDENTS TEACHING COMMITTEES EMAIL

About Me

Research

My research area is programming languages. I work on the mathematical principles that define the behaviour of the essential tool that software engineers use to craft all the amazing 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”. Throughout my career, I worked with small startups, including being employee number 3 at Innaworks in 2006, where I pioneered language translation research between different platforms. The well-known ``The Performance of Open Source Applications'' book cites my research with my Master's student Jan Larres that revolutionised the performance evaluations in Talos and similar systems from the early 2010s. 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.

Biography

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, Alex created a novel general-purpose Wyvern Programming Language designed from the ground up with security and usability as its primary goals. There were a large number of students and publications that 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.

Alex is 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.

Publications (Feel Free to Email Me for a Copy)

Book Chapters

  1. James Noble, Alex Potanin, Toby Murray, Mark S. Miller. Abstract and Concrete Data Types vs Object Capabilities. In P. Müller and Ina Schaefer (Eds.): Principled Software Development - Essays Dedicated to Arnd Poetzsch-Heffter on the Occasion of his 60th Birthday. Springer, Heidelberg. 2018.
  2. Alex Potanin, Johan Ostlund, Yoav Zibin, Michael D. Ernst. Immutability. In D. Clarke et al. (Eds.): Aliasing in Object-Oriented Programming, LNCS 7850, pp. 233-269. Springer, Heidelberg. 2013.

Journal Papers

  1. Zara Hassan, Christoph Treude, Michael Norrish, Graham Williams, and Alex Potanin. Characterising Reproducibility Debt in Scientific Software: A Systematic Literature Review. The Journal of Systems & Software.
  2. Tobias Runge, Tabea Bordis, Alex Potanin, Thomas Thum, Ina Schaefer. Flexible Correct-by-Construction Programming. Logical Methods in Computer Science (Accepted in April 2023).
  3. Tobias Runge, Marco Servetto, Alex Potanin, Ina Schaefer. Immutability and Encapsulation for Sound OO Information Flow Control. ACM Transactions on Programming Languages and Systems. Volume 45, Issue 1, Article No.: 3 pp 1–35.
  4. Isaac Oscar Gariano, Marco Servetto, Alex Potanin. Using Capabilities for Strict Runtime Invariant Checking. Science of Computer Programming, Volume 224, 2022.
  5. Darya Melicher, Anlun Xu, Valerie Zhao, Alex Potanin, Jonathan Aldrich. Bounded Abstract Effects. TOPLAS, Volume 44, Issue 1, March 2022.
  6. Isaac Oscar Gariano, Marco Servetto, Alex Potanin, Hrshikesh Arora. Iteratively Composing Statically Verified Traits. VPT-2019 Post-Proceedings as a volume of Electronic Proceedings in Theoretical Computer Science (EPTCS). Issue 299, Paper 7.
  7. Chris Male, David Pearce, Alex Potanin, and Constantine Dymnikov. Formalisation and Implementation of an Algorithm for Bytecode Verification of @NonNull Types. Science of Computer Programming. Volume 76, Issue 7, Pages 587 - 608, July 2011.
  8. Alex Potanin, James Noble, Dave Clarke, and Robert Biddle. Featherweight Generic Confinement. Journal of Functional Programming. Volume 16, Number 6, Pages 793 - 811, September 2006.
  9. Alex Potanin, James Noble, Marcus Frean, and Robert Biddle. Scale-free Geometry in Object-Oriented Programs. Communications of the ACM. Pages 99 - 103. May 2005. (ACM Link)
  10. Alex Potanin, James Noble, and Robert Biddle. Checking Ownership and Confinement. Concurrency and Computation: Practice and Experience. Volume 16, Issue 7, Pages 671 - 687, 2004.

Refereed Conference Papers

  1. Emmanuel Iko-Ojo Simon, Chirath Hettiarachchi, Alex Potanin, Hanna Suominen, and Fatemeh Fard. Automated Detection of Algorithm Debt in Deep Learning Frameworks: An Empirical Study. In ICSME 2024 Registered Reports Track.
  2. David Young, Ziyi Yang, Ilya Sergey, Alex Potanin. Higher-Order Specifications for Deductive Synthesis of Programs with Pointers. In ECOOP 2024.
  3. Amos Robinson, Alex Potanin. Pipit on the Post: proving pre- and post-conditions of reactive systems. In ECOOP 2024.
  4. Zara Hassan, Christoph Treude, Michael Norrish, Graham Williams, Alex Potanin. Reproducibility Debt: Challenges and Future Pathways. In FSE-IVR 2024 (FSE 2024 Ideas, Visions and Reflections Track).
  5. Tobias Runge, Alexander Kittelmann, Marco Servetto, Alex Potanin, and Ina Schaefer. Information Flow Control-by-Construction for an Object-Oriented Language. In proceedings of SEFM 2022.
  6. Tobias Runge, Alex Potanin, Thomas Thum, and Ina Schaefer. Traits: Correctness-by-Construction for Free. In proceedings of FORTE 2022. Won FORTE 2022 Best Paper award.
  7. Manish Singh, Lindsay Groves, and Alex Potanin. A Relaxed Balanced Lock-free Binary Tree. In proceedings of PDCAT 2020.
  8. Julian Mackay, Alex Potanin, Jonathan Aldrich, and Lindsay Groves. Syntactically Restricting Bounded Polymorphism for Decidable Subtyping. In proceedings of APLAS2020.
  9. Julian Mackay, Alex Potanin, Jonathan Aldrich, and Lindsay Groves. Decidable Subtyping for Path Dependent Types. In proceedings of POPL2020. Additionally, the artifact successfully passed the Artifact Evaluation and was given Reusable Artifact badge.
  10. Aaron Craig, Alex Potanin, Lindsay Groves and Jonathan Aldrich. Capabilities: Effects for Free. In proceedings of ICFEM2018. Pp 231-247. Springer.
  11. Jens Dietrich, Kamil Jezek, Shawn Rasheed, Amjed Tahir, Alex Potanin. EvilPickles: DoS attacks based on Object-Graph Engineering. In proceedings of ECOOP2017. Additionally, the artifact successfully passed the Artifact Evaluation. This paper won ECOOP 2017 Distinguished Artifact Award.
  12. Darya Melicher, Yangqingwei Shi, Alex Potanin, Jonathan Aldrich. A Capability-Based Module System for Authority Control. In proceedings of ECOOP2017. Additionally, the artifact successfully passed the Artifact Evaluation.
  13. Garming Sam, Nicholas Cameron and Alex Potanin. Automated Refactoring of Rust Programs. Article No.: 14. In proceedings of ACSC2017.
  14. Joseph Lee, Jonathan Aldrich, Troy Shaw, Alex Potanin. A Theory of Tagged Objects. In proceedings of ECOOP2015. Pp 999-1026. Additionally, the artifact on the software section of my home page successfully passed the Artifact Evaluation.
  15. Cyrus Omar, Darya Kurilova, Ligia Nistor, Benjamin Chung, Alex Potanin, and Jonathan Aldrich. Safely Composable Type-Specific Languages. In proceedings of ECOOP2014. Pp 105-130. Springer-Verlag. This paper won ECOOP 2014 Distinguished Paper Award.
  16. Marco Servetto, Julian Mackay, Alex Potanin, and James Noble. The Billion-Dollar Fix: Safe Modular Circular Initialisation with Placeholders and Placeholder Types. In proceedings of ECOOP2013. Pp 205-229. Springer-Verlag.
  17. Constantine Dymnikov, David Pearce and Alex Potanin. OwnKit: Inferring Modularly Checkable Ownership Annotations for Java. In proceedings of the Australasian Software Engineering Conference (ASWEC) 2013. Pp 181-190. IEEE.
  18. Alex Potanin, Monique Damitio and James Noble. Are Your Incoming Aliases Really Necessary? Counting the Cost of Object Ownership. In proceedings of the International Conference on Software Engineering (ICSE) 2013. Pp 742-751. ACM/IEEE.
  19. Atkins, Alex Potanin and Lindsay Groves. The Design and Implementation of Clocked Variables in X10. In proceedings of Australasian Computer Science Conference (ACSC) 2013. Pp 87-96. CRPIT.
  20. Jan Larres, Alex Potanin and Yuichi Hirose. A Study of Performance Variations in the Mozilla Firefox Web Browser. In proceedings of Australasian Computer Science Conference (ACSC) 2013. Pp 3-12. CRPIT.
  21. Hien Tran, Craig Anslow, Stuart Marshall, Alex Potanin, Mairead de Roiste. Lessons Learnt from Collaboratively Creating Maps on a Touch Table. In proceedings of the 12th Annual Conference of the New Zealand Chapter of the ACM Special Interest Group on Computer-Human Interaction (CHINZ) 2011. Pp. 105-108. ACM SIGCHI.
  22. Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, Michael D. Ernst. Ownership and Immutability in Generic Java. In proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) 2010. Pp. 598-617. ACM.
  23. Radu Muschevici, Alex Potanin, Ewan Tempero, and James Noble. Multiple Dispatch in Practice. In proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) 2008. Pp. 563-582. ACM. (ACM Link)
  24. Chris Male, David Pearce, Alex Potanin, and Constantine Dymnikov. Java Bytecode Verification for @NonNull Types. In proceedings of Compiler Construction (CC) 2008. Pp 229-244.
  25. Neil Ramsay, Stuart Marshall, and Alex Potanin. Annotating UI Architecture with Actual Use. In proceedings of Australasian User Interface Conference (AUIC) 2008. Pp. 75-78. CRPIT.
  26. Yoav Zibin, Alex Potanin, Mahmood Ali, Shay Artzi, Adam Kiezun, and Michael D. Ernst. Object and Reference Immutability using Java Generics. In proceedings of the Foundations of Software Engineering (FSE) Conference, Dubrovnik, Croatia, September 2007. Pp. 75-84. ACM. (Won ESEC/FSE 2007 ACM SIGSOFT Distinguished Paper Award.) (ACM Link)
  27. Alex Potanin, James Noble, Dave Clarke, and Robert Biddle. Generic Ownership for Generic Java. In proceedings of the Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) Conference, Portland, Oregon, October 2006. Pp. 311-324. ACM. (ACM Link)
  28. Alex Potanin, James Noble, and Robert Biddle. Snapshot Query-Based Debugging. In proceedings of the Australian Software Engineering Conference, Melbourne, Australia, April 2004. Pp 251-261.

Refereed Workshop Papers

  1. Abhaas Goyal, Alex Potanin and Jonathan Aldrich. A Comparative Study of Traditional versus Capability-Based Module Systems for Modern Programming Languages. In PLATEAU 2024.
  2. Amos Robinson and Alex Potanin. Pipit: Reactive Systems in F Star (Extended Abstract). In TyDe 2023.
  3. Baptiste Pauget, David Pearce, and Alex Potanin. Towards Compilation of an Imperative Language for FPGAs. In VMIL 2018.
  4. James Noble, Sophia Drossopoulou, Mark S Miller, Toby Murray and Alex Potanin. Abstract Data Types in Object-Capability Systems. In IWACO 2016.
  5. Du Li, Alex Potanin, and Jonathan Aldrich. Delegation vs Inheritance for Typestate Analysis. In FTfJP 2015.
  6. Darya Kurilova, Alex Potanin, and Jonathan Aldrich. Wyvern: Impacting Software Security via Programming Language Design. In PLATEAU 2014. Pages 57-58.
  7. James Noble and Alex Potanin. On Owners-as-Accessors. In IWACO 2014.
  8. Jonathan Aldrich, Cyrus Omar, Alex Potanin and Du Li. Language-Based Architectural Control. In IWACO 2014.
  9. Cyrus Omar, Benjamin Chung, Darya Kurilova, Alex Potanin and Jonathan Aldrich. Type-Directed, Whitespace-Delimited Parsing for Embedded DSLs. In proceedings of the First Workshop on the Globalization of Domain Specific Languages (GlobalDSL) 2013. Pp 8-11.
  10. Ligia Nistor, Darya Kurilova, Stephanie Balzer, Benjamin Chung, Alex Potanin and Jonathan Aldrich. Wyvern: A Simple, Typed, and Pure Object-Oriented Language. In Proceedings of the 5th Workshop on MechAnisms for SPEcialization, Generalization and inHeritance (MASPEGHI) 2013. Pp 9-16.
  11. Marco Servetto, David Pearce, Lindsay Groves, and Alex Potanin. Balloon Types for Safe Parallelisation over Arbitrary Object Graphs. Workshop on Determinism and Correctness in Parallel Programming (WoDeT) 2013.
  12. Atkins, Alex Potanin, Lindsay Groves. Clocked References in X10. Languages for the Multicore Era (LaME) 2012.
  13. Julian Mackay, Hannes Mehnert, Alex Potanin, Lindsay Groves, Nicholas Cameron. Encoding Featherweight Java with Assignment and Immutability using The Coq Proof Assistant. In the proceedings of Formal Techniques for Java-like Programs (FTfJP) 2012. Pp 11-19.
  14. Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, Michael D. Ernst. Ownership and Immutability in Generic Java (OIGJ). IBM Programming Languages and Development Environments Seminar 2010 (PLDE2010).
  15. Paley Li, Stephen Nelson, and Alex Potanin. Ownership for Relationships. International Workshop on Aliasing, Confinement, and Ownership (IWACO) 2009. Article No. 8.
  16. Paley Li, Alex Potanin, James Noble, and Lindsay Groves. Towards Unifying Immutability and Ownership. International Workshop on Aliasing, Confinement, and Ownership (IWACO) at ECOOP2008.
  17. Christo Fogelberg, Alex Potanin, and James Noble. Ownership Meets Java. International Workshop on Aliasing, Confinement, and Ownership (IWACO) at ECOOP2007.
  18. Alex Potanin, James Noble, Tian Zhao, Jan Vitek. A High Integrity Profile for Memory Safe Programming in Real-time Java. In proceedings of the 3rd workshop on Java Technologies for Real-time and Embedded Systems, San Diego, CA, USA, October 2005.
  19. Alex Potanin, James Noble, Dave Clarke, Robert Biddle. Featherweight Generic Ownership. In proceedings of the workshop on Formal Techniques for Java-like Programs (FTfJP) in European Conference for Object-Oriented Programming, Glasgow, Scotland, July 2005.
  20. Alex Potanin, James Noble, Dave Clarke, Robert Biddle. Defaulting Generic Java to Ownership. In proceedings of the workshop on Formal Techniques for Java-like Programs (FTfJP) in European Conference for Object-Oriented Programming, Oslo, Norway, June 2004.
  21. Alex Potanin, James Noble, Dave Clarke, and Robert Biddle. Featherweight Generic Confinement. In proceedings of the International Workshop on Foundations of Object-Oriented Languages (FOOL), affiliated with Symposium on Principles of Programming Languages, Venice, Italy, January 2004.
  22. James Noble, Robert Biddle, Ewan Tempero, Alex Potanin, and Dave Clarke. Towards a Model of Encapsulation. In proceedings of the International Workshop on Aliasing, Confinement and Ownership (IWACO) in European Conference for Object-Oriented Programming, Darmstadt, Germany, July 2003.
  23. Alex Potanin and James Noble. Checking Ownership and Confinement Properties. In proceedings of the workshop on Formal Techniques for Java-like Programs (FTfJP) in European Conference for Object-Oriented Programming, Malaga, Spain, June 2002.

Edited Journals

  1. Alex Potanin and Gail Murphy (Editors). Special Issue on the 23rd Asia-Pacific Software Engineering Conference (APSEC) 2016. Science of Computer Programming. Volume 163, 1 October 2018.
  2. Alex Potanin (Editor). Special Issue on New Object-Oriented Languages (NOOL) 2015. Journal of Object Technology. Volume 16, no. 2 (April 2017).
  3. Taso Viglas and Alex Potanin (Editors). Special Issue on Computing: The Australasian Theory Symposium 2011. International Journal on Foundations of Computer Science (IJFCS), 2013. Vol. No. 24, Issue No. 1.
  4. Taso Viglas and Alex Potanin (Editors). Special Issue on Computing: The Australasian Theory Symposium 2010. Chicago Journal of Theoretical Computer Science (CJTCS), May 2011. Volume 2010.

Other Refereed Publications

  1. Manish Singh, Lindsay Groves, Alex Potanin. A Relaxed Balanced Non-Blocking Binary Search Tree. Poster in International Conference on Parallel Processing (ICPP) 2019.
  2. Isaac Oscar Gariano, Marco Servetto, Alex Potanin, Hrshikesh Arora. Iteratively Composing Statically Verified Traits. Extended Abstract at Seventh International Workshop on Verification and Program Transformation (VPT 2019).
  3. Darya Melicher, Yangqingwei Shi, Valerie Zhao, Alex Potanin, and Jonathan Aldrich. Using Object Capabilities and Effects to Build an Authority-Safe Module System. Poster in HotSoS 2018.
  4. Aaron Craig, Alex Potanin, Lindsay Groves, Jonathan Aldrich. Capabilities and Effects. In OCAP 2017.
  5. Darya Melicher, Yangqingwei Shi, Valerie Zhao, Alex Potanin, and Jonathan Aldrich. Using Object Capabilities and Effects to Build an Authority-Safe Module System. In OCAP 2017.
  6. Jonathan Aldrich and Alex Potanin. Usably Expressing and Enforcing Design in Wyvern. In NOOL 2017.
  7. Jens Dietrich, Kamil Jezek, Shawn Rasheed, Amjed Tahir, Alex Potanin. EvilPickles: DoS attacks based on Object-Graph Engineering (Artifact). In DARTS.
  8. Darya Melicher, Yangqingwei Shi, Alex Potanin, Jonathan Aldrich. A Capability-Based Module System for Authority Control (Artifact). In DARTS.
  9. Jonathan Aldrich and Alex Potanin. Delegation Revisited. NOOL 2016.
  10. Jonathan Aldrich and Alex Potanin. Naturally Embedded DSLs. DSLDI 2016.
  11. Darya Kurilova, Alex Potanin, and Jonathan Aldrich. Modules in Wyvern: Advanced Control over Security and Privacy. Poster in HotSOS 2016. See last page here.
  12. Joseph Lee, Jonathan Aldrich, Troy Shaw, and Alex Potanin. A Theory of Tagged Objects (Artifact). DARTS, Volume 1, Issue 1, 2015.
  13. Cyrus Omar, Darya Kurilova, Ligia Nistor, Benjamin Chung, Alex Potanin, and Jonathan Aldrich. Safely Composable Type-Specific Languages. Poster in ECOOP2014.
  14. Darya Kurilova, Cyrus Omar, Ligia Nistor, Benjamin Chung, Alex Potanin, Jonathan Aldrich. Type-Specific Languages to Fight Injection Attacks. Poster in HotSOS 2014.
  15. Cyrus Omar, Benjamin Chung, Darya Kurilova, Ligia Nistor, Alex Potanin, Jonathan Aldrich. Extensible Type-Driven Parsing for Embedded DSLs in Wyvern. Parsing@SLE 2013.
  16. Cyrus Omar, Benjamin Chung, Darya Kurilova, Ligia Nistor, Alex Potanin, Jonathan Aldrich. Extensible Type-Driven Parsing for Embedded DSLs in Wyvern. Poster in SPLASH2013.
  17. Jonathan Aldirch, Benjamin Chung, Darya Kurilova, Cyrus Omar, Alex Potanin. DSL support in Wyvern Language. Domain Specific Language Design and Implementation (DSLDI) 2013.
  18. Jan Larres, Alex Potanin, and Yuichi Hirose. Performance Variance Evaluation on Mozilla Firefox. In the proceedings of the NZCSRSC2011.
  19. Mairead de Roiste, Hien Tran, and Alex Potanin. What makes a map? At Ireland Organisation for Geographic Information Conference (IRLOGI) 2010.
  20. Chris Andreae, Donald Gordon, Alex Potanin, James Noble, Robert Biddle. Terrier: Static Query-Based Debugging in Eclipse. Poster in Conference on Object-Oriented Programming, Systems, Languages, and Applications, Vancouver, Canada, October 2004.
  21. Alex Potanin. Generic Ownership: Practical Ownership Control in Programming Languages. In Doctoral Symposium Proceedings of Conference on Object-Oriented Programming, Systems, Languages, and Applications, Vancouver, Canada, October 2004.
  22. Alex Potanin. Practical Ownership Control in Programming Languages. In Doctoral Symposium Proceedings of European Conference for Object-Oriented Programming, Oslo, Norway, June 2004.
  23. Alex Potanin. A Tool for Ownership and Confinement Analysis of the Java Object Graph. Conference poster and student research competition entry in Object-Oriented Programming Systems, Languages, and Applications Conference, Seattle, USA, November 2002. The poster itself is available in Microsoft PowerPoint format here. This entry was awarded a second place in the competition in the graduate division, even though I was technically an undergraduate. The results are available here. (Update: This entry was accepted into the ACM Student Research Competition Grand Finals and can be found in HTML format here. It was awarded a second place overall in the undergraduate category as can be found here.)

Patent Application

Theses