Polymorphic symmetric multiple dispatch with variance

Author:

Park Gyunghee1,Hong Jaemin2,Steele Jr. Guy L.3,Ryu Sukyoung2

Affiliation:

1. KAIST, South Korea / Oracle Labs, USA

2. KAIST, South Korea

3. Oracle Labs, USA

Abstract

Many object-oriented languages provide method overloading, which allows multiple method declarations with the same name. For a given method invocation, in order to choose what method declaration to invoke, multiple dispatch considers the run-time types of the arguments. While multiple dispatch can support binary methods (such as mathematical operators) intuitively and consistently, it is difficult to guarantee that calls will be neither ambiguous nor undefined at run time, especially in the presence of expressive language features such as multiple inheritance and parametric polymorphism. Previous efforts have formalized languages that include such features by using overloading rules that guarantee a unique and type-sound resolution of each overloaded method call; in many cases, such rules resolve ambiguity by treating the arguments asymmetrically. Here we present the first formal specification of a strongly typed object-oriented language with symmetric multiple dispatch, multiple inheritance, and parametric polymorphism with variance. We define both a static (type- checking) semantics and a dynamic (dispatching) semantics and prove the type soundness of the language, thus demonstrating that our novel dynamic dispatch algorithm is consistent with the static semantics. Details of our dynamic dispatch algorithm address certain technical challenges that arise from structural asymmetries inherent in object-oriented languages (e.g., classes typically declare ancestors explicitly but not descendants).

Funder

National Research Foundation of Korea

Publisher

Association for Computing Machinery (ACM)

Subject

Safety, Risk, Reliability and Quality,Software

Reference31 articles.

1. Eric Allen David Chase J. J. Hallett Victor Luchangco Jan-Willem Maessen Sukyoung Ryu Guy L. Steele Jr. and Sam Tobin-Hochstadt. 2008. The Fortress Language Specification Version 1.0. Eric Allen David Chase J. J. Hallett Victor Luchangco Jan-Willem Maessen Sukyoung Ryu Guy L. Steele Jr. and Sam Tobin-Hochstadt. 2008. The Fortress Language Specification Version 1.0.

2. Modular multiple dispatch with multiple inheritance

3. Type checking modular multiple dispatch with parametric polymorphism and multiple inheritance

4. Julia: A Fresh Approach to Numerical Computing

Cited by 4 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Formalizing ϕ-Calculus: A Purely Object-Oriented Calculus of Decorated Objects;Proceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs;2022-06-07

2. Taming the Merge Operator;Journal of Functional Programming;2021

3. Polymorphic symmetric multiple dispatch with variance;Proceedings of the ACM on Programming Languages;2019-01-02

4. Decidable tag-based semantic subtyping for nominal types, tuples, and unions;Proceedings of the 21st Workshop on Formal Techniques for Java-like Programs - FTfJP '19;2019

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3