TY - JOUR U1 - Zeitschriftenartikel, wissenschaftlich - nicht begutachtet (unreviewed) A1 - Sulzmann, Martin A1 - Wehr, Stefan T1 - A Type-Directed, Dictionary-Passing Translation of Featherweight Generic Go N2 - Featherweight Generic Go (FGG) is a minimal core calculus modeling the essential features of the programming language Go. It includes support for overloaded methods, interface types, structural subtyping and generics. The most straightforward semantic description of the dynamic behavior of FGG programs is to resolve method calls based on runtime type information of the receiver. This article shows a different approach by defining a type-directed translation from FGG to an untyped lambda-calculus. The translation of an FGG program provides evidence for the availability of methods as additional dictionary parameters, similar to the dictionary-passing approach known from Haskell type classes. Then, method calls can be resolved by a simple lookup of the method definition in the dictionary. Every program in the image of the translation has the same dynamic semantics as its source FGG program. The proof of this result is based on a syntactic, step-indexed logical relation. The step-index ensures a well-founded definition of the relation in the presence of recursive interface types and recursive methods. KW - Programming Languages Y1 - 2022 UR - https://www.researchgate.net/publication/363667195 U6 - https://doi.org/10.48550/arXiv.2209.08511 DO - https://doi.org/10.48550/arXiv.2209.08511 AX - 2209.08511v1 AX - 2209.08511 N1 - Preprint, submitted to JFP SP - 58 S1 - 58 ER -