CHARON Department of Computer and Information Science
University of Pennsylvania
  | | | | | |
 Modular Specification of Hybrid Systems

CHARON is a language for modular specification of interacting hybrid systems based on the notions of agent and mode. For hierarchical description of the system architecture, CHARON provides the operations of instantiation, hiding, and parallel composition on agents, which can be used to build a complex agent from other agents. The discrete and continuous behaviors of an agent are described using modes. For hierarchical description of the behavior of an agent, CHARON supports the operations of instantiation and nesting of modes. Furthermore, features such as weak preemption, history retention, and externally defined Java functions, facilitate the description of complex discrete behavior. Continuous behavior can be specified using differential as well as algebraic constraints, and invariants restricting the flow spaces, all of which can be declared at various levels of the hierarchy. The modular structure of the language is not merely syntactic, but also reflected in the semantics so that it can be exploited during analysis.

 Key Features

Architectural hierarchy: The building block for describing the system architecture is an agent that communicates with its environment via shared variables and also communication channels. The language supports the operations of composition of agents for concurrency, hiding of variables for information encapsulation, and instantiation of agents for reuse.

Behavioral hierarchy: The building block for describing a flow of control inside an atomic agent is a mode. A mode is basically a hierarchical state machine, that is, a mode can have submodes and transitions connecting them. Variables can be declared locally inside any mode with standard scoping rules for visibility. Modes can be connected to each other through well-defined entry and exit points. We allow the instantiation of modes so that the same mode definition can be reused in multiple contexts. Finally, to support exceptions, the language allows group transitions from default exit points that are applicable to all enclosing modes, and to support history retention, the language allows default entry transitions that restore the local state within a mode from the most recent exit.

Discrete and Continuous variable updates: Discrete updates are specified by guarded actions labeling transitions connecting the modes. Such updates correspond to mode-switching, and are allowed to modify variables through assignment statements.

Variables in CHARON can be declared as type analog, and they flow continuously during the continuous updates that model passage of time. The evolution of analog variables can be constrainted in three ways: differential constraints (e.g. by equations such as x' = f(x,u)), algebraic constraints (e.g. by equations such as y = g(x,u)), and invariants (e.g. x-y < c) which limit the allowed durations of flows. Such constraints can be declared at different levels of the mode hierarchy.

Maintained by Valentina Sokolskaya