Skip to main content

A Continuous REactive SysTems DSL

Project description

CREST - A Continuous REactive SysTems DSL

Build Status PyPI Documentation Status codecov (I know, I know, I'm really busy though...)

Binder <-- Launch this repository and play with CREST directly in your browser!


Introduction

CREST is a novel modelling language for the definition of Continuous-time, REactive SysTems. It is a domain-specific language (DSL) targets small cyber-physical systems (CPS) such as home automation systems. Specifically, it focusses on the flow and transfer of resources within a CPS. 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.

Try me !

CREST uses Docker, Jupyter notebooks and Binder to create, edit and simulate interactive models online.

You can try CREST yourself by clicking on this link (or on the "launch binder" badge above).

You will find several notebooks that will introduce CREST's Syntax & Semantics and Simulation. You can also just launch the docker container on binder (click the badge) and create a new notebook. You can then create and simulate your own models.

Installation

Recommended: Download/clone this repository and use the sources. The easiest way is to use the latest version of CREST is to either launch it on Binder (see above), or create a local Docker image (scripts/docker-build.sh) and then run it (scripts/docker-run.sh). Alternatively you can use repo2docker.

Local install: You can also use CREST locally and install the dependencies manually. See the Dockerfile for information about the tools and libraries that are used. CREST also requires Microsoft's Z3Prover to be installed (including the Python API).

Soon: A pip-install is in the pipelines but has been delayed due to publication season :-)


Publications

Stefan Klikovits, Auélien Coet and Didier Buchs: ML4CREST: Machine Learning for CPS Models . 2nd International Workshop on Model Driven Engineering for the Internet-of-Things (MDE4IOT), Copenhagen, 2018
@InProceedings{Klikovits:MDE4IOT:ML4CREST,
    title = {{ML4CREST}: Machine Learning for CPS Models},
    author = {Stefan Klikovits and Aur\'{e}lien Coet and Didier Buchs},
    booktitle = {2nd International Workshop on Model Driven Engineering for the Internet-of-Things (MDE4IOT), Copenhagen, Denmark, October 15, 2018. Proceedings},
    year = {2018},
}
    
Stefan Klikovits, Alban Linard and Didier Buchs: CREST - A DSL for Reactive Cyber-Physical Systems. 10th System Analysis and Modeling Conference (SAM) 2018
@InProceedings{Klikovits:SAM18:CREST,
    title = {{CREST} - A {DSL} for Reactive Cyber-Physical Systems},
    author = {Stefan Klikovits and Alban Linard and Didier Buchs},
    booktitle = {10th International System Analysis and Modeling Conference (SAM 2018), Copenhagen, Denmark, October 15-16, 2018. Proceedings},
    year = {2018},
    pages = {29-45},
    isbn = {978-3-030-01041-6}
}
    
Stefan Klikovits, Alban Linard, and Didier Buchs: CREST Formalization. Technical Report. Software Modeling and Verification Group, University of Geneva. 2018
@techreport{Klikovits:CRESTFormalization:2018,
    author = {Stefan Klikovits and Alban Linard and Didier Buchs},
    title = {{CREST} Formalization},
    institution = {Software Modeling and Verification Group, University of Geneva},
    doi = {10.5281/zenodo.1284561},
    year = {2018}
}
Stefan Klikovits, Alban Linard, Didier Buchs: CREST - A Continuous, REactive SysTems DSL. MODELS (Satellite Events) 2017: 286-291
@inproceedings{Klikovits:CREST:Gemoc:2017,
  author    = {Stefan Klikovits and
               Alban Linard and
               Didier Buchs},
  title     = {{CREST} - {A} Continuous, REactive SysTems {DSL}},
  booktitle = {Proceedings of {MODELS} 2017 Satellite Event: Workshops (ModComp,
               ME, EXE, COMMitMDE, MRT, MULTI, GEMOC, MoDeVVa, MDETools, FlexMDE,
               MDEbug), Posters, Doctoral Symposium, Educator Symposium, {ACM} Student
               Research Competition, and Tools and Demonstrations co-located with
               {ACM/IEEE} 20th International Conference on Model Driven Engineering
               Languages and Systems {(MODELS} 2017), Austin, TX, USA, September,
               17, 2017.},
  pages     = {286--291},
  year      = {2017},
  url       = {http://ceur-ws.org/Vol-2019/gemoc\_2.pdf}
}

Thanks

  • to Prof. Didier Buchs and the University of Geneva or enabling me to do this research project
  • to the Jupyterhub and Binder teams for providing their amazing service

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crestdsl-0.5.1.tar.gz (137.3 kB view details)

Uploaded Source

Built Distribution

crestdsl-0.5.1-py3-none-any.whl (172.5 kB view details)

Uploaded Python 3

File details

Details for the file crestdsl-0.5.1.tar.gz.

File metadata

  • Download URL: crestdsl-0.5.1.tar.gz
  • Upload date:
  • Size: 137.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for crestdsl-0.5.1.tar.gz
Algorithm Hash digest
SHA256 df362d2a0ea1b09e830bfa9e41821ef0fc0f04530fb6b0db3d4d0d162a240140
MD5 db6c665841f695081b2f992251aa1b95
BLAKE2b-256 c2a5e75a29afbcd27217ded73f165bc710dce65edbe340b857e6ce6e84d13bd8

See more details on using hashes here.

File details

Details for the file crestdsl-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: crestdsl-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 172.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for crestdsl-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e1e1b9924d33cc07b191beddc720f72d9dc8e3a54e66080d34fecc7772d27c42
MD5 a5bd8aadaf32083b2ea99e55f8739565
BLAKE2b-256 9230930fbf08782c7ecbb45cc71bc407bf79d1a7cc2b9b1a51857c0eb57e8d67

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page