Message-passing software systems exhibit non-trivial forms of concurrency and distribution; they are expected to follow intended protocols among communicating services, but also to never "get stuck". This intuitive requirement has been expressed by liveness properties such as progress or (dead)lock freedom and various type systems ensure these properties for concurrent processes. Unfortunately, very little is known about the precise relationship between these type systems and the classes of typed processes they induce. This paper puts forward the first comparative study of different type systems for message-passing processes that guarantee deadlock freedom. We compare two classes of deadlock-free typed processes, here denoted L and K. The class L stands out for its canonicity: it results from Curry-Howard interpretations of linear logic propositions as session types. The class K, obtained by encoding session types into Kobayashi's linear types with usages, includes processes not typable in other type systems. We show that L is strictly included in K, and identify the precise conditions under which they coincide. We also provide two type-preserving translations of processes in K into processes in L.
翻译:信件传递软件系统显示的是非三重货币和分配形式; 它们预计将遵循通信服务之间的预定协议, 但也永远不会“ 被卡住 ” 。 这一直觉要求表现为进步或( 死) 锁自由等活性特性, 以及各种类型系统确保这些特性可以同时进行 。 不幸的是, 这些类型系统及其引发的打字程序类别之间的确切关系鲜为人知。 本文展示了对保证僵局自由的不同电传程序类型系统的首次比较研究。 我们比较了两类无僵局打字程序, 这里标注了 L 和 K 。 L 类显示的是它的卡通性: 它来自Curry- Howard对线性逻辑建议作为会话类型的解释。 K类通过编码会话类型获得的、使用Kobayashi的线性类型, 包括其他类型系统中无法打字的程序。 我们显示, L 严格包含在 K 中, 并确定了它们相匹配的准确条件 。 我们还提供了将 K 中的程序转换成L 的两种类型 。