Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Stephen Ellis

dblp:48/6783 · DBLP profile ↗
← Back
1ranked-venue papers
1as first author
1since 2021 · last 2022
0000-0002-3556-2201ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 1 · 1 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 91% Compilers and program optimization · 9%

Topics — the 4 heaviest of 4, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type systems › polymorphism
generic types
0.612022
Generic go to go: dictionary-passing, monomorphisation, and hybrid · Proc. ACM Program. Lang. 2022
Programming languages and type systems › language implementation
monomorphization
0.612022
Generic go to go: dictionary-passing, monomorphisation, and hybrid · Proc. ACM Program. Lang. 2022
Programming languages and type systems › type systems › polymorphism
parametric polymorphism
0.612022
Generic go to go: dictionary-passing, monomorphisation, and hybrid · Proc. ACM Program. Lang. 2022
Compilers and program optimization
code bloat
0.212022
Generic go to go: dictionary-passing, monomorphisation, and hybrid · Proc. ACM Program. Lang. 2022

Methods — techniques the papers use, named apart from their topics

bisimulation up to technique · 0.6benchmarking · 0.6
YearPublicationVenuePosition
2022 Generic go to go: dictionary-passing, monomorphisation, and hybrid
abstract
Go is a popular statically-typed industrial programming language. To aid the type safe reuse of code, the recent Go release (Go 1.18) published early 2022 includes bounded parametric polymorphism via generic types. Go 1.18 implements generic types using a combination of monomorphisation and call-graph based dictionary-passing called hybrid. This hybrid approach can be viewed as an optimised form of monomorphisation that statically generates specialised methods and types based on possible instantiations. A monolithic dictionary supplements information lost during monomorphisation, and is structured according to the program’s call graph. Unfortunately, the hybrid approach still suffers from code bloat, poor compilation speed, and limited code coverage. In this paper we propose and formalise a new non-specialising call-site based dictionary-passing translation. Our call-site based translation creates individual dictionaries for each type parameter, with dictionary construction occurring in place of instantiation, overcoming the limitations of hybrid. We prove it correct using a novel and general bisimulation up to technique. To better understand how different generics translation approaches work in practice, we benchmark five translators, Go 1.18, two existing monomorphisation translators, our dictionary-passing translator, and an erasure translator. Our findings reveal several suggestions for improvements for Go 1.18— specifically how to overcome the expressiveness limitations of generic Go and improve compile time and compiled code size performance of Go 1.18.
Stephen Ellis, Shuofei Zhu, Nobuko Yoshida, Linhai Song
Proc. ACM Program. Lang.1