Reppy's language CML extends Standard ML of Milner et al. with primiti
ves for communication. It thus inherits a notion of strong polymorphic
typing and may be equipped with a structural operational semantics. A
s a first step we formulate an effect system for statically expressing
the communication behaviours of CML programs as these are not reflect
ed in the types. As a second step we adapt the structural operational
semantics of CML so as to incorporate behaviours. We then show how typ
es and behaviours evolve in the course of computation: types may decre
ase and behaviours may lose prefixes as well as decrease. As the synta
x of behaviours is rather similar to that of a process algebra our mai
n result may therefore be viewed as regarding the semantics of a proce
ss algebra as an abstraction of the semantics of an underlying program
ming language. This establishes a new kind of connection between ''rea
listic'' concurrent programming languages and ''theoretical'' process
algebras.