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