CREST (Continuous REactive SysTems) is a domain-specific language for modelling hybrid cyber-physical systems, with a particular focus on small-scale applications such as home automation, smart gardening systems, and IoT devices.
Overview
The language is designed to model the flow of resources throughout systems, focusing on continuous resource flows such as water, electricity, light, or heat. CREST merges features from various formalisms including hybrid automata, dataflow programming, and architecture description languages to create a simple yet powerful language for cyber-physical system modelling.
Key Features
Dual Concrete Syntax:
CREST diagrams: A graphical language that is easily understandable and serves as a model basis
crestdsl: An internal DSL implementation in Python that supports rapid prototyping and is geared towards usability and clarity
Technical Capabilities:
Synchronous system evolution and reactive behaviour
Real-valued time advances for precise simulation of future system behaviour
Automatic calculation of next transition times
Sound simulation and formal verification support
Well-defined operational semantics connecting various language concerns
Pragmatic Design Philosophy
CREST follows a pragmatic approach to DSL development, carefully combining syntactic and semantic principles from well-known modelling formalisms. The language has been formalized with a comprehensive operational semantics, enabling both executable simulation and formal verification through the Python-based tool implementation.
Applications
Home automation systems
Smart office environments
Automated gardening and irrigation systems
Small-scale IoT applications
Cyber-physical systems with continuous resource flows
CREST provides researchers and engineers with a clear, comprehensive framework for modeling, simulating, and verifying hybrid cyber-physical systems, making complex system behaviour accessible through intuitive abstractions.
By bridging the semantic gap, domain-specific language (DSLs) serve an important role in the conquest to allow domain experts to model their systems themselves. In this publication we present a case study of the development of the Continuous REactive SysTems language (CREST), a DSL for hybrid systems modeling. The language focuses on the representation of continuous resource flows such as water, electricity, light or heat. Our methodology follows a very pragmatic approach, combining the syntactic and semantic principles of well-known modeling means such as hybrid automata, data-flow languages and architecture description languages into a coherent language. The borrowed aspects have been carefully combined and formalised in a well-defined operational semantics. The DSL provides two concrete syntaxes: CREST diagrams, a graphical language that is easily understandable and serves as a model basis, and crestdsl, an internal DSL implementation that supports rapid prototyping—both are geared towards usability and clarity. We present the DSL’s semantics, which thoroughly connect the various language concerns into an executable formalism that enables sound simulation and formal verification in crestdsl, and discuss the lessons learned throughout the project.
@unpublished{Klikovits:MODELS2021:JournalFirst,author={Klikovits, Stefan and Buchs, Didier},title={Pragmatic Reuse for DSML Development},month=oct,year={2021},note={Invited Journal First presentation at the 24th International Conference on Model Driven Engineering Languages and Systems (MODELS 21)},}
By bridging the semantic gap, domain-specific language (DSLs) serve an important role in the conquest to allow domain experts to model their systems themselves. In this publication we present a case study of the development of the Continuous REactive SysTems language (CREST), a DSL for hybrid systems modeling. The language focuses on the representation of continuous resource flows such as water, electricity, light or heat. Our methodology follows a very pragmatic approach, combining the syntactic and semantic principles of well-known modeling means such as hybrid automata, data-flow languages and architecture description languages into a coherent language. The borrowed aspects have been carefully combined and formalised in a well-defined operational semantics. The DSL provides two concrete syntaxes: CREST diagrams, a graphical language that is easily understandable and serves as a model basis, and crestdsl, an internal DSL implementation that supports rapid prototyping—both are geared towards usability and clarity. We present the DSL’s semantics, which thoroughly connect the various language concerns into an executable formalism that enables sound simulation and formal verification in crestdsl, and discuss the lessons learned throughout the project.
@article{Klikovits:2020:sosym:crest,author={Klikovits, Stefan and Buchs, Didier},title={{Pragmatic Reuse for DSML Development}},journal={{Software and Systems Modeling (SoSyM)}},doi={10.1007/s10270-020-00831-4},year={2021},volume={20},pages={837-866},}
A Domain-Specific Language Approach To Hybrid CPS Modelling
@phdthesis{klikovits_phdthesis_2019,author={Klikovits, Stefan},title={A Domain-Specific Language Approach To Hybrid CPS Modelling},year={2019},month=jun,school={University of Geneva, Switzerland},note={PhD Thesis},url={https://archive-ouverte.unige.ch/unige:121355},doi={10.13097/archive-ouverte/unige:121355},}
Models of small CPS and IoT applications often use approximated values that describe physical system behaviour. Physical resources, such as electricity consumption and heating power, have to be estimated, since many off-the-shelf components lack the required descriptions. Controllers which are based on these approximations can hence use imprecise models, perform misleading simulation, and cause damaged systems and financial loss. In this paper we present ML4CREST, a machine learning approach to automatically calibrate models using sensor measurements. We show that our approach is well-suited for the calibration of the flow rates within an automated watering system, which allows precise simulation and prevents spillage.
@inproceedings{Klikovits:MDE4IOT:CREST,title={{ML4CREST: Machine Learning for CPS Models}},author={Klikovits, Stefan and Coet, Aur\'{e}lien and Buchs, Didier},year={2018},month=oct,pages={515-520},url={http://ceur-ws.org/Vol-2245/mde4iot_paper_4.pdf},volume={2245},series={CEUR Workshop Proceedings},booktitle={2nd International Workshop on Model-Driven Engineering for the Internet-of-Things (MDE4IoT)},}
This article presents CREST, a novel domain-specific language for the modelling of cyber-physical systems. CREST is designed for the simple and clear modelling, simulation and verification of small-scale systems such as home and office automation, smart gardening systems and similar. The language is designed to model the flow of resources throughout the system. It features synchronous system evolution and reactive behaviour. CREST’s formal semantics allow real-valued time advances and the modelling of timed system evolution. The continuous time concept permits the precise simulation of future system behaviour by automatically calculating next transition times. We present CREST in a practical manner, and elaborate on the Python-based DSL implementation and simulator.
@inproceedings{Klikovits:SAM18:CREST,title={{{CREST}} - {{A DSL}} for {{Reactive Cyber}}-{{Physical Systems}}},isbn={978-3-030-01042-3},booktitle={10th System {{Analysis}} and {{Modeling}} {{Conference}} ({{SAM2018}}). {{Languages}}, {{Methods}}, and {{Tools}} for {{Systems Engineering}}},publisher={{Springer}},series={Lecture Notes in Computer Science},volume={11150},author={Klikovits, Stefan and Linard, Alban and Buchs, Didier},editor={Khendek, Ferhat and Gotzhein, Reinhard},year={2018},month=oct,pages={29-45},doi={10.1007/978-3-030-01042-3_3},}
CREST is a novel modelling language for the definition of Continuous-time, REactive SysTems. This domain-specific language (DSL) targets small cyber-physical systems (CPS) such as home automation systems. While CREST is a graphical language and its systems can be visualised as CREST diagrams, the main form of use is as internal DSL for the Python general purpose programming language. Nevertheless, CREST systems are based on a formal structure and semantics. This report provides this formalisation and elaborates on the design choices that have been made.
@techreport{Klikovits:CRESTFormalization,author={Klikovits, Stefan and Linard, Alban and Buchs, Didier},title={{CREST} Formalization},institution={Software Modeling and Verification Group, University of Geneva},doi={10.5281/zenodo.1284561},year={2018},month=jun,}
The advance of cyber-physical systems in everyday life requires powerful modeling capabilities. Existing formalisms often have severe limitations and require complicated notations. In this paper we introduce CREST, a domain-specific language for modeling entity behavior and resource transfers in CPS. CREST aims to support CPS architects through clarity, comprehensiveness and analyzability.
@inproceedings{DBLP:conf/models/KlikovitsLB17,author={Klikovits, Stefan and Linard, Alban and Buchs, Didier},title={{CREST} - {A} Continuous, REactive SysTems {DSL}},booktitle={5th International Workshop on the {Globalization of Modeling Languages} {(GEMOC} 2017), 19 September 2017, Austin, TX, USA},pages={286--291},year={2017},month=sep,url={http://ceur-ws.org/Vol-2019/gemoc_2.pdf},volume={2019},series={CEUR Workshop Proceedings},}