Barbara Liskov
Developed the Liskov Substitution Principle and a pioneer in programming language design.
Most quoted
"If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P remains unchanged when o1 is substituted for o2, then S is a subtype of T."
— from A Behavioral Notion of Subtyping, 1994
"If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T."
— from Paper, 1987
"If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea."
— from Attributed (often to Saint-Exupéry, but used in her context)
All quotes by Barbara Liskov (315)
Diversity in teams leads to robust solutions.
The Venus operating system pioneered kernel design.
Meaning in life is found in contributions that endure.
Encapsulation protects invariants in complex systems.
Comeback to skeptics: 'Underestimate me; it'll make my success sweeter.'
Research thrives on interdisciplinary insights.
Byzantine faults challenge even the best protocols.
Legacy is in the minds we shape, not just the code we write.
Abstraction mechanisms are the foundation of reliable software.
In CS, elegance often trumps brute force.
What is a good abstraction? It is one that hides details while exposing essential properties.
If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P remains unchanged when o1 is substituted for o2, then S is a subtype of T.
Subtypes must be substitutable for their base types without altering the correctness of the program.
The Liskov Substitution Principle is a particular definition of a subtyping relation, one that was initially introduced by Barbara Liskov in 1987.
Data abstraction is a powerful tool for managing complexity in software systems.
The goal of abstraction is to simplify the view of a complex system.
A good abstraction is one that provides a clear and concise interface, while hiding the implementation details.
Modularity is key to building large, complex systems.
Specifications are essential for understanding and reasoning about software.
The purpose of a specification is to describe what a module does, not how it does it.
Contemporaries of Barbara Liskov
Other Computer Sciences born within 50 years of Barbara Liskov (1939).