一句话:为同步会话π演算建立基于事件结构的博弈语义,实现完全抽象解释与同步/异步策略编码。
博弈语义与会话类型是消息传递开放程序协议的两个侧面:前者将协议表示为博弈、程序表示为策略,后者用类型规定协议并用良类型 π 演算进程建模程序。但为 π 演算提供忠实模型、将策略精确刻画为编程语言都很困难,且同步会话 π 演算与异步博弈语义之间存在鸿沟。本文提出基于事件结构的同步并发计算博弈语义,为会话 π 演算构建准确模型。该模型给出同步会话 π 演算首个真正并发的、对 barbed congruence 完全抽象的解释,并证明内部会话 π 演算可有限定义异步策略。作者进一步通过调用-返回协议将同步策略忠实编码为异步策略,自动诱导进程层编码,并实现原型来计算会话进程的同步策略解释。
Game semantics and session types are two formalisations of the same concept: message-passing open programs following certain protocols. Game semantics represents protocols as games, and programs as strategies; while session types specify protocols, and well-typed π-calculus processes model programs. Giving faithful models of the π-calculus and giving a precise description of strategies as a programming language are two difficult problems. In this paper, we show how these two problems can be tackled at the same time by building an accurate game semantics model of the session π-calculus. Our main contribution is to fill a semantic gap between the synchrony of the (session) π-calculus and the asynchrony of game semantics, by developing an event-structure based game semantics for synchronous concurrent computation. This model supports the first truly concurrent fully abstract (for barbed congruence) interpretation of the synchronous (session) π-calculus. We further strengthen this correspondence, establishing finite definability of asynchronous strategies by the internal session π-calculus. As an application of these results, we propose a faithful encoding of synchronous strategies into asynchronous strategies by call-return protocols, which induces automatically an encoding at the level of processes. Our results bring session types and game semantics into the same picture, proposing the session calculus as a programming language for strategies, and strategies as a very accurate model of the session calculus. We implement a prototype which computes the interpretation of session processes as synchronous strategies.
@article{paperbot679,
title = {Two sides of the same coin: session types and game semantics: a synchronous side and an asynchronous side},
author = {Simon Castellan and Nobuko Yoshida},
journal = {Proceedings of the ACM on Programming Languages},
volume = {3},
number = {POPL},
year = {2019},
doi = {10.1145/3290340}
}