descmaker
A tool to parse "Waters/Supremica" files and generate C or Python code from his inside supervisors.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: sciencedirect.com -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (5.3%) to scientific vocabulary
Repository
A tool to parse "Waters/Supremica" files and generate C or Python code from his inside supervisors.
Basic Info
Statistics
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 8
- Releases: 2
Metadata Files
README.md
DEScMaker
This tool can parse a "Waters/Supremica" file (.wmod) and generate code with the same structure of the inside supervisors.
The code generated is independent and don't any requeriment.
File tree
.
├── app
│ ├── descmaker.py
│ ├── descmaker_parser.py
│ ├── descmaker_c_builder.py
│ ├── descmaker_python_builder.py
│ ├── templates_c
│ │ ├── base_code
│ │ └── template
│ ├── templates_esp-idf
│ │ ├── base_code
│ │ └── template
│ ├── templates_python
│ │ ├── base_code
│ │ └── template
│ └── utils.py
├── descmaker.py
└── requirements.txt
Generated Python code file tree
.
├── __init__.py
├── log.csv
├── main.py
├── README.md
└── Supervisor
├── Base
│ ├── Event.py
│ ├── __init__.py
│ ├── __pycache__
│ ├── README.md
│ ├── State.py
│ ├── Supervisor.py
│ └── Transition.py
├── event_handler.py
├── events.py
├── __init__.py
├── logger.py
├── __pycache__
├── README.md
└── supervisors
├── __init__.py
├── __pycache__
├── README.md
└── [sups].py
Generated C code file tree
.
├── CMakeLists.txt
├── lib
│ ├── CMakeLists.txt
│ └── supervisor
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── structure.png
│ ├── sup_debug.h
│ ├── supervisor.c
│ └── supervisor.h
├── README.md
├── run.sh
└── src
├── event_handler
│ ├── event_handler.c
│ ├── event_handler.h
│ ├── events.c
│ └── events.h
├── main.c
└── supervisors
├── [sups].c
├── [sups].h
├── supervisor_list.c
└── supervisor_list.h
Generated code for ESP32 using ESP-IDF file tree
.
├── components
│ ├── supervisor
│ │ ├── CMakeLists.txt
│ │ ├── sup_debug.h
│ │ ├── supervisor.c
│ │ └── supervisor.h
│ ├── event_handler
│ │ ├── CMakeLists.txt
│ │ ├── event_handler.c
│ │ ├── event_handler.h
│ │ ├── events.c
│ │ └── events.h
│ └── supervisors
│ ├── CMakeLists.txt
│ ├── supervisor_list.c
│ ├── supervisor_list.h
│ ├── [sups].c
│ └── [sups].h
├── main
│ ├── CMakeLists.txt
│ └── main.c
└── CMakeLists.txt
How to use
Pre-requisites
Install python3.
Supremica
- For convenience, when synthesizing a supervisor, mark the 'Rename states' option.
- Before send supervisor 'To editor', 'Rename automaton' to remove caracteres and spaces. Keep only letters and numbers.
- Do not name a supervisor as 'supervisor'
Generate code
run python3 descmaker.py -i <input> -o <output> -l <language> -e with terminal to execute the software:
- -i <input> : input file (required)
- -o <output> : output directory. Default: generated_code
- -l <language> : output language. Can be c, python or esp-idf. Default: c
- -e : If present, compile with cmake/gcc and execute the generated code. Default: no execution
In the first run, the script will create the virtual environment and install the dependencies. This can take a while. After that, the script will generate the code.
The script will generate a structure with the same name of the output directory. The folder will contain the generated code, arranged in the same structure of the app/templates_[language]/base_code. Inside generated code also will be a README.md with the instructions to run the code. Now, this can be readed in app/templates_[language]/base_code/README.md.
Visual description
How to cite this work
bibtex
@article{Possato2026,
title = {DEScMaker: A tool for automated code generation for discrete event systems controllers},
journal = {Science of Computer Programming},
volume = {247},
pages = {103350},
year = {2026},
issn = {0167-6423},
doi = {https://doi.org/10.1016/j.scico.2025.103350},
url = {https://www.sciencedirect.com/science/article/pii/S0167642325000899},
author = {Tiago Possato and João H. Valentini and Luiz F.P. Southier and Marco A.C. Barbosa and Marcelo Teixeira},
keywords = {Formal modeling, Automated code generation, Implementation},
}
apa
Possato, T., Valentini, J. H., Southier, L. F. P., Barbosa, M. A. C., & Teixeira, M. (2026). DEScMaker: A tool for automated code generation for discrete event systems controllers. Science of Computer Programming, 247, 103350. https://doi.org/10.1016/j.scico.2025.103350
abnt
POSSATO, T. et al. DEScMaker: A tool for automated code generation for discrete event systems controllers. Science of Computer Programming, v. 247, p. 103350, jan. 2026. Disponível em: <https://www.sciencedirect.com/science/article/pii/S0167642325000899>. Acesso em: dia mes. ano.
Version 2.2.0: esp-idf output adjusted
Owner
- Name: Tiago Possato
- Login: tiagopossato
- Kind: user
- Repositories: 10
- Profile: https://github.com/tiagopossato
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: DEScMaker
message: >-
If you use this software, please cite it using the metadata from this file.
type: software
authors:
- given-names: Tiago
family-names: Possato
email: dev.tiago.possato@gmail.com
affiliation: 'UTFPR, IFC'
orcid: 'https://orcid.org/0000-0002-9285-4331'
- given-names: João H.
family-names: Valentini
email: joaovalentini@alunos.utfpr.edu.br
affiliation: UTFPR
- given-names: Luiz F. P.
family-names: Southier
email: luizsouthier@gmail.com
affiliation: UTFPR
- given-names: Marco A. C.
family-names: Barbosa
affiliation: UTFPR
- given-names: Marcelo
family-names: Teixeira
email: mtex@utfpr.edu.br
affiliation: UTFPR
repository-code: 'https://github.com/tiagopossato/descmaker'
abstract: >-
A software to parse "Waters/Supremica" files and generate
C code from his inside supervisors.
keywords:
- Formal modeling
- Model conversion
- Code generation
license: GPL-3.0+
date-released: '2025-01-14'
GitHub Events
Total
- Create event: 3
- Issues event: 2
- Release event: 3
- Watch event: 5
- Push event: 15
Last Year
- Create event: 3
- Issues event: 2
- Release event: 3
- Watch event: 5
- Push event: 15
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- tiagopossato (3)
Pull Request Authors
- tiagopossato (2)