Rex Programmer's Manual

Abstract

This manual describes Rex, a programming language for specifying machines by dedara tively describing their behavior. The Rex language consists of a set of LISP functions that define primitive Rex machines and provides methods for building complex machines out of simpler components. A Rex machine is a synchronous abstract device that has inputs, local state, and outputs, all of which are storage locations. Storage locations may be thought of as wires that can be set to certain values and whose values can be read by Rex machines. The value of a storage location is determined by its constraint, some function of the values of a set (possibly empty) of storage locations. A Rex machine operates by repeatedly computing a mapping from its inputs and current state into its outputs and next state. By hierarchically dividing a large state into small components and specifying their state transitions, we can "make the combinatorial explosion work for us" [3]. The size of the smallest component may vary from implementation to implementation; it could be a bit, an integer, or a small enumerated type. The state transitions are described by functions that map tuples of elements of the primitive data types into other tuples. The new value of any given component could, in principle, depend on all of the inputs and the entire current state of the machine, but, in practices, the dependencies are usually local.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jul 01, 1988
Accession Number
ADA461661

Entities

People

  • Leslie P. Kaelbling
  • Nathan J. Wilson

Organizations

  • SRI International

Tags

DTIC Thesaurus Topics

  • Abstracts
  • Availability
  • Classification
  • Computer Programming
  • Contracts
  • Explosions
  • Information Operations
  • Instructions
  • Language
  • Monitoring
  • Programming Languages
  • Security
  • Standards
  • Transitions
  • Words (Language)

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Computer Programming and Software Development.
  • Inertial Navigation Systems.