-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Standard Library implementation of Char and String? #1796
Comments
Are the strings actually being operated on (operations such as contains, concatenated etc) or are they merely string literals used as e.g. identifiers? In the latter case I would imagine some structured sort containing all possible string literals as elements might be a slightly more readable approach. I can understand that a String sort could be useful, although perhaps modelling the specification faithfully might slow down model checking. |
For my current primary use case, having just string literals would be sufficient. That said, I am concerned that my students might eventually expect string operations, as these are commonly available in other (programming) languages. To manage these expectations, it would be essential to clarify this distinction in the documentation. |
I have given this issue some more thoughts yesterday. |
Currently we have decided not to change the language as it is, because there seem to be only minor benefits with the potential to cause all kinds of changes to the tool set. However, we will keep this issue as a long term issue to see if this can be integrated in case other changes to the language are also integrated that are currently being thought up by some of our PhD students. |
I am currently developing a larger specification for a real-life industrial production system, which we use in our education. One of the objectives of this specification is to incorporate the "Asset Administration Shell" standard for Industrie 4.0 components (IEC TR 62794 & IEC 62832 Digital Factory). This standard heavily relies on common representations of "strings".
To faithfully adhere to the standard, I had to introduce a custom sort "String" While this is technically possible, the implementation becomes quite cumbersome—particularly when it comes to representing digits within strings.
Unfortunately, this scheme also eliminates the possibility of using single-character variables throughout the rest of the specification, which can be a nuisance as well.
Therefore, I would strongly advocate for the inclusion of Characters and Strings in the standard library of data types in a future version of mCRL2.
This addition would not only enhance the functionality of the language but also make it more appealing to my students.
In fact, I often encounter discussions during lectures where I have to justify the absence of these fundamental data types in mCRL2.
The text was updated successfully, but these errors were encountered: