Skip to Main Content
Discussion of the future software increasingly requires a careful distinction between application-facing software and hardware-facing software. Programmers of application-facing software will increasingly have to balance speed, reliability, and accuracy as competing goals. Programmers of hardware-facing software will increasingly have to manage data placement, power consumption, and the choices presented by heterogeneous processors. By making these tradeoffs explicit for both programming environments, we will be able to overcome these challenges and potentially will discover new approaches that are not possible with presently available tools.