Harlan: a Language That Simplifies GPU Programming
hypnosec writes "Harlan – a declarative programming language that simplifies development of applications running on GPU has been released by a researcher at Indiana University. Erik Holk released his work publicly after working on it for two years. Harlan's syntax is based on Scheme – a dialect of LISP programming language. The language aims to help developers make productive and efficient use of GPUs by enabling them to carry out their actual work while it takes care of the routine GPU programming tasks. The language has been designed to support GPU programming and it works much closer to the hardware."
Also worth a mention is Haskell's GPipe interface to programmable GPUs.
Scheme/lisp was a bit helpful in the way it has a lot of features simplifying code generation. In fact, lisp is ultimate example of programmers bending towards making things easiest for compilers. It is a lot easier to transform lisp-like code into other representation - you don't really need to write lex/bison-like parser part of the grammar, you can immediately start with transforms.
But it doesn't make it simplier for people using the final language - just for the guy writing the compiler. You have to be masochist to prefer to write
(define (point-add x y)
(match x
((point3 a b c)
(match y
((point3 x y z)
(point3 (+ a x) (+ b y) (+ c z)))))))
instead of something like
define operator+(point3 a, point3 b) = point3(a.x+b.x,a.y+b.y,a.z+b.z)
Lisp makes writing DSLs easy - but resulting DSLs are still Lisp. In the era of things like XText, which provide full IDE with autocompletion, project management, outlines etc on top of your DSL, there is no real excuse to make things harder then needed