Original Publication Date: 1982-Apr-01
Included in the Prior Art Database: 2005-Feb-09
A machine is described herein which is used for direct execution of a high-level language-control function.
A machine is described herein which is used for direct execution of a high- level language-control function.
The language XL/O was developed for the purpose of directing
the activities of an automaton for firing Petri nets. In this
discussion, only the control mechanism of the automaton is described
in detail. The description is in terms of a processor which
interpretively executes a representation of an XL/O program. The
non-control functions necessary to carry out such an execution are
assigned to attached automata, or engines, which are not further
described. (see original).
II. The Control Automaton: The control automation contains the following registers and indicator bits: CS - The control stack, a LIFO (last in, first out) stack with push and
pop functions. Every entry is in the CE format (below).
CE - The control element, the top entry in the stack CS. The format is given below.
AR - The access register, used to process the accessors described by grammar productions 18-21.
ER - The element register. The contents are described by grammar productions 14, 16, and 17, i.e., the A-Label or any
form of the executable material.
UE - Unusual end indicator. If an attached engine cannot perform its function properly when requested, it sets the unusual end
indicator to 1 (on). The UE indicator can also be set by
a step in the control function.
SA - Stack access indicator. Different actions will be taken upon an unusual end
indication from the access engine, depending on the source
of the accessor, the control stack CS, or a Command.
TF - True/false indicator. In productions 22 - 24, the form "(<accessor>)" is a truth-valued element of the executable
statement. Its value is placed in TF.
RF - RPT-stmt indicator. An indicator used to assist in the processing of an RPT command (production 33).
Every element in the control stack CS, and, in particular, the control element CE, has the following format: CE : (<#-ind> <RPT-ind) <Omega'-ind> <accessor>) <#-ind> : an indicator which, when on, causes the top element in the stack to be removed.
RPT-ind <RPT-ind> : an indicator which,when on, causes this execution sequence to be repeatedly executed (loop-mode). <Omega'-ind> : an indicator which, when on, shows that an end of sequence condition exists. <accessor> : an element of the form given by production 19 in the grammar, e.g., <name> <index-part>.
The rightmost integer, referred to below as CE: <int>, is sometimes reset to zero and sometimes incremented by 1. From time to time, new stack elements (new CEs) are formed in which the new accessor will be constructed from the current accessor by forming <old-accessor>/0, which again is of the required form.
There is a reset function which, when applied, will empty the CS, clear all the registers, and set all indicators to the value 0. The automation can be started by resetting it, putting an accessor in the access register AR, and entering, at Step 2, the control func...