Keynote address - data abstraction and hierarchy
@inproceedings{Liskov1987KeynoteA, title={Keynote address - data abstraction and hierarchy}, author={Barbara H. Liskov}, booktitle={OOPSLA '87}, year={1987} }
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
130 Citations
On understanding data abstraction, revisited
- Computer ScienceOOPSLA '09
- 2009
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
- Computer Science
- 2002
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
- EducationInroads
- 2011
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
- Computer Science, Sociology
- 1988
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
- Computer Science
- 2012
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
- Computer Science
- 2005
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
- Computer ScienceOOPSLA/ECOOP '88
- 1988
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
- Computer ScienceICTAC
- 2011
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
- Computer Science
- 2001
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
- Computer ScienceC3S2E '11
- 2011
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
- Computer ScienceSIGPLAN Symposium on Very High Level Languages
- 1974
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
- Computer ScienceCommun. ACM
- 1977
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
- Computer ScienceOOPLSA '86
- 1986
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
- Computer Science
- 1986
"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
- Computer Science
- 1983
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)
- Computer ScienceOOPWORK '86
- 1986
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
- Computer ScienceAFIPS '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
- Computer ScienceCACM
- 1973
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
- EconomicsCACM
- 1972
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
- Computer ScienceSpringer New York
- 1983
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.