kirancodes.me
To Proof Maintenance & Beyond!

A Dictionary-Passing Translation of Featherweight Go

Martin Sulzmann, Stefan Wehr

Abstract

The Go programming language is an increasingly popular language but some of its features lack a formal investigation. This article explains Go's resolution mechanism for overloaded methods and its support for structural subtyping by means of translation from Featherweight Go to a simple target language. The translation employs a form of dictionary passing known from type classes in Haskell and preserves the dynamic behavior of Featherweight Go programs.

Related papers