Journal article
Title:
Decidable Subtyping of Existential Types for Julia
Authors:
J. Belyakova, B. Chung, R. Tate, J. Vitek
Publication:
Proc. ACM Program. Lang.
8
(PLDI)
DOI:
Year:
2024
Abstract:
Julia is a modern scientific-computing language that relies on
multiple dispatch to implement generic libraries. While the language
does not have a static type system, method declarations are
decorated with expressive type annotations to determine when they
are applicable. To find applicable methods, the implementation uses
subtyping at run-time. We show that Julia's subtyping is undecidable,
and we propose a restriction on types to recover decidability by
stratifying types into method signatures over value types---where the
former can freely use bounded existential types but the latter are
restricted to use-site variance. A corpus analysis suggests that
nearly all Julia programs written in practice already conform to
this restriction.
BibTeX:
@article{belyakova_decidable_2024, title = {{Decidable Subtyping of Existential Types for Julia}}, author = {Belyakova, Julia and Chung, Benjamin and Tate, Ross and Vitek, Jan}, year = {2024}, journal = {{Proc. ACM Program. Lang.}}, number = {PLDI}, doi = {10.1145/3656421}, pages = {191:1091--191:1114}, url = {https://dl.acm.org/doi/10.1145/3656421}, volume = {8}, }