Featherweight Go
Griesemer, Robert, Hu, Raymond, Kokke, Wen, Lange, Julien, Taylor, Ian Lance, Toninho, Bernardo, Wadler, Philip and Yoshida, Nobuko
(2020)
Featherweight Go.
Proceedings of the ACM on Programming Languages (PACMPL), 4 (OOPSLA): 149.
ISSN 2475-1421
We describe a design for generics in Go inspired by previous work on Featherweight Java by Igarashi, Pierce, and Wadler. Whereas subtyping in Java is nominal, in Go it is structural, and whereas generics in Java are defined via erasure, in Go we use monomorphisation. Although monomorphisation is widely used, we are one of the first to formalise it. Our design also supports a solution to The Expression Problem.
Item Type | Article |
---|---|
Additional information | Funding Information: We thank Nicholas Ng, Sam Lindley, and our referees for comments and suggestions. This work was funded under EPSRC EP/K034413/1, EP/T006544/1, EP/K011715/1, EP/L00058X/1, EP/N027833/1, EP/N028201/1, EP/T006544/1, EP/T014709/1 and EP/V000462/1, NCSS/EPSRC VeTSS, NOVA LINCS (UIDB/04516/2020) with the financial support of FCT-Fundação para a Ciência e a Tecnologia, and EU MSCA-RISE BehAPI (ID:778233). Publisher Copyright: © 2020 Owner/Author. |
Keywords | generics, go, monomorphisation, software, safety, risk, reliability and quality |
Date Deposited | 15 May 2025 14:26 |
Last Modified | 31 May 2025 00:26 |
Share this file
Downloads