Current parallel programming languages support only a narrow range of programming styles; force programmers to bind the specification of parallelism too early in program development; and limit the class of architectures for which they are effective. This paper presents a model for parallel programming based on uniform encapsulation and control, concurrent operations on objects, synchronous invocation with early reply, references to code in an environment, and a copy model of parameters and variables. This simple, coherent model enables programmers to use different styles of programming and to bind parallelism late in program development. In addition, the model may be efficiently implemented on a wide range of multiprocessor architectures.