We give communication-based semantics and reasoning techniques for Polarized SILL, a rich session-typed programming language with general recursion. Its features include channel and code transmission, synchronous and asynchronous communication, and functional programming. Our contributions are distinguished by their faithfulness to the process abstraction, i.e., to the premise that communication is the only observable phenomenon of processes. We give the first observed communication semantics that supports general recursion and code transmission. Observed communication semantics define the meaning of processes in terms of their observed communications. We use this observational semantics to define experiments on processes, and we give a communication-based testing equivalences framework for defining observational simulations and equivalences on processes. This framework captures several natural equivalences, and we show that one of these coincides with barbed congruence, the canonical notion of process equivalence. Polarized SILL is defined using a substructural operational semantics based on multiset rewriting. To ensure that our contributions are well-defined in the presence of non-termination, we introduce fairness for multiset rewriting systems. We construct a fair scheduler, we give sufficient conditions for traces to be fair, and we study the effects of permutation on fair traces.
翻译:我们用基于通信的语义和推理技术为极化 SILL提供基于通信的语义和推理技术,SILL是一种丰富的会话式编程语言,具有一般循环性,其特征包括频道和代码传输、同步和不同步的通信以及功能性编程。我们的贡献以其对过程抽象的忠实性为特征,即通信是唯一可观察的过程现象为前提。我们给出了第一个观测到的通信语义,支持一般循环和代码传输。观测到的通信语义从所观察到的通信中界定了过程的含义。我们用这种观察语义来定义过程实验,我们用基于通信的等同性框架来确定对过程的观测模拟和等同性。这个框架捕捉了几个自然等同性,我们表明其中之一与有刺性的一致性,即过程等同的卡度概念。极化的SILLL是使用基于多位重写方式的亚结构操作语义定义的语义性词义定义。我们的贡献被明确界定在不彻底的状态中,我们引入了对多位重写系统的分析,我们引入了公平性重写系统,我们,我们引入了对等式的追踪的精确性,我们为了一种公平的跟踪。我们,我们进行了公平的研究。