A distributed data and control driven machine: programming and architecture.