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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

8 References

  1. [1]
    Birtwistle, Graham et.al.: 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. et.al.: 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.MATHGoogle 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.MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

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

Personalised recommendations