Apply is a Domain-Specific Language for image processing and low-level computer vision. Apply allows programmers to write kernel operations that focus on the computation for a single pixel location. The compiler generates code to perform the kernel computation over entire images. The original Apply implementation was developed 20 years ago for efficient processing on parallel architectures. The current-generation Apply compiler targets efficient code generation for general-purpose computers, typically outperforming handwritten code, while maintaining the simplicity of the original language. The use of modern compiler writing tools, specifically Stratego/XT, has facilitated improvements in the language design and made it easy to target the compiler to different environments. A large number of computer vision and image processing operations can be expressed in Apply. However, some algorithms require additional features. To motivate future language development, we analyse the requirement...
Leonard G. C. Hamey