CSE583: Programming Languages

2/8/00


Click here to start


Table of Contents

CSE583: Programming Languages

Next week

Smalltalk-80: chalk talk

Cecil: Chambers et al. @ UW CSE

Procedures and variables

Example

Closures

With arguments

Returning closures

Closures for control structures

Example

Non-local returns

Example

Objects, methods, fields

Example

Overloaded methods & dynamic dispatching

Specializer overloading

Field access

Example

Inheritance

Example

Overriding methods

Resends

Overriding fields

Example

classless object model

More

Multiple dispatching: multi-methods

Multi-method overriding

Ambiguity

Advantages of multi-methods

Disadvantages of multi-methods

Examples of multi-method uses

More

Abstract objects

Example

A concrete implementation

Another concrete implementation

And then…

Object roles

Multiple inheritance

Ambiguities

Can resolve

Diamond-shaped inheritance

PPT Slide

Multiple inheritance ambiguity

Explicit resolution

Ban name conflicts

Mixins

Example

Encapsulation

Example

When to inherit? (not Cecil-specific)

Inheritance is inappropriate when

Author: David Notkin

Email: notkin@cs.washington.edu

Home Page: http://www.cs.washington.edu/education/courses/583

Download presentation source