A Domain Semantics for Higher-Order Recursive Processes

02/05/2020
by   Ryan Kavanagh, et al.
0

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

page 1

page 2

page 3

page 4

04/02/2021

Fairness and Observed Communication Semantics for Session-Typed Languages

Observed communication semantics provide an intuitive notion of equivale...
04/24/2018

Connectors meet Choreographies

We present Cho-Reo-graphies (CR), a new language model that unites two p...
08/31/2020

Substructural Observed Communication Semantics

Session-types specify communication protocols for communicating processe...
08/26/2017

The Unfolding Semantics of Functional Programs

The idea of using unfolding as a way of computing a program semantics ha...
06/17/2011

Extensional Higher-Order Logic Programming

We propose a purely extensional semantics for higher-order logic program...
01/21/2021

Complete trace models of state and control

We consider a hierarchy of four typed call-by-value languages with eithe...
06/15/2020

Parametrized Fixed Points on O-Categories and Applications to Session Types

O-categories generalize categories of domains to provide just the struct...