Concurrent ML (CML) is an extension of the functional language Standard ML(SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be very complex and therefore an efficient implementation may be facilitated by knowledge of the topology.
This paper presents an analysis for determining when a bounded number of processes and channels will be generated. The analysis proceeds in two stages. First we extend a polymorphic type system for SML to deduce not only the type of CML programs but also their communication behaviour expressed as terms in a new process algebra. Next we develop an analysis that given the communication behaviour predicts the number of processes and channels required during the execution of the CML program. The correctness of the analysis is proved using a subject reduction property for the type system.
并发ML(CML)是功能语言Standard ML(SML)的扩展,具有用于动态创建过程和通道以及通过通道进行值传递的原语。由于强大的抽象机制,给定程序的通信拓扑可能非常复杂,因此,通过了解拓扑可以促进有效的实现。 P>
本文提出了一种分析方法,用于确定何时将生成有限数量的过程和通道。分析分两个阶段进行。首先,我们扩展了SML的多态类型系统,不仅可以推导出CML程序的类型,还可以推导它们在新的过程代数中表达为术语的通信行为。接下来,我们将进行分析,以给出的通信行为预测CML程序执行过程中所需的进程和通道数。通过类型系统的主题归约特性证明了分析的正确性。 P>
机译:对抽象机器进行抽象:一种高阶程序分析的系统方法
机译:摘录2014年EUROSPINE春季专业会议:QUICK FIRES(并行短通信)
机译:并发高阶命令式程序的模块化推理
机译:具有高阶值传递的功能/并发语言的完整抽象性(扩展摘要)
机译:经验证的功能程序编译的高阶抽象语法方法。
机译:低维几何和拓扑特殊功能从封面开始:低维拓扑中的高阶相交
机译:具有有限通信拓扑的高阶并发程序(扩展摘要)