Volltext-Downloads (blau) und Frontdoor-Views (grau)
  • search hit 71 of 687
Back to Result List

A type-directed, dictionary-passing translation of method overloading and structural subtyping in Featherweight Generic Go

  • 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 articleFeatherweight 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. FGG− includes all features of FGG but type assertions. 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. Although being non-deterministic, the translation is coherent.show moreshow less

Export metadata

Additional Services

Search Google Scholar

Statistics

frontdoor_oas
Metadaten
Document Type:Article (reviewed)
Zitierlink: https://opus.hs-offenburg.de/8116
Bibliografische Angaben
Title (English):A type-directed, dictionary-passing translation of method overloading and structural subtyping in Featherweight Generic Go
Author:Martin Sulzmann, Stefan WehrStaff MemberGND
Year of Publication:2023
Publisher:Cambridge University Press
First Page:1
Last Page:63
Article Number:e8
Parent Title (English):Journal of Functional Programming
Volume:33
ISSN:0956-7968 (Print)
ISSN:1469-7653 (Online)
DOI:https://doi.org/10.1017/S0956796823000047
URN:https://urn:nbn:de:bsz:ofb1-opus4-81160
Language:English
Inhaltliche Informationen
Institutes:Fakultät Elektrotechnik, Medizintechnik und Informatik (EMI) (ab 04/2019)
Institutes:Bibliografie
Tag:Featherweight Go; programming
Formale Angaben
Relevance:Wiss. Zeitschriftenartikel reviewed: Listung in Master Journal List
Open Access: Open Access 
 Gold 
Licence (German):License LogoCreative Commons - CC BY - Namensnennung 4.0 International