Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1244002.1244245acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
Article

Modular multiple dispatch with multiple inheritance

Published: 11 March 2007 Publication History

Abstract

Overloaded functions and methods with multiple dispatch are useful for extending the functionality of existing classes in an object-oriented language. However, such functions introduce the possibility of ambiguous calls that cannot be resolved at run time, and modular static checking that such ambiguity does not exist has proved elusive in the presence of multiple implementation inheritance. We present a core language for defining overloaded functions and methods that supports multiple dispatch and multiple inheritance, together with a set of restrictions on these definitions that can be statically and modularly checked. We have proved that these restrictions guarantee that no undefined nor ambiguous calls occur at run time, while still permitting various kinds of overloading.

References

[1]
E. Allen, D. Chase, J. Hallett, V. Luchangco, J.-W. Maessen, S. Ryu, G. L. Steele Jr., and S. Tobin-Hochstadt. The Fortress Language Specification Version 1.0 α, Sept. 2006.
[2]
D. G. Bobrow, L. G. DiMichiel, R. P. Gabriel, S. E. Keene, G. Kiczales, and D. A. Moon. Common lisp object system specification. ACM SIGPLAN Notices, 23, Sept. 1988.
[3]
G. Bracha, G. Steele, B. Joy, and J. Gosling. Java#8482; Language Specification, The 3rd Edition (Java Series). Addison-Wesley Professional, July 2005.
[4]
G. Castagna. Covariance and contravariance: Conflict without a cause. ACM Transactions on Programming Languages and Systems, 17(3):431--447, 1995.
[5]
C. Clifton, T. Millstein, G. T. Leavens, and C. Chambers. MultiJava: Design rationale, compiler implementation, and applications. ACM Transactions on Programming Languages and Systems, 28(3), May 2006.
[6]
K. Lee and C. Chambers. Parameterized modules for classes and extensible functions. In Proceedings of the 20th European Conference on Object-Oriented Programming. Springer-Verlag, 2006.
[7]
T. Millstein. Reconciling Software Extensibility with Modular Program Reasoning. PhD thesis, University of Washington, 2003.
[8]
T. Millstein, C. Bleckner, and C. Chambers. Modular typechecking for hierarchically extensible datatypes and functions. ACM Transactions on Programming Languages and Systems, 26(5):836--889, Sept. 2004.
[9]
T. Millstein and C. Chambers. Modular statically typed multimethods. Information and Computation, 175(1):76--118, May 2002.
[10]
T. D. Millstein, M. Reay, and C. Chambers. Relaxed multijava: balancing extensibility and modular typechecking. In R. Crocker and G. L. S. Jr., editors, OOPSLA, pages 224--240. ACM, 2003.
[11]
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. Traits: Composable units of behavior. In Proceedings of the 17th European Conference on Object-Oriented Programming. Springer, July 2003.

Cited By

View all
  • (2022)Formalizing ϕ-Calculus: A Purely Object-Oriented Calculus of Decorated ObjectsProceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs10.1145/3611096.3611103(29-36)Online publication date: 7-Jun-2022
  • (2020)Gender and Age Influences on Interpretation of Emoji FunctionsACM Transactions on Social Computing10.1145/33756293:2(1-26)Online publication date: 26-Apr-2020
  • (2019)Polymorphic symmetric multiple dispatch with varianceProceedings of the ACM on Programming Languages10.1145/32903243:POPL(1-28)Online publication date: 2-Jan-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '07: Proceedings of the 2007 ACM symposium on Applied computing
March 2007
1688 pages
ISBN:1595934804
DOI:10.1145/1244002
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 March 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. modularity
  2. multiple dispatch
  3. multiple inheritance
  4. overloading

Qualifiers

  • Article

Conference

SAC07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)1
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Formalizing ϕ-Calculus: A Purely Object-Oriented Calculus of Decorated ObjectsProceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs10.1145/3611096.3611103(29-36)Online publication date: 7-Jun-2022
  • (2020)Gender and Age Influences on Interpretation of Emoji FunctionsACM Transactions on Social Computing10.1145/33756293:2(1-26)Online publication date: 26-Apr-2020
  • (2019)Polymorphic symmetric multiple dispatch with varianceProceedings of the ACM on Programming Languages10.1145/32903243:POPL(1-28)Online publication date: 2-Jan-2019
  • (2016)Production-run software failure diagnosis via Adaptive Communication TrackingACM SIGARCH Computer Architecture News10.1145/3007787.300117544:3(354-366)Online publication date: 18-Jun-2016
  • (2016)Efficient synonym filtering and scalable delayed translation for hybrid virtual cachingACM SIGARCH Computer Architecture News10.1145/3007787.300116044:3(217-229)Online publication date: 18-Jun-2016
  • (2015)Automated education and the professionalCommunications of the ACM10.1145/280424858:9(34-36)Online publication date: 24-Aug-2015
  • (2015)Supervisor's perspectiveACM Inroads10.1145/27664586:2(27-28)Online publication date: 29-May-2015
  • (2015)Impressions from the 9th WiPSCE conference, Berlin, November 2014ACM Inroads10.1145/27565596:2(29-30)Online publication date: 29-May-2015
  • (2014)Profile: Geoffrey HintonUnlocking the language of the brainXRDS: Crossroads, The ACM Magazine for Students10.1145/266763521:1(60-61)Online publication date: 14-Oct-2014
  • (2014)NVM duetACM SIGARCH Computer Architecture News10.1145/2654822.254195742:1(455-470)Online publication date: 24-Feb-2014
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media