A Domain Semantics for Higher-Order Recursive Processes
The polarized SILL programming language uniformly integrates functional programming and session-based concurrency. It supports recursion, asynchronous and synchronous communication, and higher-order programs that communicate processes. We build on work by Atkey to give the first denotational semantics for a language with these features. Session types are interpreted as domains of bidirectional communications. We use polarity to naturally relate these to pairs of domains of unidirectional communications. Processes denote continuous functions between domains of unidirectional communication. Semantic composition of processes is given by a trace operator. Our semantics validates many expected program equivalences.
READ FULL TEXT