When I look at QCL (the documentation of the language begins in chapter 3) I don't see a way to compute the tensor product between two q-bits. Is the programming operator &
doing the tensor product's job?
I took a quick look at the QCL paper, it seems that & is shown as concatenation of quantum register, which can be viewed as tensor product of the quantum states in the two operand registers. For tensor product of operators, you can apply them one after the other, but on different qubits: $(A\otimes I)(I\otimes B)=A\otimes B)$.