A multi-processor reduction machine for user-defined reduction languages.

The design of a multi-processor reduction machine, supporting a class of user-defined reduction languages, is presented. A reduction machine is based on a “by need” or demand driven model of computation in which an instruction is executed only when a result it generates is requested. In such a machine, an instruction is a (variable length and possibly nested) expression and the machine language is referred to as a reduction language. In the multi-processor reduction machine presented, the asynchronous operation of a processor is controlled by a swappable, user-defined, state transition table. Each table supports a particular reduction language. To ensure the harmonious operation of the processors a state transition table is generated automatically for a user, in a similar way that a parser generator is used to generate table driven parsers.