STEP Programming Example 1:
An example XML STEP is given further below, “compiled” from the SNAFU fragment:
trigger(equals(4,rand(0,5)),add(2,8))
which is equivalent to the C++ fragment:
while(!(rand(0,5)==4))
{};
return (2+8);
The SNAFU program above would compile into the following STEP
program. (Note the id's assigned to nodes are entirely arbitrary).
<stepgraph id="id1">
<trigger id="TriggerHead">
<exp id="equals" opcode="sxe.core.equals">
<value id="3">
<snobject
type="snbench/integer">4</snobject>
</value>
<exp id="rand" opcode="sxe.core.math.random">
<value id="1">
<snobject type="snbench/integer">0</snobject>
</value>
<value id="2">
<snobject type="snbench/integer">5</snobject>
</value>
</exp>
</exp>
<exp id="add" opcode="sxe.core.math.add">
<value id="4">
<snobject
type="snbench/integer">2</snobject>
</value>
<value id="5">
<snobject
type="snbench/integer">8</snobject>
</value>
</exp>
</trigger>
</stepgraph>
Michael Ocean
(mocean@cs.bu.edu)
Creation Date: 1/10/06
Last Change: 1/12/06