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

Compound types for Java

Published: 01 October 1998 Publication History

Abstract

Type compatibility can be defined based on name equivalence, that is, explicit declarations, or on structural matching. We argue that component software has demands for both. For types expressing individual contracts, name equivalence should be used so that references are made to external semantical specifications. For types that are composed of several such contracts, the structure of this composition should decide about compatibility.We introduce compound types as the mechanism to handle such compositions. To investigate the integrability into a strongly typed language, we add compound types to Java and report on a mechanical soundness proof of the resulting type system.Java users benefit from the higher expressiveness of the extended type system. We introduce compound types as a strict extension of Java, that is without invalidating existing programs. In addition, our proposal can be implemented on the existing Java Virtual Machine.

References

[1]
Ole Agesen, Stephen N. Freund, and John C. Mitchell. Adding type parameterization to the Java language. In Proceedings of OOPSLA '97, pages 49-65. ACM Press, 1997.]]
[2]
Kim B. Bruce, Robert van Gent, and Angela Schuett. Poly- TOIL: A type-safe polymorphic object-oriented language. In Proceedings of ECOOP '95, pages 27-51. LNCS 952, Springer Verlag, 1995.]]
[3]
Martin Bfichi and Wolfgang Weck. Java needs compound types. Technical Report 182, Turku Centre for Computer Science, 1998. http://www.tucs.fi/publications/techreports/TR 182.html.]]
[4]
Luca Cardelli. Type systems. In Handbook of Computer Science and Engineering, chapter 103. CRC Press, 1997. http://www.luca.demon.co.uk/Papers.html.]]
[5]
Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordanand Bill Kalsow, and Greg Nelson. Modula-3 report (revised). Research Report 52, Systems Research Center, Digital Equipment Corporation, Palo Alto, November 1989. http://www.research.digital.com/src/m3defn/html/.]]
[6]
David Chappell. Understanding ActiveX and OLE. Microsoft Press, 1996.]]
[7]
Netscape Communications. Netscape Piug-lns, 1998. http://developer.netscape.com/docs/manuals/communicator/ plugin/index.htm.]]
[8]
William Cook. A proposal for making Eiffel type-safe. In Proceedings of ECOOP '89, pages 57-70. Cambridge University Press, 1989.]]
[9]
M. Coppo and M. Dezani-Ciancaglini. A new type assignment for ~.-terms. Archiv. Math. Logik, 19:139-156, 1978.]]
[10]
Brad Cox. Planning the software industrial revolution. Software Technologies of the 90"s special issue of lEEE Software magazine, November 1990.]]
[11]
B. Gomes, D. Stoutamire, B. Weisssman, and H. Klawitter. Sather 1.1 : Language essentials, 1998. http://www.icsi.berkeley.edu/-sather/Documentation/LanguageDes cri pti on/contents, html.]]
[12]
James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison Wesley, 1996.]]
[13]
Object Management Group. The common object request broker: Architecture and specification, 1997. Revision 2.0, formal document 97-02-25, http://www.omg.org.]]
[14]
Rosziati Ibrahim and Clemens Szyperski. The COMEL language. Technical Report FIT-TR-97-06, Faculty of Information Technology, Queensland University of Technology, Brisbane, Australia, 1997. http://www.fit.qut.edu.au/TR/techreports/FIT-TR-97- 06.ps.Z.]]
[15]
Ralph Keller and Urs HOlzle. Binary component adaptation. In Proceedings of ECOOP '98. LNCS, Springer Verlag, 1998. http ://w w w. cs. ucsb.edu/oocsb/papers/ec oop98, html.]]
[16]
Konstantin L~iufer, Gerald Baumgartner, and Vincent E Russo. Safe structural conformance for Java. Technical Report CSD-TR-96-077, Department of Computer Science, Purdue University, 1996.]]
[17]
Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison Wesley, 1996.]]
[18]
Lingsoft. Orthografix: Finnish proofing tools for Microsoft Word, 1998. http://www.lingsoft.fi/.]]
[19]
Barbara H. Liskov and Jeanette M. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811-1841, November 1994.]]
[20]
Boris Magnusson. Code reuse considered harmful. Journal of Object-Oriented Programming, 4(3):8, November 1991.]]
[21]
Michael Mattsson and Jan Bosch. Framework composition: Problems, causes and solutions. In Proceedings of TOOLS USA 97, 1997.]]
[22]
McIllroy. Mass-produced software components. In Peter Naur, Brian Randell, and J. N. Buxton, editors, Software engineering: concepts and techniques: proceedings of the NATO conferences. The Conference on Software Engineering held in Garmisch, Germany, 7th to l lth October 1968. Petrocelli/Charter, 1976.]]
[23]
Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, second edition, 1997.]]
[24]
Anna Mikhajlova and Emil Sekerinski. Class refinement and interface refinement in object-oriented programs. In Proceedings of FME'97: Industrial Applications and Strengthened Foundations of Formal Methods, pages 82-10 I. LNCS 1313, Springer Verlag, 1997.]]
[25]
NeXT Software, Inc. Object-Oriented Programming and the Objective-C Language. Addison-Wesley, 1993. http://developer.apple.com/techpubs/rhapsody/ObjectiveC/.]]
[26]
Tobias Nipkow and David von Oheimb. Javatight is type-safe definitely. In Proc. 25th A CM Syrup. Principles of Programming Languages, pages 161-170. ACM Press, 1998.]]
[27]
Lawrence C. Paulson. Isabelle: A Generic Theorem Prover. LNCS 828, Springer Verlag, 1994. See also http://www.cl.cam.ac.uk/Research/HVG/isabelle.html.]]
[28]
Roly Perera and Peter Bertelsen. The unofficial Java spec report, 1997. http://www.nodule.demon.co.uk/java/java- 1.0spec-bugs.htm.]]
[29]
Cuno Pfister. Component software: A case study using Black- Box components (online tutorial of the BlackBox Component Builder), I997. http://www.oberon.ch.]]
[30]
Benjamin C. Pierce. Intersection types and bounded polymorphism. Mathematical Structures in Computer Science, 7(2):129-193, April 1997.]]
[31]
John C. Reynolds. Design of the programming language Forsythe. In Algol-like Languages, volume 1, pages 173- 234. Birkhfiuser, 1997. Also available as CMU-CS-96- 146, ftp://reports.adm.cs.cmu.edu/usr/anon/1996/CMU-CS- 96-146.ps. gz.]]
[32]
Dale Rogerson. Inside COM. Microsoft Press, 1996. See also http://www.microsoft.com/com/.]]
[33]
E Sall6. Une extension de la th6ory des types en ~-calcul. In Proceedings of Automata, Languages and Programming, pages 398-410. LNCS 61, Springer Verlag, 1978.]]
[34]
Sun Microsystems, Inc. Java Beans, 1997. http://splash.j avasoft.com/beans/.]]
[35]
Clemens Szyperski. Component Software : Beyond Objectoriented Programming. Addison-Wesley, 1998.]]
[36]
David von Oheimb and Tobias Nipkow. Machine-checking the Java specification: Proving type-safety. In Jim Alves- Foss, editor, Formal Syntax and Semantics of Java. LNCS, Springer Verlag, 1998, to appear.]]

Cited By

View all

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

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)167
  • Downloads (Last 6 weeks)52
Reflects downloads up to 06 Jan 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

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media