tutorials monday morning

50

Typing in Object-Oriented Languages: Achieving Expressiveness and Safety

Kim Bruce, Williams College

Convention Centre
Room 18

Static typing aids in earlier error detection, supports compiler optimizations, and provides information to programmers on the intended use of constructs. However, simple static-typing disciplines for object-oriented languages like C++ and Java are so restrictive that programmers are forced to by-pass the type system with type casts. Other languages allow more freedom, but require run-time checking to pick up the type errors that their more permissive systems missed. After surveying problems with existing type systems (illustrated by a series of sample programs), we suggest ways of improving the expressiveness of these systems while retaining static type safety. Constructs introduced include "bounded polymorphism," "MyType," and "matching." We apply the concepts in the tutorial to compare the strengths and weaknesses of proposals to extend Java to support genericity based on F-bounded polymorphism, where clauses, match-bounded polymorphism, and virtual types.

Attendee Background: Attendees should be comfortable with the concepts of class-based object-oriented programming languages and have experience with static typing systems. The tutorial is aimed at programmers who would like the flexibility of weakly or dynamically typed languages, but the error detection and efficiency of statically-typed languages, as well as language designers and others who would like to see the applications of type theory to language design.

Kim Bruce is Wells Professor of Computer Science at Williams College in Massachusetts, USA. He received his B.A. from Pomona College and Ph.D. from the University of Wisconsin. He taught at Princeton University before coming to Williams. He has worked on the semantics of object-oriented languages for over 10 years, and provably-safe type systems for object-oriented languages for the last 7 years. He has presented papers at the ECOOP, OOPSLA, POPL, MFPS, and LICS conferences, and currently serves on the editorial board for TAPOS. He presented similar tutorials at OOPSLA'96 and at ECOOP'96 and '98.

Other advanced language-related tutorials are:

7: Efficient Implementation of Object-Oriented Programming Languages
8: Using Subject-Oriented Programming to Overcome Common Problems in Object-Oriented Software Development and Evolution
41: Beyond Objects: Unleasing the Power of Adaptive Agents
65: Aspect-Oriented Programming with Aspect

 

Tutorials
by Title
Tutorials by
Category
Tutorials
by Thread
Full Description
of all Tutorials
Tutorial
Availability

OOPSLA'98 Home
Last edited 22 September 1998 14:54:55