topical media & game development

talk show tell print

object-oriented programming

Instructor's Guide: Polymorphism


This chapter treats polymorphism from a foundational perspective. It characterizes abstract inheritance as employed in knowledge representation and proceeds with a formal definition of the subtype relation, culminating in a family of calculi for a type theoretical analysis of the constructs employed in object-oriented programming. The features studied include generic types, overloading, data hiding and self-references.


The sections introducing the various type calculi cover advanced topics and require some background in logic and deductive systems.

Project assignments

Due to the formal background needed, the project assignments listed below have the flavor of research projects and must be considered for advanced students only. Possible assignments are

Since some of this work has already be done (see below), one may simply advise students to study these efforts.


To gain practical experience with the typing of objects and functions, students may use the fomega tool or the BOPL type checker described in  [Palsberg94].
[] readme course(s) preface I 1 2 II 3 4 III 5 6 7 IV 8 9 10 V 11 12 afterthought(s) appendix reference(s) example(s) resource(s) _

(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.