Java code often assumes similar to C or C++, but in fact, the concepts are very different. So the systemC patterns developed in C++ do not really fit into this different world. On the otherhand, there are a lot of useful mechansims in java that might be useful for prototyping. As a result, spin got patterns that look similar to systemC, and new mechanisms that look very different.
A port in spin is just a kind of connector. Connectors are elements that can be connected with the connectTo method. In spin there are no wiring elements like systemC signals. Instead connectors (e.g ports) are connected directly.
Beside normal and threaded process, there are additional specialized processes (e.g. Statemachine) available. Reasons are:
- Simplify non-threaded Processes.
- Ready to use patterns to ease development.
- Force the user to use special patterns to enable transformation of the prototyping code into hardware patterns.
Processes are driven by time and/or sensitivity. Default sensitivity allows to trigger a process when a port has changed or modified its value. By deriving the default sensitivity class, the developer can define more concrete conditions when to trigger a certain process.