Productivity With Performance: Property/Behavior-Based Automated Composition Of Parallel Programs From Self-Describing Components