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

skip to main content
10.1145/263699.263714acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Parameterized types for Java

Published: 01 January 1997 Publication History

Abstract

Java offers the real possibility that most programs can be written in a type-safe language. However, for Java to be broadly useful, it needs additional expressive power. This paper extends Java in one area where more power is needed: support for parametric polymorphism, which allows the definition and implementation of generic abstractions. We discuss both the rationale for our design decisions and the impact of the extension on other parts of Java, including arrays and the class library. We also describe optional extensions to the Java virtual machine to allow parameterized bytecodes, and how to verify them efficiently. We have extended the Java bytecode interpreter to provide good performance for parameterized code in both execution speed and code size, without slowing down non-parameterized code.

References

[1]
J. Bank, B. Liskov, and A. Myers. Parameterized types and Java. Technical Memo MIT/LCS/TM-553, Massachusetts Institute of Technology, 1996.
[2]
Luca Cardelli. A semantics of multiple inheritance. Information and Computation, 76:138-164, 1988. Also in Readings in Object-Oriented Database Systems, S. Zdonik and D. Maier, eds., Morgan Kaufmann, 1990.
[3]
Peter Canning, William Cook, Walter Hill, John Mitchell, and Walter Olthoff. F-bounded polymorphism for object-oriented programming, in Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pages 273-280, 1989.
[4]
M. Day, R. Gruber, B. Liskov, and A. C. Myers. Subtypes vs. where clauses: Constraining parametric polymorphism, in OOPSLA "95 Conference Proceedings, pages 156-158. ACM Press, October 1995.
[5]
Dinesh Katiyar, David Luckham, John Mitchell, and Sigurd Melda. Polymorphism and subtyping in interfaces. ACM SIG- PLAN Notices, 29(9):22-34, August 1994.
[6]
B. Liskov etal. CLU reference manual. In Goos and Hartmahis, editors, Lecture Notes in Computer Science, volume 114. Springer-Vedag, Berlin, 1981.
[7]
B. Liskov, D. Curtis, M. Day, S. Ghemawat, R. Gruber, P. Johnson, and A. C. Myers. Theta Reference Manual. Programming Methodology Group Memo 88, MIT Laboratory for Computer Science, Cambridge, MA, February 1994. Available at http:tlwww.pmg.lcs.mit.edulpapersltbetarefl.
[8]
T. Lindholm and E Yellin. The. Java Virtual Machine. Addison-Wesley, Englewood Cliffs, NJ, May 1996.
[9]
Bertrand Meyer. Object-orientedSoftware Construction. Prentice Hall, New York, 1988.
[10]
O. Lehrmann Madsen, B. Moller-Pedersen, and K. Nygaard. Object Oriented Programming in the BETA Programming Lan. guage. Addison-Wesley, June 1993.
[11]
R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. MIT Press, Cambridge, MA, 1990.
[12]
Andrew. C. Myers. Bidirectional object layout for separate compilation. In OOPSLA '95 Conference Proceedings, Austin, TX, October 1995.
[13]
Greg Nelson, editor. Systems Programming with Modula-3. Prentice-Hall, 1991.
[14]
Stephen M. Omohundro and Chu-Cheow Lim. The Sather language and libraries. Technical Report TR-92-017, International Computer Science Institute, Berkeley, Match 1992.
[15]
Stephen M. Omohundro. The Sather programming language. Dr. Dobb's Journal, I 8(I 1 ):42-48, October 1993.
[16]
C. Schaffert et al. An introduction to Trellis/Owl. In OOPSLA "86 Conference Proceedings, Portland, OR, September 1986.
[17]
B. Stoustrup. The C++ Programming Language. Addison- Wesley, 1987.
[18]
B. Stroustrup. Multiple inheritance for C-t-+. in Proceedings of the Spring "87 European Unix Systems User's Group Conference, Helsinki, Finland, May 1987.
[19]
Sun Microsystems. Java Language Specification, version 1.0 beta edition, October 1995. Available at http ://tip.javaso ft.com/d oes/j avaspec, ps. zip.
[20]
Sun Microsystems. The Java Virtual Machine Specification, release 1.0 beta edition, August 1995. Available at http://ftp.javasoft.com/does/vmspec.ps.zip.
[21]
Frank Yellin. Low-level security in Java, December 1995. Presented at the Fourth International World Wide Web Conference, Dec. 1995.

Cited By

View all
  • (2021)Specializing generic Java data structuresProceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3475738.3480718(45-53)Online publication date: 29-Sep-2021
  • (2020)FlowCFL: generalized type-based reachability analysis: graph reduction and equivalence of CFL-based and type-based reachabilityProceedings of the ACM on Programming Languages10.1145/34282464:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Accessible web devACM SIGACCESS Accessibility and Computing10.1145/3386402.3386404(1-1)Online publication date: 3-Mar-2020
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '97: Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 1997
497 pages
ISBN:0897918533
DOI:10.1145/263699
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 January 1997

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

POPL97
Sponsor:
  • SIGPLAN
  • Ctr Natl de la Recherche Sci
  • L'Ecole des Mines de Paris
  • SIGACT

Acceptance Rates

POPL '97 Paper Acceptance Rate 36 of 225 submissions, 16%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)183
  • Downloads (Last 6 weeks)22
Reflects downloads up to 29 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Specializing generic Java data structuresProceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3475738.3480718(45-53)Online publication date: 29-Sep-2021
  • (2020)FlowCFL: generalized type-based reachability analysis: graph reduction and equivalence of CFL-based and type-based reachabilityProceedings of the ACM on Programming Languages10.1145/34282464:OOPSLA(1-29)Online publication date: 13-Nov-2020
  • (2020)Accessible web devACM SIGACCESS Accessibility and Computing10.1145/3386402.3386404(1-1)Online publication date: 3-Mar-2020
  • (2017)The ethics of automated behavioral microtargetingAI Matters10.1145/3137574.31394513:3(56-64)Online publication date: 10-Oct-2017
  • (2017)X15Proceedings of the 21st International Systems and Software Product Line Conference - Volume B10.1145/3109729.3109750(28-31)Online publication date: 25-Sep-2017
  • (2017)Refactoring Java Software Product LinesProceedings of the 21st International Systems and Software Product Line Conference - Volume A10.1145/3106195.3106201(59-68)Online publication date: 25-Sep-2017
  • (2016)JCryptProceedings of the 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2972206.2972209(1-12)Online publication date: 29-Aug-2016
  • (2016)Correctness of compiling polymorphism to dynamic typingJournal of Functional Programming10.1017/S095679681600026527Online publication date: 12-Dec-2016
  • (2015)Lightweight, flexible object-oriented genericsACM SIGPLAN Notices10.1145/2813885.273800850:6(436-445)Online publication date: 3-Jun-2015
  • (2015)Scalable and precise taint analysis for AndroidProceedings of the 2015 International Symposium on Software Testing and Analysis10.1145/2771783.2771803(106-117)Online publication date: 13-Jul-2015
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media