CREST

Continuous REactive SysTems Modelling in Python

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.

Related Publications

(Klikovits & Buchs, 2021)(Klikovits & Buchs, 2021)(Klikovits, 2019)(Klikovits et al., 2018)(Klikovits et al., 2018)(Klikovits et al., 2018)(Klikovits et al., 2017)
  1. Pragmatic Reuse for DSML Development
    Stefan Klikovits and Didier Buchs
    Oct 2021
    Invited Journal First presentation at the 24th International Conference on Model Driven Engineering Languages and Systems (MODELS 21)
  2. Pragmatic Reuse for DSML Development
    Stefan Klikovits and Didier Buchs
    Software and Systems Modeling (SoSyM), Oct 2021
  3. A Domain-Specific Language Approach To Hybrid CPS Modelling
    Stefan Klikovits
    University of Geneva, Switzerland, Jun 2019
    PhD Thesis
  4. ML4CREST: Machine Learning for CPS Models
    Stefan Klikovits, Aurélien Coet, and Didier Buchs
    In 2nd International Workshop on Model-Driven Engineering for the Internet-of-Things (MDE4IoT), Oct 2018
  5. CREST - A DSL for Reactive Cyber-Physical Systems
    Stefan Klikovits, Alban Linard, and Didier Buchs
    In 10th System Analysis and Modeling Conference (SAM2018). Languages, Methods, and Tools for Systems Engineering, Oct 2018
  6. CREST Formalization
    Stefan Klikovits, Alban Linard, and Didier Buchs
    Jun 2018
  7. CREST - A Continuous, REactive SysTems DSL
    Stefan Klikovits, Alban Linard, and Didier Buchs
    In 5th International Workshop on the Globalization of Modeling Languages (GEMOC 2017), 19 September 2017, Austin, TX, USA, Sep 2017