Problem
UrPal attempts to give sanity checks as seen in modern IDEs to Uppaal.
While model transformations, property verification and simple static analysis is enough for some sanity checks, more advanced sanity checks based on data/control flow analysis, are beyond what can be easily made in the current Uppaal front-end using the current frameworks (EMF).
Also, modern IDEs have many more features that can be applied to an Uppaal front-end:
Code formatting
Auto completion
In-editor on-the-fly syntax/type checking
Intentions/actions (code manipulations such as extracting expressions to a function).
To implement this into UrPal would require one to work around the many limitations that the current architecture has. Solution
The approach we propose in this issue is to develop an alternative Uppaal front-end using JetBrains MPS.
MPS (meta programming system) is an open-source software tool used to make (domain specific) languages. Differently from traditional text-based languages, MPS-generated languages are edited directly on the AST, instead of on the plain-text representation. This allows us to begin with the existing Uppaal model, and define the editor for this model in any way we want.
In short the following steps need to be made:
[ ] Express the Uppaal meta-model in MPS as concepts in a structure model
[ ] Add a text-gen model to translate MPS models to Uppaal XML models
[ ] Implement editor concepts with text-based representations
[ ] Express data flows / type checking / behaviors / intentions (all models needed for smooth editing)
[ ] Add an graphical editor for template concepts
[ ] Add standalone IDE generator
[ ] Mixin Uppaal front-end features (how to mixin simulator? maybe include the generated IDE as a plugin)
Possible (BIG) master project?
Problem UrPal attempts to give sanity checks as seen in modern IDEs to Uppaal.
While model transformations, property verification and simple static analysis is enough for some sanity checks, more advanced sanity checks based on data/control flow analysis, are beyond what can be easily made in the current Uppaal front-end using the current frameworks (EMF).
Also, modern IDEs have many more features that can be applied to an Uppaal front-end:
To implement this into UrPal would require one to work around the many limitations that the current architecture has.
Solution The approach we propose in this issue is to develop an alternative Uppaal front-end using JetBrains MPS.
MPS (meta programming system) is an open-source software tool used to make (domain specific) languages. Differently from traditional text-based languages, MPS-generated languages are edited directly on the AST, instead of on the plain-text representation. This allows us to begin with the existing Uppaal model, and define the editor for this model in any way we want.
In short the following steps need to be made: