Constraints: A uniform model for data and control

  • Authors:
  • L. Peter Deutsch

  • Affiliations:
  • Xerox PARC / MIT Artificial Intelligence Laboratory

  • Venue:
  • Proceedings of the 1980 workshop on Data abstraction, databases and conceptual modeling
  • Year:
  • 1980

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most programming systems reflect a model of computation which sharply distinguishes between “passive” data objects and “active” program objects (procedures). Furthermore, procedures describe not only a set of computations but the precise flow of control between them. In contrast, a group at MIT is investigating a new paradigm called constraints in which a single kind of object models both data and procedures, and in which the description of procedures minimizes commitment to the order in which computational steps will be executed. A (primitive) constraint is an object with some parts, which correspond to fields of a data structure or input/output parameters of a procedure, and a body which describes how to compute the values of some parts from other parts. The body consists of rules written in an implementation language (Lisp in the MIT systems). Constraints with no body behave like ordinary data structures; constraints with substantial bodies behave more like procedures. However, unlike procedures, which always compute the same set of outputs from the same set of inputs, a constraint may compute in different directions depending on the available data.