The Kevoree Book

Advanced: Make a Component with ThingML

State machines are a common formalism to express reactive behavior that needs to react on some events, correlate events, and produce some new events. A state machine-based programming language is thus a good candidate to implement Kevoree components and write the logic that orchestrates the different ports of this component.

ThingML is developed as a domain-specific modeling/programming language which includes concepts to describe both software components and communication protocols. The formalism used is a combination of architecture models, state machines and an imperative action language.

The ThingML toolset includes text editors to create and edit ThingML models, a set of transformations to create diagrams from ThingML models and a set of code generators to compile ThingML to C, Java and Scala.

The work described in this section "Make a Component with ThingML" has beed funded by the FP7 EU Project HEADS