一句话:提出多主动对象编程模型,用 ProActive 库和 MultiASP 语言形式化,并给出协作式多线程主动对象到多主动对象的编译。
主动对象编程模型为并发与分布式系统提供高层抽象,但现有框架很少考虑主动对象内部的多线程执行;受控并行可克服其部分局限。本文提出多主动对象编程模型的完整框架:通过提供多主动对象的 Java 库 ProActive 和用于形式化的编程语言 MultiASP 呈现模型,并研究如何将带协作式多线程的主动对象语言编译为多主动对象。文章还给出多个用例与开发支持,说明其实际可用性,并通过对模型和编译器的形式化,保证多主动对象模型行为及编译正确性。
In order to tackle the development of concurrent and distributed systems, the active object programming model provides a high-level abstraction to program concurrent behaviours. There exists already a variety of active object frameworks targeted at a large range of application domains: modelling, verification, efficient execution. However, among these frameworks, very few consider a multi-threaded execution of active objects. Introducing controlled parallelism within active objects enables overcoming some of their limitations. In this paper, we present a complete framework around the multi-active object programming model. We present it through ProActive, the Java library that offers multi-active objects, and through MultiASP, the programming language that allows the formalisation of our developments. We then show how to compile an active object language with cooperative multi-threading into multi-active objects. This paper also presents different use cases and the development support to illustrate the practical usability of our language. Formalisation of our work provides the programmer with guarantees on the behaviour of the multi-active object programming model and of the compiler.