Detail

Publication date: 1 de June, 2021

Featherweight Go

Go is a systems programming language designed and developed by Google for large scale, production-ready development. The Go language, while being a strongly typed language, (in)famously lacks any form of generics or type abstraction. In this talk we describe a design for generics in Go inspired by previous work on Featherweight Java by Igarashi, Pierce, and Wadler. Our design forms the theoretical basis for approved language change proposal that adds generics to the Go language. Whereas subtyping in a language such as 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 used widely, we are one of the first to formalise it. ?In the talk I will also mention ongoing work on an alternative compilation strategy for generics that leverages runtime type information already present in the current Go compilation pipeline.

Presenter


Date 02/06/2021
State Concluded