Semantic preservation for a type directed translation scheme of Featherweight Go
Martin Sulzmann, Stefan Wehr

TL;DR
This paper presents a type-directed translation scheme for Featherweight Go that replaces interface-values with dictionaries for efficient method call resolution, and proves semantic preservation using logical relations.
Contribution
It introduces a semantic-preserving translation scheme for Featherweight Go that handles recursive interfaces and method definitions with rigorous proofs.
Findings
Semantic preservation of the translation scheme is established.
Handling of recursive interfaces requires step-indexed logical relations.
The translation improves efficiency by replacing interface-values with dictionaries.
Abstract
Featherweight Go (FG) is a minimal core calculus that includes essential Go features such as overloaded methods and interface types. The most straightforward semantic description of the dynamic behavior of FG programs is to resolve method calls based on run-time type information. A more efficient approach is to apply a type-directed translation scheme where interface-values are replaced by dictionaries that contain concrete method definitions. Thus, method calls can be resolved by a simple lookup of the method definition in the dictionary. Establishing that the target program obtained via the type-directed translation scheme preserves the semantics of the original FG program is an important task. To establish this property we employ logical relations that are indexed by types to relate source and target programs. We provide rigorous proofs and give a detailed discussion of the many…
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.
Taxonomy
TopicsArtificial Intelligence in Games · Parallel Computing and Optimization Techniques · Logic, programming, and type systems
