News

Raymond Hu's research on the design and implementation of the Go programming language published in POPL

Centre for Fundamentals of AI and Computational Theory 

16 January 2026

Compilations rules for expressions - part 1 (from the paper)
Compilations rules for expressions - part 1 (from the paper)

Raymond Hu and his coauthors presented their work, that is part of an ongoing collaboration with industry, on "Welterweight Go: Boxing, Structural Subtyping, and Generics" at the 53rd ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2026) in Rennes, France. POPL is a top A* conference related to the theory, practice and implementation of programming languages.

This work is part of an ongoing collaboration with Google on the design and implementation of the Go programming language that is widely used in industry. It builds on their prior work that had the impact of shaping the design of generics for Go first released in Go 1.18.

In this paper, the team first develop WG, a formal model of Go expanded to include recently implemented features such as generic type unions and type sets. They also further extend it to show how popularly requested features such as generic methods can be safely incorporated. They then introduce LWG, a lower level formal model of the Go runtime and its mechanisms for managing coercions between interface types and struct types that are key to Go. Finally, they develop a compilation strategy from WG to LWG that supports the proposed extensions and lifts the expressiveness restrictions imposed by the existing monomorphisation approach.

Reference

Raymond Hu, Julien Lange, Bernardo Toninho, Philip Wadler, Robert Griesemer, Keith Randall (2026) Welterweight Go: Boxing, Structural Subtyping, and Generics. In Proceedings of the ACM on Programming Languages, Volume 10, Issue POPL, Article No.: 79, Pages 2295 - 2322. https://doi.org/10.1145/3776721

People: Raymond HU

Contact: Raymond Hu
Email: r.hu@qmul.ac.uk

Updated by: Paul Curzon