Object-Oriented Programming: Themes and Variations

  title={Object-Oriented Programming: Themes and Variations},
  author={Mark Stefik and Daniel G. Bobrow},
  journal={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… 

Figures from this paper

EOLANG and phi-calculus

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.

A Brief SurveyOf Object-Oriented Ideas

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.

Designing an Object-Oriented Programming Language with Behavioural Subtyping

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.

Type theories and object-oriented programmimg

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.

The Implementation of an Object-Oriented Language in PS-algol

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.

Is object-oriented programming structured programming?

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.

Comparing object-oriented programming languages

With the rapid rise in hardware performance, the traditional drawbacks of object-oriented programming systems (OOPS) have diminished in significance.

Object-Oriented Programming in Gödel: An Experiment

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.

EOLANG and $\varphi$-calculus

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.

Object Oriented Programming

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.



SIMULA: an ALGOL-based simulation language

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

An Examination of a Frame-Structured Representation System

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.

On Overview of KRL, a Knowledge Representation Language

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.

NUDGE, A Knowledge-Based Scheduling Program

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 Trillium user interface design environment

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.

The role of frame-based representation in reasoning

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

Prolog/KR - Language Features

The Lisp Machine manual

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