  Full formal descriptions of algorithms making use of quantum principles must
take into account both quantum and classical computing components and assemble
them so that they communicate and cooperate. Moreover, to model concurrent and
distributed quantum computations, as well as quantum communication protocols,
quantum to quantum communications which move qubits physically from one place
to another must also be taken into account. Inspired by classical process
algebras, which provide a framework for modeling cooperating computations, a
process algebraic notation is defined, named QPAlg for Quantum Process Algebra,
which provides a homogeneous style to formal descriptions of concurrent and
distributed computations comprising both quantum and classical parts. On the
quantum side, QPAlg provides quantum variables, operations on quantum variables
(unitary operators and measurement observables), as well as new forms of
communications involving the quantum world. The operational semantics makes
sure that these quantum objects, operations and communications operate
according to the postulates of quantum mechanics.
