42: programmable models of computation for a component-based approach to heterogeneous embedded systems