https://github.com/ModelingValueGroup/DclareForMPS
Adding declarative, reactive and incremental rules to MPS
https://github.com/ModelingValueGroup/DclareForMPS
declarative jetbrains-mps mps reactive rule-based rules
Last synced: 5 months ago
JSON representation
Adding declarative, reactive and incremental rules to MPS
- Host: GitHub
- URL: https://github.com/ModelingValueGroup/DclareForMPS
- Owner: ModelingValueGroup
- License: lgpl-3.0
- Created: 2018-09-28T10:24:22.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T11:03:24.000Z (over 1 year ago)
- Last Synced: 2024-04-22T12:26:20.010Z (over 1 year ago)
- Topics: declarative, jetbrains-mps, mps, reactive, rule-based, rules
- Language: JetBrains MPS
- Homepage:
- Size: 38.9 MB
- Stars: 21
- Watchers: 8
- Forks: 4
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- mps.rocks - DclareForMPS - Support for the dclare engine in MPS. ([Built with MPS](#built-with-mps) / Languages)
README
DclareForMPS [](https://www.gnu.org/licenses/lgpl-3.0) [](https://github.com/ModelingValueGroup/DclareForMPS/actions)
================================
DclareForMPS adds a language aspect named '_rules_' to MPS.
A rule typically derives some part of a model.
Rules can trigger other rules.
A rule runs when something changes in the models that is read by this rule (reactive).
The system terminates on a fixpoint (if no changes occure anymore).
The regular MPS base-languages can be used to specify the rules.
Rules definitions typically use quotations (light or not) to define the derivations.
The rules are executed incrementally, meaning they perform a minimal amount of changes to derive the defined patterns (
expressed in quotations).## MPS plugin
DclareForMPS is in constant progress.
It is available as a plugin in MPS through the plugin marketplace.All feedback, functional or technical, is appreciated.
## dclare
DclareForMPS uses the dclare engine of the Modeling Value Group.
The dclare project can be found here: [dclare](https://github.com/ModelingValueGroup/dclare)## Installation
1. install JetBrains MPS (2020.1 or higher)
2. start MPS
3. go to the plugins preferences section and install DclareForMPS from the Marketplace
4. open one of the example projects (see below)
5. verify that the 'On' setting is enabled (Settings > Other Settings > Dclare):
4. rebuild the example project
5. play with the sandbox-models in the example-project## Examples
Multiple examples can be found on GitHub:
- [Sudoku](https://github.com/ModelingValueGroup/ex-Sudoku)
- [EntityClassJava](https://github.com/ModelingValueGroup/ex-EntityClassJava)
- [NiamToOO](https://github.com/ModelingValueGroup/ex-NiamToOO)
- [FlattenAndCopy](https://github.com/ModelingValueGroup/ex-FlattenAndCopy)
- [StateMachines](https://github.com/ModelingValueGroup/statemachines)For more info, please read the _README.md_ files that are part of these examples.