runfrom the interface. Targets take on particular importance in code generation domains where they describe all the features of the target of execution, but they are used to control execution in simulation domains as well. Targets use Schedulers to control the order of execution of Blocks under their control. In some domains, the Scheduler does almost everything; the Target simply starts it up. In others, the Scheduler determines an execution order and the Target takes care of many other details, such as generating code in accordance with the schedule, downloading the code to an embedded processor, and executing it. The Error class provides a means to format error messages and optionally to halt execution. The interface is always the same, but different user interfaces typically provide different implementations of the methods of this class. The SimControl class provides a means to register actions for execution during a simulation, as well as facilities to cleanly halt execution on an error.