Our approach to constructing such software is based on the development of compositional and declarative models of the components that make up the electromechanical device. The intuition is that these models can be combined with software systems corresponding to specific tasks (such as simulation, control code generation etc.), via customized reasoning engines. These engines will take as input the specification of a system configuration, the software architecture and the model of the components to semi-automatically produce the target system. This general approach can be used for producing a variety of systems including controllers, simulators, testers, productivity analysers and diagnosis tools.
In this paper we compare the control-oriented paradigm with the data-oriented paradigm for programming reactive controllers. In the control-oriented paradigm, time is embodied in the control structure of the program; in the data-oriented paradigm, timed interactions are mediated through explicit data-structures representing clocks, timers and suspension lists. We argue, through a detailed example, that the control-oriented paradigm supported by synchronous programming languages such as tcc is superior to the traditional data-oriented paradigm in programming control software, with respect to requirements such as modularity, efficiency, time handling, verification and real-time performance measurements.