skip to main content
10.1145/286936.286959acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article
Free access

Parametric polymorphism for Java: a reflective solution

Published: 01 October 1998 Publication History

Abstract

A number of inadequacies of existing implementation techniques for extending Java™ with parametric polymorphism are revealed. Homogeneous translations are the most space-efficient but they are not compatible with reflection, some models of persistence, and multiple dispatch. Heterogeneous translations, on the other hand, can potentially produce large amounts of redundant information. Implementation techniques that address these concerns are developed. In languages that support run-time reflection, an adequate implementation of parametric, bounded and F-bounded polymorphism is shown to require (reflective) run-time support. In Java, extensions to the core classes are needed. This is in spite of the fact that parametric polymorphism is intended to be managed statically.

References

[1]
M. Abadi and L. Cardelli. On Subtyping and Matching. In Proceedings of ECOOP '96, Lecture Notes in Computer Science, Springer-Verlag, Vol. 1098, pp. 145-167, 1996.
[2]
M. Atkinson, F. Bancilhon, D. DeWitt, K. Dittrich, D. and S. Zdonik. The Object-Oriented Database System Manifesto. In Proceedings of the First Object-Oriented and Deductive Database Conference, Kyoto, pp. 223-240, 1989.
[3]
M. P. Atkinson and L. Daynes and M. J. Jordan and T. Printezis and S. Spence. An Orthogonally Persistent Java. ACM SIGMOD Record, 25(4), pp. 68-75, 1996.
[4]
O. Agesen, S. N. Freund, J. C. Mitchell. Adding Type Parameterization to the JavaTM Language. Proceedings of OOPSLA '97, pp. 49-65, 1997.
[5]
S. Alagi6. F-bounded Polymorphism for Database Programming Languages. In Proceedings of the 2rid East-West Database Workshop, Workshops in Computing, Springer-Verlag, pp. 125-137, 1994.
[6]
S. Alagi6. The ODMG Object Model: Does it Make Sense? In Proceedings of the OOPSLA Conference, pp. 253-270, ACM, 1997.
[7]
M. Atkinson and R. Morrison. Orthogonally Persistent Object Systems. VLDB Journal, 4, 1995, pp. 319-401.
[8]
S. Alagid, J. H. Solorzano, D. Gitchell. Orthogonal to the Java Imperative. In Proceedings of ECOOP '98, Lecture Notes in Computer Science, 1998 (to appear).
[9]
F. Bancilhon, C. Delobel, and P. Kanellakis (Eds.) Building an Object-Oriented Database System: The Story of 02, Morgan Kauffman, 1992.
[10]
J. A. Bank, B. Liskov, and A. C. Myers. Parameterized Types and Java. Technical Memorandum MIT LCS TM-553, Laboratory for Computer Science, Massachusetts institute of Technology.
[11]
K. Bruce, A. Schuett and R. van Gent. PolyTOIL: a Type- Safe Polymorphic Object Oriented Language. In Proceedings of ECOOP '95, Lecture Notes in Computer Science, Springer- Verlag, Vol. 952, pp. 27-51, 1996.
[12]
P. Canning, W. Cook, W. Hill, J. Mitchell, and W. Olthoff. F-bounded Quantification for Object-Oriented Programming. In : Functional Prog. and Computer Architecture, pp. 273-280, 1989.
[13]
W. R. Cook. A proposal for Making Eiffel Type Safe. The Computer Journal, 4, 1989, pp. 305-311.
[14]
J. Ferber. Computational Reflection in Class-Based Object- Oriented Languages. In Proceedings of the OOPSLA '89 Conference, ACM, pp. 317-26, 1989.
[15]
J. Gosling and B. Joy and G. Steele. The JavaTM Language Specification, Addison-Wesley, 1996.
[16]
D. H. H. Ingalls. A Simple Technique for Handling Multiple Polymorphism. In Proceedings of OOPSLA '86, ACM, pp. 347-349, 1986.
[17]
Java Core Reflection, JDK 1.1, Sun Microsystems, Inc., http://java.sun.com.
[18]
M. Jordan. Early Experiences with Persistent JavaTM. In Proceedings of the First Int. Workshop on Persistence and Java, SUN Microsystems Laboratories, 1996.
[19]
A. Kaplan, G. A. Myrestrand, J. V. E. Ridgway and J. C. Wileden. Our SPIN on Persistent JavaTM: The Java SPIN Approach. Technical Report, University of Massachusetts, Amherst, Computer Science, Number UM-CS-1996-090, December 1996.
[20]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.
[21]
R. Milner. A Theory of Type Polymorphism in Programming. Journal of Comp. Syst. Sc8., Vol. 17, pp. 348-375, 1977.
[22]
B. Meyer. Eiffel: the Language, Prentice-Hall, 1992.
[23]
B. Meyer. Object-Oriented Software Construction, Prentice- Hall, 1997.
[24]
R. Morrison, A. L. Brown, R.C.H Connor and A. Dearie. Napier88 Reference Manual. Universities of Glasgow and St. Andrews Technical Report PPRR-77-89, 1989.
[25]
02 Technology. 02 C Reference Manual, Release 4.6, November 1996.
[26]
M. Odersky and P. Wadler. Pizza into Java: Translating Theory into Practice. Conference Record of POPL '97: The 24th Symposium on Principles of Programming Languages, ACM, 1997, pp. 146-159.
[27]
B. C. Pierce. Bounded Quantification is Undecidable. In Proceedings of the POPL Conference, pp. 305-315, ACM, 1993.
[28]
J. C. Reynolds. Polymorphism is not Set-Theoretic. in Proceedings Intl. Syrup. on the Semantics of Data Types, pp. 27-29, June 1984, Lecture Notes in Computer Science, Vol. 173, pp. 145-156, Springer-Verlag, 1984.
[29]
B. Stroustrup. The C-I-+ Programming Language, Addison- Wesley, 1993.
[30]
US Department of Defense. Reference Manual for the Ada Programming Language, 1980.

Cited By

View all

Index Terms

  1. Parametric polymorphism for Java: a reflective solution

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
    October 1998
    428 pages
    ISBN:1581130058
    DOI:10.1145/286936
    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: 01 October 1998

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. language design and implementation
    2. persistence
    3. reflection

    Qualifiers

    • Article

    Conference

    OOPSLA98
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)144
    • Downloads (Last 6 weeks)42
    Reflects downloads up to 03 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media