Non-Blocking Concurrent Imperative Programming with Session Types

Concurrent C0 is an imperative programming language in the C family with session-typed message-passing concurrency. The previously proposed semantics implements asynchronous (non-blocking) output; we extend it here with non-blocking input. A key idea is to postpone message reception as much as possi...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Electronic proceedings in theoretical computer science Ročník 238; číslo Proc. LINEARITY 2016; s. 64 - 72
Hlavní autori: Silva, Miguel, Florido, Mário, Pfenning, Frank
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: Open Publishing Association 17.01.2017
ISSN:2075-2180, 2075-2180
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Popis
Shrnutí:Concurrent C0 is an imperative programming language in the C family with session-typed message-passing concurrency. The previously proposed semantics implements asynchronous (non-blocking) output; we extend it here with non-blocking input. A key idea is to postpone message reception as much as possible by interpreting receive commands as a request for a message. We implemented our ideas as a translation from a blocking intermediate language to a non-blocking language. Finally, we evaluated our techniques with several benchmark programs and show the results obtained. While the abstract measure of span always decreases (or remains unchanged), only a few of the examples reap a practical benefit.
ISSN:2075-2180
2075-2180
DOI:10.4204/EPTCS.238.7