ACM Home Page
Please provide us with feedback. Feedback
Safe type checking in a statically-typed object-oriented programming language
Full text PdfPdf (1.55 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Charleston, South Carolina, United States
Pages: 285 - 298  
Year of Publication: 1993
ISBN:0-89791-560-7
Author
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 31,   Citation Count: 16
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/158511.158650
What is a DOI?

ABSTRACT

In this paper we introduce a statically-typed, functional, object-oriented programming language, TOOPL, which supports classes, objects, methods, instance variable, subtypes, and inheritance. It has proved to be surprisingly difficult to design statically-typed object-oriented languages which are nearly as expressive as Smalltalk and yet have no holes in their typing systems. A particular problem with statically type checking object-oriented languages is determining whether a method provided in a superclass will continue to type check when inherited in a subclass. This program is solved in our language by providing type checking rules which guarantee that a method which type checks as part of a class will type check correctly in all legal subclasses in which it is inherited. This feature enables library providers to provide only the interfaces of classes with executables and still allow users to safely create subclasses. The design of TOOPL has been guided by an analysis of the semantics of the language, which is given in terms of a sufficiently rich model of the F-bounded second-order lambda calculus. This semantics supported the language design by providing a means of proving that the type-checking rules for the language are sound, ensuring that well-typed terms produce objects of the appropriate type. In particular, in a well-typed program it is impossible to send a message to an object which lacks a corresponding method.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
AC90
Roberto Amadio and Luca Cardelli. Subtyping recursive types. Technical Report 62, Digital Systems Research Center, 1990.
BM92
 
Bru92a
 
Bru92b
K. Bruce. A paradigmatic object-oriented programming language: design, static typing and semantics. Technical Report CS- 92-01~ Williams College, 1992.
 
Car88a
Car88b
 
Car92a
Luca Cardelli. Extensible records in a pure calculus of subtyping. Technical Report 81, DEC Systems Research Center, 1992.
 
Car92b
Luca Cardelli. Typed foundations of object-oriented programming, 1992. Tutorial given at POPL '92.
CCH+89
CCHO89
 
CDG+88
L. Cardelli, J. Donahue, L. Galssman, M. Jordan, B. Kalsow, and G. Nelson. Modula-3 report. Technical Report SRC- 31, DEC systems Research Center, 1988.
 
CG92
P.L. Curien and G. Ghelli. Coherence of subsumption,minimum typing and typechecking in F<. Mathematical Structures in Computer Science, 2:55-91, 1992.
CHC90
 
CL91
Luca Cardelli and Giuseppe Longo. A semantic basis for Quest. Journal of Functional Programming, 1(4):417-458, 1991.
 
CM90
 
Coo89
W.R. Cook. A proposal for making Eiffel type-safe. In European Conf. on Object- Oriented Programming, pages 57-72, 1989.
CW85
 
DM92
Allyn Dimock and Robert Muller. Private communication, 1992.
 
Gir71
J.-Y. Girard. Une extension de l'interpretation de Ghdel ~ l'analyse, et son application ~ l'41imination des coupures dans l'analyse et la th4orie des types, in J.E. Fenstad, editor, 2nd Scandinavian Logic Symposium, pages 63-92. North-Holland, 1971.
GJ90
KPS93
 
Mey92
Mit90
MP88
 
Omo91
Stephen M. Omohundro. The Sather language. Technical report, International Computer Science Institute, 1991.
 
PH92
Benjamin C. Pierce and Martin Hoffman. An abstract view of objects and subtyping (preliminary report). Technical Report to appear, University of Edinburgh, 1992.
Pie92
 
PT92a
Benjamin C. Pierce and David N. Turner. Object-oriented programming without recursive types. Technical Report ECS- LFCS-92-226, University of Edinburgh, 1992.
 
PT92b
Benjamin C. Pierce and David N. 25arner. Simple type-theoretic foundations for object-oriented programming. Technical report, University of Edinburgh, 1992.
 
Rey74
SCB+86
 
Str86
 
Tes85
L. Tesler. Object Pascal report. Technical Report 1, Apple Computer, 1985.

CITED BY  16