Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
418350 | Computer Languages, Systems & Structures | 2013 | 28 Pages |
•Domain-specific language for reactive systems with imperative programming notation.•Hierarchical components for hierarchical abstraction of reactive control functions.•Visual language presentation automatically generated from source code.•Formal definition of the semantics in the form of labeled transition systems.
In this paper, we present Monaco – a domain-specific language for developing event-based, reactive process control programs – and its visual interactive programming environment. The main purpose of the language is to bring process control programming closer to domain experts. Important design goals have therefore been to keep the language concise and to allow programs to be written that reflect the perceptions of domain experts. Monaco is similar to Statecharts in its expressive power, but adopts an imperative notation. Moreover, Monaco uses a state-of-the-art component approach with interfaces and polymorphic implementations, and enforces strict hierarchical component architectures that support hierarchical abstraction of control functionality. We present the main design goals, the essential programming elements, the visual interactive programming environment, results from industrial case studies, and a formal definition of the semantics of the reactive behavior of Monaco programs in the form of labeled transition systems.