• Harlan: uma Nova Linguagem de Programação para GPU

    Harlan, a linguagem de programação jovem, declarativa e de domínio específico, promete simplificar o desenvolvimento de aplicações que rodam na GPU. Por trás de seu desenvolvimento está Erik Holk, um pesquisador da Indiana University. A sintaxe da linguagem por si mesma é baseada na Scheme, um dialeto da linguagem de programação funcional Lisp. Vale ressaltar que vários criadores de linguagem de programação acreditam ser o Lisp a ancestral da maioria das atuais linguagens de programação consideradas boas.


    Exemplo de trecho de código em linguagem Harlan.

    A linguagem Harlan tem como objetivo ajudar os desenvolvedores a fazer uso produtivo e eficiente das GPUs sem que seja necessário manipular as tarefas de programação das rotinas para GPU, o que pode distrair o mesmo de seu trabalho atual. Essa linguagem foi criada como necessidade, após investigação de quais caracteres são necessários para uma linguagem que seja projetada no zero para suportar programação para GPU. Outros conceitos tendem a assumir que a programação GPU precisa ser embarcada em uma linguagem existente, o que significa (por exemplo) que, as características especiais dessa linguagem para o sistema existente precisa ser considerada.

    É claro que, existem outras linguagens e modelos de programação utilizados para a programação para GPU - como por exemplo o OpenCL e CUDA - a linguagem Harlan, por si mesmo, é compilada para OpenCL, e as implementações do OpenCL SDK da Intel, o CUDA Toolkit da NVIDIA e o APP (Accelerated Parallel Processing) SDK da AMD, parecem funcionar com OpenCL gerado. Em contraste com essas abordagens, a nova linguagem tem como objetivo oferecer abstrações para programação que sejam mais familiares para as linguagens mais centradas em hardware como Python ou Ruby. Erik Holk também adicionou algumas novidades de linguagens de programação funcional, como por exemplo um interpretador para funções lambda e o suporte para procedures de alta-ordem.

    A linguagem de programação Scheme foi utilizada como base para a construção do Harlan, por motivos históricos da própria Indiana University, devido a experiência acumulada existente nesta instituição para a construção de compiladores baseados em Scheme. Holk também adquiriu experiência em programação para GPU trabalhando com a linguagem de programação Rust que, diferente da harlan, ela trabalha bem mais próxima do hardware. E por que o nome "Harlan" para uma linguagem de programação? Holk revelou que o nome Harlan veio de um erro de leitura do primeiro nome do Coronel Sanders, criador do KFC, que se chamava Harland. Essa associação também é o motivo do uso da extensão .kfc para todos os arquivos na linguagem Harlan.

    O código fonte do Harlan está disponível para download via GitHub e protegido sob uma licença estilo BSD.

    Saiba Mais:

    - Heise Online: Harlan: A new GPU programming language (em Inglês)