Parallel and distributed architectures and languages