High-level directives to drive the allocation of parallel object-oriented applications