The LSP
Objects of subtypes should behave like those of supertypes if used via supertype methods. – Barbara Liskov
Having learned the “Liskov Substitution Principle” as an object-oriented design aid many years ago, I was delighted to discover this video of Ms. Liskov accepting her Turing award in 2009: Barbara Liskov Lecture Video – A.M. Turing Award Winner.
If you don’t have the time to watch the hour long lecture by this extraordinary lady, but you’re curious to know more about Ms. Liskov, here are my notes:
- She “accidentally” entered programming.
- She created the CLU and ARGUS programming languages.
- “Let’s face it, in systems we write programs in C & C++ because efficiency really matters“.
- She was surprised that her paper on sub-types took off and her name became acronym-ized: “LSP”.
- She’s not a fan of DSLs or AOP because “readability is more important than writeability“.
- Abstract types, via encapsulation, were a boon to “reasoning about correctness“: understanding where you are in the code and how you got there.
- While creating CLU, she didn’t care about inheritance because it breaks encapsulation and makes “reasoning about correctness” more difficult. She simply used composition and called the methods of child objects via delegation.
- Since she is a practitioner, she stayed away from theoretical work, e.g. polymorphic lambda calculus.
Rate this:
Related
Categories: technical
Tags: ARGUS, Barbara Liskov, CLU, Liskov Substitution Principle, programming, Turing Award
Comments (0)
Trackbacks (0)
Leave a comment
Trackback
Join 1,240 other subscribers
My BTC Address

13VFoawXgQuFAvZokYjkSMohd4uEGn7abp
Top Clicks
- None
agile
bitcoin
Bjarne Stroustrup
bureaucracy
business
c++
C++11
CEO
class diagram
company culture
complexity
concurrency
consciousness
design
ego
Erlang
failure
Fred Brooks
Grady Booch
Herb Sutter
hierarchy
leadership
linkedin
management
manager
organizational behavior
postaday2011
product development
programming
project management
requirements analysis
Russell Ackoff
schedule
Scott Berkun
Scrum
software architecture
software design
software development
spirituality
sysml
systems
systems engineering
systems thinking
thinking
thought
Tony Hsieh
uml
William Livingston
writing
zappos.com
Categories
- bitcoin (147)
- business (200)
- C++ (108)
- C++11 (49)
- C++14 (5)
- C++17 (3)
- Cancer (117)
- Cannabis (5)
- management (593)
- miscellaneous (306)
- Quantum Physics (11)
- spirituality (122)
- sysml (22)
- technical (520)
- uml (53)
Blog Stats
- 349,448 hits