Are there specific rules for programming languages applicable to Quantum Computers?
We probably don't yet know enough about the landscape of practical quantum computing devices to lay down the kinds of concrete specifications you're asking for. It also seems to me that there's a big gap between what Assembly Languages and a formalism like CSP brings to the table. So, this question probably has different answers at different levels of hardware and software abstraction.  

What all that being said, "A Layered Software Architecture for Quantum Computing Design Tools" by Svore et. al lays out a framework that I believe cuts across what you're getting it.  It's simply a proposal though, not a specification per se.  The authors do lay out some of the challenges faced when designing quantum computing design tools and programming languages and I think address what you're looking for.  The previously mentioned Liquid language seems to be an an attempt and working off this framework.  

From what I've seen, quantum programming systems typically to work by providing a universal set of elementary gates for quantum circuits and possibly some higher-level primitives for common quantum algorithm components like the Quantum Fourier Transform.  I believe Svore,  et. al. refer to this layer as Quantum Assembly. For example, the two-qubit CNot gate and arbitrary single qubit unitaries are universal for quantum computation. The ability to lay out circuits from these primitives would provide you with the ability to express an arbitrary quantum computation. 

I'd hesitate to call this assembly in the sense that we know it from classical computing as it corresponds to a set of primitives from a low-level abstract model of quantum computation and not to an abstract or concrete instruction set.  Going back to my first comment, it's not clear that we're even sure what kind of quantum instruction set is best at this point.