Structural-tree frontend for dynamic processes #
This file turns the structural concurrent syntax into a frontend for the
dynamic Concurrent.Process core.
The present frontend keeps one important design choice from the original
structural execution story: one process step corresponds to exactly one
scheduled structural frontier event. The dynamic process step therefore uses a
single move type Front S, but its node semantics record:
- the full controller path
Control.controllers control eventassociated to each chosen frontier eventevent; and - the current local view
Current.view me control profileof that same frontier event for each partyme.
So the structural tree language remains an important source language, but the dynamic process core is now the semantic center.
currentStep st is the one-step process view of the structural residual state
st.
Its move type is the current structural frontier Front st.spec. The
controller-path contribution of each move is exactly
Control.controllers st.control, and the local view of that move is exactly
Current.view me st.control st.profile.
Instances For
eventOfTranscript st tr forgets the trivial done tail of the process step
transcript and recovers the scheduled structural frontier event.
Instances For
transcriptOfEvent st event re-expresses a structural frontier event as the
corresponding one-step process transcript.
Instances For
toProcess compiles the structural concurrent-tree frontend into the dynamic
Concurrent.Process core.
Each process state is one packaged structural residual state, and each process
step is the current frontier interaction produced by State.currentStep.
Instances For
ofLinearization control profile trace converts a structural frontier trace
into the corresponding dynamic process execution trace of Tree.toProcess.