TY - JOUR
T1 - Featherweight Go
AU - Griesemer, Robert
AU - Hu, Raymond
AU - Kokke, Wen
AU - Lange, Julien
AU - Taylor, Ian Lance
AU - Toninho, Bernardo
AU - Wadler, Philip
AU - Yoshida, Nobuko
PY - 2020/11/15
Y1 - 2020/11/15
N2 - 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.
AB - 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.
M3 - Conference article
VL - 4
JO - Proceedings of the ACM on Programming Languages, OOPSLA
JF - Proceedings of the ACM on Programming Languages, OOPSLA
M1 - 149
ER -