: 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.