Programming with Abstract Data Types
B. Liskov & S.Zilles,
ACM SIGPLAN Notices, 1974
Remote PWL #4
Thomas Depierre
@DianaO
Diana Olympos
Twitter :
Github :
Survey
Have you heard the name Liskov before ?
Have you heard about Abstract Data Types ?
What is sufficient to define an abstraction ?
Why this paper ?
We build complex systems.
We have 60 years of experience doing it.
Foundation of how we design software today.
Not the only way
Have a look at Human Factors and Ergonomics and System design stuff please :)
Why this paper ?
What an enormous impact this paper has had on how we program today. Has there been any single advance in programming languages since this work (42 years ago) which has made such a big impact on mainstream programming? I can’t think of one.
Are we teaching it ?
Are we learning it ?
Are we using it ?
Survey Results
A bit of Vocabulary
Structured Programming
- Control structures
- Subroutines : procedures, functions...
- Structured program theorem
Objects
- Not your Class based Objects
- We are getting back to it later
- A "thing". Something that exist by itself
- Mundane definition of object.
Small program interruption !
Small program interruption !
Extensible languages
Standard Abstract Operations
Implementations considerations
- Not a lot to look at from a modern point of view
- Still worth noting they define a nice linking table there...
A small thing
Nothing about speed !
Full separation of logical and physical models
This does not work that well in practice
Personal conclusions
- ADTs are everywhere. Syscall table, API, Interfaces,...
- We still have work to do on them.
- Defining a contract between two programs is not a solved problem
Please use the ideas of this paper.
They are still as relevant.
Define a public API for your stuff and hide everything behind it.
You can rip the implementation and replace it later.
Look at our history.
We build complex system everyday.
There are papers on Software Design.
The one before Design Pattern and UML please.
And look at Systems stuff and Human Factors and Ergonomics.
I can provide links. Talk to me.
Thank you !
Any questions ?
Programming with Abstract Data Types
By di4nao
Programming with Abstract Data Types
- 808