Table 2.
Asbru | EON | GLIF | PROforma | |
---|---|---|---|---|
Basic control-flow | ||||
1. Sequence | + | + | + | + |
2. Parallel split | + | + | + | + |
3. Synchronization | + | + | + | + |
4. Exclusive choice | + | + | + | + |
5. Simple merge | + | + | + | + |
Advanced branching and synchronization | ||||
6. Multichoice | + | + | + | + |
7. Structured synchronizing merge | +/− | − | − | + |
8. Multimerge | − | − | − | − |
9. Structured discriminator | + | + | + | + |
Structural patterns | ||||
10. Arbitrary cycles | − | + | + | − |
11. Implicit termination | + | + | + | + |
Multiple instances patterns | ||||
12. MI without synchronization | − | − | − | − |
13. MI with a priori design-time knowledge | +/− | +/− | +/− | +/− |
14. MI with a priori run-time knowledge | − | − | − | − |
15. MI without a priori run-time knowledge | − | − | − | − |
State-based patterns | ||||
16. Deferred choice | + | − | + | + |
17. Interleaved parallel routing | + | − | − | − |
18. Milestone | − | − | − | + |
Cancellation patterns | ||||
19. Cancel activity | + | + | + | + |
20. Cancel case | + | − | +/− | + |
New patterns | ||||
21. Structured loop | + | + | + | + |
22. Recursion | + | − | − | − |
23. Transient trigger | − | − | − | + |
24. Persistent trigger | − | − | + | + |
25. Cancel region | − | − | − | − |
26. Cancel multiple instance activity | + | − | + | + |
27. Complete multiple instance activity | + | − | − | + |
28. Blocking discriminator | − | − | − | − |
29. Canceling discriminator | + | − | − | + |
30. Structured N-out-of-M join | + | − | + | + |
31. Blocking N-out-of-M join | − | − | − | − |
32. Canceling N-out-of-M join | − | − | − | + |
33. Generalized AND-join | − | − | − | − |
34. Static N-out-of-M join for MIs | − | − | − | − |
35. Static N-out-of-M join for MIs with cancellation | − | − | − | − |
36. Dynamic N-out-of-M join for MIs | − | − | − | − |
37. Acyclic synchronizing merge | − | − | − | + |
38. General synchronizing merge | − | − | − | − |
39. Critical section | + | − | + | − |
40. Interleaved routing | + | − | + | − |
41. Thread merge | − | − | − | − |
42. Thread split | − | − | − | − |
43. Explicit termination | − | − | − | − |
(+) full support; (+/−) partial support; (−) no support.
MI = multiple instances.