Programming heterogeneous systems from an image processing domain specific language