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
|