Object Hierarchy: Objects are defined with an uppercase
first letter with each object having its own PROTO;
PROTOs are all uppercase in parentheses; fields names
are in italics; field values are to the right of field names.
World (SM)
contains Room, Desk, Chair, Wall-Artwork, Clock, Thermostat, Teapot
each created using an uppercase PROTO of the same name as the object
Teapot (TEAPOT)
contains Water
Water (WATER)
behavior Pipeline
Pipeline (FBM)
functions Machine1, Machine2, Machine3
traces NULL
Machine1 (FBM-FUNC)
script in Knob
Machine2 (FBM-FUNC)
behavior Plant
Plant (FSM)
states Tank1, Tank2, Tank3
transitions Pipe1, Pipe2, Pipe3, Pipe4
Tank1 (FSM-STATE)
behavior Board1
Board1 (EQN)
contains text "x=0" for Cold
script
Tank2 (FSM-STATE)
behavior Board2
Board2 (EQN)
contains text "x' = a*(100 - x)" for Heating
script
Tank3 (FSM-STATE)
behavior Board3
Board3 (EQN)
contains text "x' = -a*x" for Cooling
script
Pipe1 (FSM-TRANSITION)
script
Pipe2 (FSM-TRANSITION)
script
Pipe3 (FSM-TRANSITION)
script
Pipe4 (FSM-TRANSITION)
script
Machine3 (FBM-FUNC)
script in Thermostat