当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
On the Monitorability of Session Types, in Theory and Practice
arXiv - CS - Programming Languages Pub Date : 2021-05-13 , DOI: arxiv-2105.06291
Christian Batrolo Burlò, Adrian Francalanza, Alceste Scalas

In concurrent and distributed systems, software components are expected to communicate according to predetermined protocols and APIs - and if a component does not observe them, the system's reliability is compromised. Furthermore, isolating and fixing protocol/API errors can be very difficult. Many methods have been proposed to check the correctness of communicating systems, ranging from compile-time to run-time verification; among such methods, session types have been applied for both static type-checking, and run-time monitoring. This work takes a fresh look at the run-time verification of communicating systems using session types, in theory and in practice. On the theoretical side, we develop a novel formal model of session-monitored processes; with it, we formulate and prove new results on the monitorability of session types, connecting their run-time and static verification - in terms of soundness (i.e., whether monitors only flag ill-typed processes) and completeness (i.e., whether all ill-typed processes can be flagged by a monitor). On the practical side, we show that our monitoring theory is indeed realisable: building upon our formal model, we develop a Scala toolkit for the automatic generation of session monitors. Our executable monitors can be used to instrument black-box processes written in any programming language; we assess the viability of our approach with a series of benchmarks.

中文翻译:

论会话类型的可监控性,无论是在理论上还是在实践上

在并发和分布式系统中,期望软件组件根据预定的协议和API进行通信-如果组件不遵守它们,则会损害系统的可靠性。此外,隔离和修复协议/ API错误可能非常困难。已经提出了许多方法来检查通信系统的正确性,范围从编译时到运行时验证。在这些方法中,会话类型已应用于静态类型检查和运行时监视。这项工作从理论上和实践上重新审视了使用会话类型的通信系统的运行时验证。从理论上讲,我们开发了一种新的会话监控过程的正式模型;借助它,我们制定并证明了有关会话类型可监控性的新结果,在健全性(即,监视器是否仅标记不良类型的进程)和完整性(即,监视器是否可以标记所有不良类型的进程)方面,将其运行时和静态验证联系起来。在实践方面,我们证明了我们的监控理论确实是可以实现的:在我们的正式模型的基础上,我们开发了一种Scala工具包,用于自动生成会话监控器。我们的可执行监视器可用于检测以任何编程语言编写的黑匣子进程;我们通过一系列基准评估了我们方法的可行性。在我们的正式模型的基础上,我们开发了一个Scala工具箱,用于自动生成会话监视器。我们的可执行监视器可用于检测以任何编程语言编写的黑匣子进程;我们通过一系列基准评估了我们方法的可行性。在我们的正式模型的基础上,我们开发了一个Scala工具箱,用于自动生成会话监视器。我们的可执行监视器可用于检测以任何编程语言编写的黑匣子进程;我们通过一系列基准评估了我们方法的可行性。
更新日期:2021-05-14
down
wechat
bug