MobilityReadingGroup

π-calculus, Session Types research at Imperial College

Featherweight Go
Robert GRIESEMER, Raymond HU, Wen KOKKE, Julien LANGE, Ian LANCETAYLOR, Bernardo TONINHO, Philip WADLER, Nobuko YOSHIDA
OOPSLA 2020: Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2020). p. 149:1 - 149:29

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.

@inproceedings{GHKLTTWY2020,
  author = {Robert Griesemer and Raymond Hu and Wen Kokke and Julien Lange and Ian Lance Taylor and Bernardo Toninho and Philip Wadler and Nobuko Yoshida},
  title = {{Featherweight Go}},
  booktitle = {OOPSLA 2020: Conference on Object-Oriented Programming Systems, Languages and Applications},
  series = {PACMPL},
  volume = {4},
  issue = {OOPSLA},
  pages = {149:1--149:29},
  publisher = {ACM},
  year = 2020
}
@inproceedings{GHKLTTWY2020,
  author = {Robert Griesemer and Raymond Hu and Wen Kokke and Julien Lange and Ian Lance Taylor and Bernardo Toninho and Philip Wadler and Nobuko Yoshida},
  title = {{Featherweight Go}},
  booktitle = {OOPSLA 2020: Conference on Object-Oriented Programming Systems, Languages and Applications},
  series = {PACMPL},
  volume = {4},
  issue = {OOPSLA},
  pages = {149:1--149:29},
  publisher = {ACM},
  doi = "10.1145/3428217",
  year = 2020
}