Abstract. Programming complex embedded systems involves reasoning through intricate system interactions along paths between sensors, actuators and control processors. This is a time-consuming and error-prone process. Furthermore, the resulting code generally lacks modularity and robustness. Model-based programming addresses these limitations, allowing engineers to program by specifying high-level control strategies and by assembling common-sense models of the system hardware and software. To execute a control strategy, model-based executives reason about the models "on the fly", to track system state, diagnose faults and perform reconfigurations. This paper describes the Reactive Model-based Programming Language (RMPL) and its executive, called Titan. RMPL provides the features of synchronous reactive languages within a constraint-based modeling framework, with the added ability of being able to read and write to state variables that are hidden within the physical plant.