Skip to main content

PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language

Extended Abstract

  • Conference paper
  • First Online:
ECOOP’95 — Object-Oriented Programming, 9th European Conference, Åarhus, Denmark, August 7–11, 1995 (ECOOP 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 952))

Included in the following conference series:

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.

This research was partially supported by NSF grant CCR-9121778. The full paper is available via anonymous ftp from cs.williams.edu in pub/kim/PolyTOIL.dvi or on the world-wide web through http://cs.williams.edu/~kim.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 74.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Roberto Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4):575–631, 1993.

    Article  Google Scholar 

  2. Martin Abadi and Luca Cardelli. An imperative object calculus. Manuscript, 1994.

    Google Scholar 

  3. Martin Abadi and Luca Cardelli. A theory of primitive objects: second-order systems. In Proc. ESOP’ 94. Springer-Verlag, 1994. to appear.

    Google Scholar 

  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.

    Google Scholar 

  5. [BCD+93]_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.

    Google Scholar 

  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.

    Google Scholar 

  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.

    Google Scholar 

  8. A. Black and N. Hutchinson. Typechecking polymorphism in Emerald. Technical Report CRL 91/1 (Revised), DEC Cambridge Research Lab, 1991.

    Google Scholar 

  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.

    Google Scholar 

  10. K. Bruce. A paradigmatic object-oriented programming language: design, static typing and semantics. Journal of Functional Programming, 4(2): 127–206, 1994.

    Article  MATH  MathSciNet  Google Scholar 

  11. Kim B. Bruce, Angela Schuett, and Robert van Gent. PolyTOIL: A type-safe polymorphic object-oriented language. Technical report, Williams College, 1994.

    Google Scholar 

  12. Kim B. Bruce and Robert van Gent. TOIL: A new type-safe object-oriented imperative language. Technical report, Williams College, 1993.

    Google Scholar 

  13. [CCH+89]_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.

    Google Scholar 

  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.

    Google Scholar 

  15. W.R. Cook. A proposal for making Eiffel type-safe. In European Conf. on Object-Oriented Programming, pages 57–72, 1989.

    Google Scholar 

  16. Mark Day, Robert Gruber, Barbara Liskov, and Andrew C. Meyers. Abstraction mechanisms in Theta. Technical report, MIT Laboratory for Computer Science, 1994.

    Google Scholar 

  17. Margaret A. Ellis and Bjarne Stroustrop. The annotated C ++ reference manual. Addison-Wesley, 1990.

    Google Scholar 

  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.

    Google Scholar 

  19. A. Goldberg and D. Robson. Smalltalk-80: The language and its implementation. Addison Wesley, 1983.

    Google Scholar 

  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.

    Google Scholar 

  21. B. Meyer. Eiffel: the language. Prentice-Hall, 1992.

    Google Scholar 

  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.

    Article  Google Scholar 

  23. Benjamin C. Pierce. Mutable objects. Technical report, University of Edinburgh, 1993.

    Google Scholar 

  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.

    Article  MATH  Google Scholar 

  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.

    Google Scholar 

  26. L. Tesler. Object Pascal report. Technical Report 1, Apple Computer, 1985.

    Google Scholar 

  27. Robert van Gent. TOIL: An imperative type-safe object-oriented language. Williams College Senior Honors Thesis, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bruce, K.B., Schuett, A., van Gent, R. (1995). PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language. In: Tokoro, M., Pareschi, R. (eds) ECOOP’95 — Object-Oriented Programming, 9th European Conference, Åarhus, Denmark, August 7–11, 1995. ECOOP 1995. Lecture Notes in Computer Science, vol 952. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49538-X_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-49538-X_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60160-9

  • Online ISBN: 978-3-540-49538-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics