What is “Object-Oriented Programming”?
“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.
KeywordsData Abstraction Exception Handling Method Invocation Abstract Data Type Member Function
Unable to display preview. Download preview PDF.
- Birtwistle, Graham et.al.: SIMULA BEGIN. Studentlitteratur, Lund, Sweden. 1971. Chartwell-Bratt Itd, UK. 1980.Google Scholar
- Bobrow, D. and Stefik, M.: The LOOPS Manual. Xerox Parc 1983.Google Scholar
- Dahl, O-J. and Hoare, C.A.R.: Hierarchical Program Structures. In Structured Programming. Academic Press 1972.Google Scholar
- Cargill, Tom A.: PI: A Case Study in Object-Oriented Programming. SIGPLAN Notices, November 1986, pp 350–360.Google Scholar
- C.C.I.T.T Study Group XI: CHILL User’s Manual. CHILL Bulletin no 1. vol 4. March 1984.Google Scholar
- Goldberg, A. and Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley 1983.Google Scholar
- Ichbiah, J.D. et.al.: Rationale for the Design of the Ada Programming Language. SIGPLAN Notices, June 1979.Google Scholar
- Kernighan, B.W. and Ritchie, D.M.: The C Programming Language. Prentice-Hall 1978.Google Scholar
- 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
- Liskov, Barbara et. al.: Clu Reference Manual. MIT/LCS/TR-225, October 1979.Google Scholar
- Milner, Robert: A Proposal for Standard ML. ACM Symposium on Lisp and Functional Programming. 1984, pp 184–197.Google Scholar
- Nygaard, Kristen: Basic Concepts in Object Oriented Programming. SIGPLAN Notices, October 1986, pp 128–132.Google Scholar
- SIMULA Standards Group, 1984: SIMULA Standard. ASU Secretariat, Simula a.s. Post Box 150 Refstad, 0513 Oslo 5, Norway.Google Scholar
- Snyder, Alan: Encapsulation and Inheritance in Object-Oriented Programming Languages. SIGPLAN Notices, November 1986, pp 38–45.Google Scholar
- Stroustrup, Bjarne: The C++ Programming Language. Addison-Wesley, 1986.Google Scholar
- Stroustrup, Bjarne: An Overview of C++. SIGPLAN Notices, October 1986, pp 7–18.Google Scholar
- Stroustrup, Bjarne: Multiple Inheritance for C++. Proceedings of the Spring’87 EUUG Conference. Helsinki, May 1987.Google Scholar
- Weinreb, D. and Moon, D.: Lisp Machine Manual. Symbolics, Inc. 1981.Google Scholar
- Wirth, Niklaus: Programming in modula-2. Springer-Verlag, 1982.Google Scholar