Featherweight Go. / Griesemer, Robert; Hu, Raymond; Kokke, Wen; Lange, Julien; Taylor, Ian Lance; Toninho, Bernardo; Wadler, Philip; Yoshida, Nobuko.

In: Proceedings of the ACM on Programming Languages, OOPSLA, Vol. 4, 149, 15.11.2020.

Research output: Contribution to journalConference article

Published

Documents

  • Robert Griesemer
  • Raymond Hu
  • Wen Kokke
  • Julien Lange
  • Ian Lance Taylor
  • Bernardo Toninho
  • Philip Wadler
  • Nobuko Yoshida

Abstract

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.
Original languageEnglish
Article number149
Number of pages29
JournalProceedings of the ACM on Programming Languages, OOPSLA
Volume4
Publication statusPublished - 15 Nov 2020
This open access research output is licenced under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.

ID: 39502524