skip to main content
10.5555/646153.758675guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language

Published: 07 August 1995 Publication History

Abstract

PolyTOIL is a new statically-typed polymorphic object-oriented programming language which is provably type-safe. By separating the definitions of subtyping and inheritance, providing a name for the type of self, and carefully defining the type-checking rules, we have obtained a language which is very expressive while supporting modular type-checking of classes. The matching relation on types, which is related to F-bounded quantification, is used both in stating type-checking rules and expressing the bounds on type parameters for polymorphism. The design of PolyTOIL is based on a careful formal definition of type-checking rules and semantics. A proof of type safety is obtained with the aid of a subject reduction theorem.

References

[1]
Roberto Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems , 15(4):575-631, 1993.
[2]
Martin Abadi and Luca Cardelli. An imperative object calculus. Manuscript, 1994.
[3]
Maitin Abadi and Luca Cardelli. A theory of primitive objects: second-order systems. In Proc. ESOP '94- Springer-Verlag, 1994. to appear.
[4]
Martin Abadi and Luca Cardelli. A theory of primitive objects: untyped and first-order systems. In Proc. Theoretical Aspects of Computer Software . Springer-Verlag, 1994. to appear.
[5]
K. Bruce, J. Crabtree, A. Dimock, R. Muller, T. Murtagh, and R. van Gent. Safe and decidable type checking in an object-oriented language. In Proc. ACM Symp. on Object-Oriented Programming: Systems, Languages, and Applications , pages 29-46, 1993.
[6]
K. Bruce, J. Crabtree, and G. Kanapathy. An operational semantics for TOOPLE: A statically-typed object-oriented programming language. In S. Brookes, M. Main, A. Melton, M. Mislove, and D. Schmidt, editors, Mathematical Foundations of Programming Semantics , pages 603-626. LNCS 802, Springer-Verlag, 1994.
[7]
Gilad Bracha and David Griswold. Strongtalk: Typechecking Smalltalk in a production environment. In Proc. ACM Symp. on Object-Oriented Programming: Systems, Languages, and Applications , pages 215-230, 1993.
[8]
A. Black and N. Hutchinson. Typechecking polymorphism in Emerald. Technical Report CRL 91/1 (Revised), DEC Cambridge Research Lab, 1991.
[9]
K. Bruce. Safe type checking in a statically typed object-oriented programming language. In Proc. ACM Symp. on Principles of Programming Languages , pages 285-298, 1993.
[10]
K. Bruce. A paradigmatic object-oriented programming language: design, static typing and semantics. Journal of Functional Programming , 4(2): 127-206, 1994.
[11]
Kim B. Bruce, Angela Schuett, and Robert van Gent. PolyTOIL: A type-safe polymorphic object-oriented language. Technical report, Williams College, 1994.
[12]
Kim B. Bruce and Robert van Gent. TOIL: A new type-safe object-oriented imperative language. Technical report, Williams College, 1993.
[13]
P. Canning, W. Cook, W. Hill, J. Mitchell, and W. Olthoff. F-bounded quantification for object-oriented programming. In Functional Prog, and Computer Architecture , pages 273-280, 1989.
[14]
William R. Cook, Walter L. Hill, and Peter S. Canning. Inheritance is not subtyping. In Proc. 17th ACM Symp. on Principles of Programming Languages , pages 125-135, January 1990.
[15]
W.R. Cook. A proposal for making Eiffel type-safe. In European Conf. on Object-Oriented Programming , pages 57-72, 1989.
[16]
Mark Day, Robert Gruber, Barbara Liskov, and Andrew C. Meyers. Abstraction mechanisms in Theta. Technical report, MIT Laboratory for Computer Science, 1994.
[17]
Margaret A. Ellis and Bjarne Stroustrop. The annotated C++ reference manual . Addison-Wesley, 1990.
[18]
J. Eifrig, S. Smith, V. Trifonov, and A. Zwarico. Application of OOP type theory: State, decidability, integration. In Proceedings of OOPSLA '94 , pages 16-30, 1994.
[19]
A. Goldberg and D. Robson. Smalltalk-80: The language and its implementation . Addison Wesley, 1983.
[20]
Dinesh Katiyar, David Luckham, and John Mitchell. A type system for prototyping languages. In 21st ACM Symp. Principles of Programming Languages , pages 138-150, 1994.
[21]
B. Meyer. Eiffel: the language . Prentice-Hall, 1992.
[22]
O. Madsen, B. Magnusson, and B. Moller-Pedersen. Strong typing of object-oriented languages revisited. In OOPSLA-ECOOP '90 Proceedings , pages 140-150. ACM SIGPLAN Notices, 25(10), October 1990.
[23]
Benjamin C. Pierce. Mutable objects. Technical report, University of Edinburgh, 1993.
[24]
Benjamin C. Pierce and David N. Turner. Simple type-theoretic foundations for object-oriented programming. Journal of functional programming , 4:207-247, 1994. An earlier version appeared in Proc. of POPL '93, pp. 299-312.
[25]
J.C. Reynolds. Using category theory to design implicit conversions and generic operators. In N.D. Jones, editor, Semantics-Directed Compiler Generation , pages 211-2580. Springer-Verlag Lecture Notes in Computer Science, Vol. 94, 1980.
[26]
L. Tesler. Object Pascal report. Technical Report 1, Apple Computer, 1985.
[27]
Robert van Gent. TOIL: An imperative type-safe object-oriented language . Williams College Senior Honors Thesis, 1993.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
ECOOP '95: Proceedings of the 9th European Conference on Object-Oriented Programming
August 1995
470 pages
ISBN:3540601600

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 07 August 1995

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media