Barbara Liskov

Computer Science American 1939 315 quotes

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)

Mentorship plays a vital role in the development of future generations of computer scientists.

Reflections on Computer Science Research

The beauty of computer science lies in its ability to solve complex problems with elegant solutions.

Reflections on Computer Science Research

Good design is about making the right choices at the right time.

Abstraction and Specification in Program Development

Simplicity is a virtue in software design.

Abstraction and Specification in Program Development

The cost of fixing errors increases dramatically as software development progresses.

Software Engineering: A Historical Perspective

Testing is an important part of ensuring software quality, but it cannot prove correctness.

Abstraction and Specification in Program Development

The power of abstraction lies in its ability to manage complexity.

Abstraction and Specification in Program Development

A well-defined interface is crucial for independent development and maintenance of modules.

Programming with Abstract Data Types

The Liskov Substitution Principle is often misunderstood, but its core idea is simple: subtypes should not break the contracts of their supertypes.

A Behavioral Notion of Subtyping

Behavioral subtyping is about preserving the observable behavior of a type.

A Behavioral Notion of Subtyping 1994

The success of a programming language depends on its ability to support good programming practices.

CLU Reference Manual

Abstract data types provide a powerful mechanism for organizing and structuring programs.

Abstraction Mechanisms in CLU 1977

The design of a system should prioritize clarity and understandability.

Abstraction and Specification in Program Development

Robustness is a key attribute of high-quality software.

Distributed Computing

The future of computing lies in distributed and parallel systems.

Distributed Computing

I believe that the most important thing we can do is to teach people how to think clearly and logically.

Personal correspondence

The beauty of computer science lies in its ability to create new worlds and solve complex problems.

Diary entry

Don't be afraid to challenge the status quo. Innovation often comes from questioning established norms.

Letter to a student

The Liskov Substitution Principle is not just a rule; it's a way of thinking about software design.

Email to a colleague

Finding elegant solutions to difficult problems is what truly excites me.

Personal notes