is a Tcl package that is a suitable target for translating executable software models into Tcl programs. From the executable model point of view, ROSEA
maps model level concepts onto Tcl language constructs. Translation is accomplished by describing the executable model in a domain specific language. Afterwards, a code generator creates data used by a run time component to execute the modeled system.
From the Tcl point of view, ROSEA
is an object system based on namespace ensembles and uses TclRAL
to store class data. The ROSEA
object system includes direct support for:
- Referential integrity checks with transparent transactions on the class model.
- Declarative specification of state models that are associated with a class.
- Singleton state models used to serialize competitive relationships.
- Signaling events between state models.
- Navigating relationships between classes to find the related instances.
- Class based operations
- Instance based operations
- current release
- release time
Literate Program Documentation
Manual Page Documentation
Tcl 2015 Paper on ROSEA
Online Bookstore ExampleAPN
This is pretty impressive, both the software and the documentation. Is this used in production or more of a research project?GAM
Rosea is the result of a long time interest of mine in more formal methods of software development. I have several users of rosea that use it for production software and, of course, I use it myself.