Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specify the broadcast semantics of mini-protocol programs #95

Open
jeltsch opened this issue Dec 9, 2023 · 0 comments
Open

Specify the broadcast semantics of mini-protocol programs #95

jeltsch opened this issue Dec 9, 2023 · 0 comments

Comments

@jeltsch
Copy link
Contributor

jeltsch commented Dec 9, 2023

We shall specify a semantics that translates mini-protocol programs into Þ-calculus processes, using broadcast communication for communication between parties. This semantics is only intended for programs that conform to some possibilities, which excludes programs that use pipelining.

Concretely, the broadcast semantics shall have the following characteristics:

  1. Communication is handled using a single medium for ordered transmission as described in Add support for ordered transmission thorn-calculus#128.
  2. Each party maintains a single cursor, which is its receiving position within the ordered-transmission medium.
  3. Each party fetches all messages, also those that it has sent itself.
  4. The parties use their cursors also for sending.

Item 4 doesn’t cause problems, because of item 3: when a party has agency, it has received all messages, and consequently its receiving position coincides with the position that it should use for sending.

The broadcast semantics shall be subject to some additional constraints, which it shares with the multicast semantics described in #96:

  • Cursors for sending and receiving messages between parties are introduced locally.
  • Whenever a program receives a message that it cannot handle, it uses the to get an unspecified follow-up program instead of making the behavior unspecified in a different way. This is because the documentation of the -construct says the following:

    ↓ M. 𝔒 M receives a message M from a peer and continues like the (𝔒 M).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant