Lecture: Object Oriented Programming and Implementation

Background Material

Reading

Theme

This lecture reviews object oriented programming (classes, objects, methods, instance variables (also called data members, slots) inheritance, polymorphism) and discusses design choices and implementation strategies for object oriented languages. In particular, we show that it is easy to implement objects and inheritance in a language with support for first class functions. A simple object oriented language, based on Dylan (Dynamic Language), called TOOL (Tiny Objected Oriented Language), is presented and implemented. The implementation, from SICP, extends the metacircular interpreter from the lecture on functional programming.

Topics

  1. Object Oriented Programming concepts
    1. classes, methods, and instance variables.
    2. inheritance
    3. polymorphism
  2. Objects in scheme
  3. TOOL (Tiny Object Oriented Language)

Lecture Notes

Programs

Exercises

Created: May 6, 2009 (revised May 13, 2010) by jjohnson AT cs DOT drexel DOT edu