OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS
 
 
Program
 


Program (2mb PDF)

Explore
  Invited Speakers
  Onward!
  Panels
  Workshops
Discover
  Research Papers
  Student Research Comp.
  Posters
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
Understand
  Tutorials
  Essays
  Practitioner Reports
  Demonstrations
Create
  DesignFest
  Lightning Talks
  FlashBoF
  Instant Arts School Exp.
 
Other Events
 
Resort Map (364kb PDF)
 
Resort Map (JPG)

 

 
Basket
 

view, help

"Foundations of object-oriented languages: Types and Language Design"

 

 
Page
 

Printer-friendly

 
 
  > Tutorials > All Tutorials

 : Monday Morning Tutorials (8:30 - 12:00) : Languages and Paradigms : Monday

Foundations of object-oriented languages: Types and Language Design

Pacific Salon 2
Monday, 8:30, half day

 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Kim Bruce, Pomona College

Tutorial number: 23

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 bypass 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, we explain contravariance and covariance in type systems, and suggest ways of improving the expressiveness of these systems while retaining static type safety. Constructs introduced include "F-bounded polymorphism" and "ThisClass". We include a brief discussion on how the type system and semantics ensure type safety. We compare the strengths and weaknesses of the F-bounded polymorphism corporated into Java 5 with alternative proposals using "where" clauses, match-bounded polymorphism, and virtual types. We also consider new approaches to forming simultaneous specializations of tightly interconnected classes.

Advanced: Attendees should know one or more class-based object-oriented programming languages and be experienced with static typing systems.

Kim Bruce, Pomona College:  Kim Bruce is Professor of Computer Science at Pomona College. He has taught at Princeton University and Williams College, and has been a visiting professor or scientist at M.I.T., Stanford, Ecole Normale Superieure, University of Pisa, Newton Institute for Mathematical Sciences at Cambridge University, and UC Santa Cruz. He has presented papers at ECOOP, OOPSLA, POPL, MFPS, and LICS, and is the author of Foundations of Object-Oriented Languages: Types and Semantics, published by MIT Press, and Java: An eventful approach, published by Prentice Hall. He received the SIGCSE 2005 award for outstanding contributions to Computer Science Education.

 
.