A Machine Architecture to Support an Object-Oriented Language.

Abstract

In object-oriented languages (e.g., LISP, Simula, and CLU), all (or most) data objects used by a program are implicitly allocated from a free-storage area and are accessed via fixed-size references. The storage for an object is automatically reclaimed (garbage collected) when the object is no longer accessible to the program. This thesis presents the design of a computer system that directly supports an object-oriented machine language. The machine provides a single, large universe of objects shared by multiple processes. The design uses expected future technologies (fast-access secondary storage devices and inexpensive processors) to satisfy the goals of good performance and a simple, modular system organization. Automatic storage reclamation is performed primarily using reference counts. The proposed reference count implementation reduces the time overhead of automatic storage reclamation and allows most reclamation processing to be performed in parallel with normal computation. In addition, the reference count scheme can be used in a multiprocessor configuration without introducing complex synchronization problems. A proposed implementation of the machine is described in terms of a number of specialized processor modules communicating via messages. Multiple processors are used to improve performance and to achieve a more modular system structure. (Author)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 01, 1979
Accession Number
ADA068111

Entities

People

  • Alan Snyder

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Access Time
  • Algorithms
  • Charge Coupled Devices
  • Computational Science
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Content Addressable Memory
  • Databases
  • Language
  • Machine Languages
  • Military Research
  • Operating Systems
  • Programming Languages
  • Scheduling (Production)
  • Simulations

Fields of Study

  • Computer science

Readers

  • Database Systems and Applications
  • Parallel and Distributed Computing.