Languages and Compilers for Parallel Computing