4. Language Description
The object model of the experiment is described using State Manager Language (SML). This language allows detailed specification of the objects such as their states, actions and associated conditions. The main characteristics of this language are :
- Finite State Logic
Objects are described as finite state machines. The only attribute of an object is its state. Commands sent to an object trigger actions that can bring about a change in its state. - Sequencing
An action on an abstract object is specified by a sequence of instructions, mainly consisting on commands sent to other objects and logical tests on states of other objects. Actions on concrete objects are sent off as messages to the Driver Control Processes. - Asynchrounous
Several actions may proceed in parallel: a command sent by object-A to object-B does not suspend the instruction sequence of object-A. Only a test by object-A on the state of object-B suspends the instruction sequence of object-A if object-B is still in transition. - AI-like rules
Each object can specify logical conditions based on states of other objects. These when satisfied will trigger an action on the local object. This provides the mechanism for an object to respond to unsolicited state changes of its environment.
Declarative Statements
Executable Statements (instructions)
- do
- call
- move_to
- if
- wait
- when
- insert, remove and remove_all
- create_object
- destroy_object
- set
- sleep
- wait_for
- report
- for