What is “Object-Oriented Programming”?

  • Bjarne Stroustrup
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 276)


“Object-Oriented Programming” and “Data Abstraction” have become very common terms. Unfortunately, few people agree on what they mean. I will offer informal definitions that appear to make sense in the context of languages like Ada, C++, Modula-2, Simula67, and Smalltalk. The general idea is to equate “support for data abstraction” with the ability to define and use new types and equate “support for object-oriented programming” with the ability to express type hierarchies. Features necessary to support these programming styles in a general purpose programming language will be discussed. The presentation centers around C++ but is not limited to facilities provided by that language.


Data Abstraction Exception Handling Method Invocation Abstract Data Type Member Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

8 References

  1. [1]
    Birtwistle, Graham SIMULA BEGIN. Studentlitteratur, Lund, Sweden. 1971. Chartwell-Bratt Itd, UK. 1980.Google Scholar
  2. [2]
    Bobrow, D. and Stefik, M.: The LOOPS Manual. Xerox Parc 1983.Google Scholar
  3. [3]
    Dahl, O-J. and Hoare, C.A.R.: Hierarchical Program Structures. In Structured Programming. Academic Press 1972.Google Scholar
  4. [4]
    Cargill, Tom A.: PI: A Case Study in Object-Oriented Programming. SIGPLAN Notices, November 1986, pp 350–360.Google Scholar
  5. [5]
    C.C.I.T.T Study Group XI: CHILL User’s Manual. CHILL Bulletin no 1. vol 4. March 1984.Google Scholar
  6. [6]
    Goldberg, A. and Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley 1983.Google Scholar
  7. [7]
    Ichbiah, J.D. Rationale for the Design of the Ada Programming Language. SIGPLAN Notices, June 1979.Google Scholar
  8. [8]
    Kernighan, B.W. and Ritchie, D.M.: The C Programming Language. Prentice-Hall 1978.Google Scholar
  9. [9]
    Kerr, Ron: Object-Based Programming: A Foundation for Reliable Software. Proceedings of the 14th SIMULA Users’ Conference. August 1986, pp 159–165. An abbreviated version of this paper can be found under the title A Materialistic View of the Software “Engineering” Analogy in SIGPLAN Notices, March 1987, pp 123–125.Google Scholar
  10. [10]
    Liskov, Barbara et. al.: Clu Reference Manual. MIT/LCS/TR-225, October 1979.Google Scholar
  11. [11]
    Liskov, Barbara et. al.: Abstraction Mechanisms in Clu. CACM vol 20, no 8, August 1977. pp 564–576.zbMATHGoogle Scholar
  12. [12]
    Milner, Robert: A Proposal for Standard ML. ACM Symposium on Lisp and Functional Programming. 1984, pp 184–197.Google Scholar
  13. [13]
    Nygaard, Kristen: Basic Concepts in Object Oriented Programming. SIGPLAN Notices, October 1986, pp 128–132.Google Scholar
  14. [14]
    SIMULA Standards Group, 1984: SIMULA Standard. ASU Secretariat, Simula a.s. Post Box 150 Refstad, 0513 Oslo 5, Norway.Google Scholar
  15. [15]
    Snyder, Alan: Encapsulation and Inheritance in Object-Oriented Programming Languages. SIGPLAN Notices, November 1986, pp 38–45.Google Scholar
  16. [16]
    Stroustrup, Bjarne: The C++ Programming Language. Addison-Wesley, 1986.Google Scholar
  17. [17]
    Stroustrup, Bjarne: An Overview of C++. SIGPLAN Notices, October 1986, pp 7–18.Google Scholar
  18. [18]
    Stroustrup, Bjarne: Multiple Inheritance for C++. Proceedings of the Spring’87 EUUG Conference. Helsinki, May 1987.Google Scholar
  19. [19]
    Weinreb, D. and Moon, D.: Lisp Machine Manual. Symbolics, Inc. 1981.Google Scholar
  20. [20]
    Wirth, Niklaus: Programming in modula-2. Springer-Verlag, 1982.Google Scholar
  21. [21]
    Woodward, P.M. and Bond, S.G.: Algol 68-R Users Guide. Her Majesty’s Stationery Office, London. 1974.zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Bjarne Stroustrup
    • 1
  1. 1.AT&T Bell LaboratoriesMurray HillUSA

Personalised recommendations