TL;DR
This paper presents a translation method for Featherweight Go that uses dictionary passing to model Go's method resolution and subtyping, preserving program behavior and providing a formal foundation.
Contribution
It introduces a novel translation technique employing dictionary passing to formalize Go's features like method resolution and structural subtyping.
Findings
The translation accurately models Go's dynamic behavior.
It formalizes Go's method resolution mechanism.
The approach preserves program semantics during translation.
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
