  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.

Programming Languages