Constrained Objects

Abstract

Object-oriented programming has shown to be a suitable paradigm for implementing a wide variety of systems. The concepts of encapsulation and inheritance are powerful and useful features, providing flexibility in an understandable and extensible framework. Most object-oriented programming languages, however, are complicated; in providing these features, they present a bewildering array of mechanisms for describing programs, such as classes, metaclasses, methods, class variables, and various control structures. Even more importantly, object-oriented languages do not provide explicit support for maintaining the consistency of internal object states; it is up to the programmer to code methods that respect an implicit set of consistency requirements for the object as a whole. This thesis presents a new model of programming, called constrained objects, in which algebraic constraints are used as a foundation for object-oriented programming. In this model, objects are encapsulated constraint systems that communicate with each other via a message- passing mechanism. Each object maintains a consistent state under perturbation from messages sent by other objects using a constraint satisfaction process. One object may inherit from another; the set of constraints from the first object is conjoined with the set of constraints from the second, and the subsequent satisfaction of the combined constraints ensures the semantic consistency of the derived object.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Nov 28, 1993
Accession Number
ADA275273

Entities

People

  • Bruce Horn

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Air Force
  • Algorithms
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Language
  • Lisp Programming Language
  • Machine Languages
  • Object Oriented Programming
  • Object-Oriented Programming Language
  • Programming Languages
  • Simultaneous Equations
  • Spreadsheet Software
  • Symbolic Programming
  • User Interface
  • Word Processors

Fields of Study

  • Computer science
  • Engineering

Readers

  • Artificial Intelligence
  • Operations Research
  • Software Engineering.