Keynote address - data abstraction and hierarchy

@inproceedings{Liskov1987KeynoteA,
  title={Keynote address - data abstraction and hierarchy},
  author={Barbara H. Liskov},
  booktitle={OOPSLA '87},
  year={1987}
}
  • B. Liskov
  • Published in OOPSLA '87 1 May 1988
  • Computer Science
Data abstraction is a valuable method for organizing programs to make them easier to modify and maintain. Inheritance allows one implementation of a data abstraction to be related to another hierarchically. This paper investigates the usefulness of hierarchy in program development, and concludes that although data abstraction is the more important idea, hierarchy does extend its usefulness in some situations. This research was supported by the NEC Professorship of Software Science and… 

Figures from this paper

On understanding data abstraction, revisited
  • W. Cook
  • Computer Science
    OOPSLA '09
  • 2009
TLDR
Despite 25 years of research, there is still widespread confusion about the two forms of data abstraction, abstract data types and objects.
Symmetry in class and type hierarchy
TLDR
The importance of classification in OOP is discussed and the connection between classification and symmetry in class and type hierarchies is shown.
When to inherit a type
TLDR
This article provides a summary of common uses of type inheritance and describes the situations where type inheritance can be inappropriate or, at least, subject to reevaluation.
Designing Reuseable Classes
TLDR
This paper describes what it is like to design systems in Smalltalk and how classes are developed so that they will be reuseable.
WP Semantics for OO Programs and Its Applications I
TLDR
This paper defines a Weakest Precondition (WP) semantics, and proves its soundness and completeness, and proposes new definitions for object invariants and behavioral subtyping notation for general OO programs.
Subset and Union Properties in Modeling Languages
TLDR
The new property characteristics in the Meta Object Facility 2.0 are discussed by formalizing subsets and unions using substitutability as the authors' criterion and basic operations to create and edit models that use subset and unions properties are presented.
Harmony as an object-oriented operating system
ion is a key concept in the design of programs in Harmony. The only interface to a task instance, once created, is through message passing. Access from the outside is permitted only when the task
WP Semantics and Behavioral Subtyping
TLDR
For a sufficiently large subset of sequential Java with a pure reference semantics model, a Weakest Precondition (WP) semantics is defined, and its soundness and completeness are proved.
Designing Reusable Classes
TLDR
This paper describes what it is like to design systems in Smalltalk and how classes are developed so that they will be reusable.
Separating different responsibilities into parallel hierarchies
TLDR
This paper describes a design that, using two parallel class hierarchies, allows recovering the specific interface of each corresponding class in the parallel hierarchy, improving the collaboration between both hierarchies.
...
...

References

SHOWING 1-10 OF 29 REFERENCES
Programming with abstract data types
TLDR
An approach which allows the set of built-in abstractions to be augmented when the need for a new data abstraction is discovered and is an outgrowth of work on designing a language for structured programming.
Abstraction mechanisms in CLU
TLDR
This paper provides an introduction to the abstraction mechanisms in CLU and illustrates the utility of the three kinds of abstractions in program construction and shows how CLU programs may be written to use and implement abstractions.
Encapsulation and inheritance in object-oriented programming languages
TLDR
This paper examines the relationship between inheritance and encapsulation and develops requirements for full support of encapsulation with inheritance.
Abstraction and Specification in Program Development
"Abstraction and Specification in Program Development" offers professionals in program design and software engineering a methodology that will enable them to construct programs that are reliable and
Smalltalk-80: The Language and Its Implementation
TLDR
This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.
An algebraic model of sybtypes in object-oriented languages (draft)
TLDR
An algebraic notion of type and subtype is developed appropriate to modelling strict object-oriented inheritance and the notation of bounded quantification is introduced and its use in modelling inheritance is examined.
A design methodology for reliable software systems
  • B. Liskov
  • Computer Science
    AFIPS '72 (Fall, part I)
  • 1972
Any user of a computer system is aware that current systems are unreliable because of errors in their software components. While system designers and implementers recognize the need for reliable
Protection in programming languages
TLDR
Linguistic mechanisms which can be used to protect one subprogram from another's malfunctioning are described and an attempt is made to distinguish between access limitation and authentication.
On the criteria to be used in decomposing systems into modules
This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a
Reference Manual for the ADA® Programming Language
TLDR
This grammar of the Ada follows the Ada 95 Reference Manual, consisting of the international standard (ISO/IEC 8652:2012): Information Technology -Programming Languages -Ada.
...
...