An Approach to the Semantics of Parallel Programs