# Object-Oriented Programming: Themes and Variations

@article{Stefik1989ObjectOrientedPT,
title={Object-Oriented Programming: Themes and Variations},
author={Mark Stefik and Daniel G. Bobrow},
journal={AI Mag.},
year={1989},
volume={6},
pages={40-62}
}
• Published 1 February 1989
• Computer Science
• AI Mag.
Many of the ideas behind object-oriented programming have roots going back to SIMULA. The first substantial interactive, display-based implementation was the SMALLTALK language. The object-oriented style has often been advocated for simulation programs, systems programming, graphics, and AI programming. The history of ideas has some additional threads including work on message passing as in ACTORS, and multiple inheritance as in FLAVORS. It is also related to a line of work in AI on the theory…
829 Citations

## Figures from this paper

i-calculus is created and EOLANG (also called EO), an experimental programming language based on i-Calculus, is created, an experimental Programming Language based on OOP.
• Computer Science
Softwaretechnik-Trends
• 2018
It is shown that it is difficult to define object-oriented programming, but it is suggested that this lack of a consensual definition might actually have been the reason for the success of object- oriented programming in modern programming languages.
POOL-I is the first language the authors know of that includes subtyping and inheritance as completely separate language mechanisms, and by decoupling these two, a much cleaner language design can be obtained and a much more flexible use of both mechanisms can be made in actual programs.
• Computer Science
CSUR
• 1988
Of primary interest are the models provided by type theories for abstract data types and inheritance, and the major portion of this paper is devoted to these topics.
A minimal object-oriented programming language is produced that includes typical object- oriented notions such as inheritance, encapsulation and message passing, but omits such orthogonal and well understood concepts as program structuring constructs and expressions.
This paper gives a definition of structured programming and checks the object-oriented features encapsulation, inheritance and messages for compatibility and may help to classify object- oriented programming into a wide range of tools for compute r programming and computer science.
With the rapid rise in hardware performance, the traditional drawbacks of object-oriented programming systems (OOPS) have diminished in significance.
• Computer Science
META
• 1992
This paper describes the results of an experiment in the use of the Godel logic programming language for object-oriented programming and highlights the advantages of using Godel for such a task as well as showing its limitations.
This work created EOLANG (also called EO ), an experimental programming language based on 𝜑 -calculus, a formal apparatus similar to � “� -Calculus, which functional programming is based on.
The aim of this article is to give an idea of OOP and its features, including an indication of the available OOP environments and the Object-Oriented extensions made to the conventional languages such as C and Pascal.

## References

SHOWING 1-10 OF 30 REFERENCES

• Computer Science
CACM
• 1966
This paper is an introduction to SIMULA, a programming language designed to provide a systems analyst with unified concepts which facilitate the concise description of discrete event systems. A
The Unit Package was created for a hierarchical planning application, and is now in use by several AI projects, and compares it with other current knowledge representation languages.
• Computer Science
Cogn. Sci.
• 1977
KRL is an attempt to integrate procedural knowledge with a broad base of declarative forms to give flexibility in associating procedures with specific pieces of knowledge, and to control the relative accessibility of different facts and descriptions.
• Computer Science
IJCAI
• 1977
The NUDGE program uses an extensive knowledge base to debug scheduling requests by supplying typical values for qualitative constraints, supplying missing details and resolving minor inconsistencies, and has served an experimental vehicle for testing advanced representation techniques.
The class of “functioning frame” interfaces which Trillium is used to design is defined, the major concerns that have driven the design of Trillum are discussed, and the Trilium mechanisms chosen to satisfy them are described.
• Computer Science
CACM
• 1985
A frame-based representation facility contributes to a knowledge system's ability to reason and can assist the system designer in determining strategies for controlling the system's reasoning.

### A Preview of Act 1. Massachusetts Institute of Technology

• Artificial Intelligence Laboratory Memo No
• 1981

### Structured object programming in STROBE Schlumberger-Doll Research: Artificial Intelligence Publications: AI Memo No 18 Seatember

• 1983
• Computer Science
SGAR
• 1981
This 471-page, softcover manual describes the programming language and software environment of the Lisp Machine developed at M.I.T.'s Artificial Intelligence Laboratory over the past 8 years. The