forsyde / forsyde-atom

A shallow-embedded DSL for modeling cyber-physical systems
https://forsyde.github.io/forsyde-atom/
BSD 3-Clause "New" or "Revised" License
3 stars 2 forks source link

Split MoC class into Timed and Untimed #23

Closed ugeorge closed 7 years ago

ugeorge commented 7 years ago

The current MoC class is over-encumbered by type wrappers, which makes the atom implementation unreadable and the execution extremely slow, even if it should not be the case. This is due to an earlier decision to group all MoC atoms under the same interfaces, to demonstrate the independence of the atom semantics from their composition. This decision did not pay off due to the over-complicated programming model and the constant rely on wrappers and helper functions for instantiating even the simplest of processes.

While the theoretical framework still defines a generic formulation for all MoCs, the implementation should step away from this mindset due to limitations of the host language. In this sense, the forsyde-atom library shall implement timed and untimed MoCs as separate classes (i.e. having different type signatures, thus different pattern constructors).

ugeorge commented 7 years ago

An efficient format covering all MoCs has been developed. The separation is not mandatory.