ABSTRACT

Embedded systems are being used in critical applications, ranging from transportation (e.g., in various aircrafts and train signaling systems) to healthcare (e.g., in pacemakers and medical diagnostic systems). Hence, rigorous development and verification of embedded systems is of utmost importance and can save people’s lives. Building rigorous models of such systems, analyzing them for various properties and generating code or refining them into lower-level models is a rigorous engineering practice, often called model-based development, which can be employed to develop more reliable embedded systems. The first step model-based development is building models and assigning a well-defined semantics to them. Finite-state machines (FSMs) have been traditionally used both as models and for assigning well-defined semantics to other models. Using FSMs as a modeling language is feasible for smaller and lower-level systems. For more complex systems, however, abstract models are usually specified in domain-specific modeling languages with suitable modeling features; then, at the semantic level FSMs can be used to represent the operational semantics (i.e., the behavioral meaning) of such systems, analyze it and turn it into an executable system. In this chapter, we study Esterel, a widely used modeling language for embedded systems, and its operational semantics.