Compiler support for productive message-driven parallel programming