Statecharts: A visual formalism for complex systems
Science of Computer Programming
Reactive C: an extension of C to program reactive systems
Software—Practice & Experience
Synchronous programming with events and relations: the SIGNAL language and its semantics
Science of Computer Programming
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
The sugarCubes tool box: a reactive Java framework
Software—Practice & Experience
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
A Component Model for Field Devices
CD '02 Proceedings of the IFIP/ACM Working Conference on Component Deployment
Hume: a domain-specific language for real-time embedded systems
Proceedings of the 2nd international conference on Generative programming and component engineering
A Contract-Based Component Model for Embedded Systems
QSIC '04 Proceedings of the Quality Software, Fourth International Conference
A hierarchical coordination language for interacting real-time tasks
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Domain-Specific Modeling
The Domain-Specific Language Monaco and its Visual Interactive Programming Environment
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
A Study of Virtual Enterprise Modeling Based on Domain Specific Software Architecture
ETCS '09 Proceedings of the 2009 First International Workshop on Education Technology and Computer Science - Volume 02
A Hierarchical Framework for Component-based Real-time Systems
Electronic Notes in Theoretical Computer Science (ENTCS)
Programming assistance based on contracts and modular verification in the automation domain
Proceedings of the 2010 ACM Symposium on Applied Computing
Hi-index | 0.00 |
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.