Decomposition -- matrix
data abstraction
| nil | cons(h,t) |
empty(l) | true | false |
head(l) | error | h |
tail(l) | error | t |
Modules -- operation oriented
ADT
- organized around observers -- representation hiding
Objects -- data oriented
OOP
- organized around generators -- method interface
slide: Decomposition and data abstraction