Chapel (linguagem de programação) - Chapel (programming language)

Capela
Cray Chapel Logo.png
Paradigma
Espaço de endereço global particionado orientado a objetos
Programação paralela
Projetado por David Callahan, Hans Zima, Brad Chamberlain, John Plevyak
Desenvolvedor Cray Inc.
Apareceu pela primeira vez 2009  ( 2009 )
Versão estável
1.24.1 / 15 de abril de 2021 ; 6 dias atrás  ( 2021-04-15 )
Disciplina de digitação inferida estática
Plataforma multi plataforma
SO Mac OS, Linux, POSIX, Windows (com Cygwin)
Licença Apache 2
Extensões de nome de arquivo .chpl
Local na rede Internet chapel-lang .org
Influenciado por
Ada , C # , C , Fortran , C ++ , Java , HPF , ZPL , extensões Cray MTA / XMT para C e Fortran.

Chapel , a Cascade High Productivity Language , é uma linguagem de programação paralela desenvolvida pela Cray . Ele está sendo desenvolvido como parte do projeto Cray Cascade, um participante no DARPA de Alta Produtividade Computing Sistemas de programa (HPCS), que teve o objetivo de aumentar supercomputador produtividade até o ano de 2010. Ele está sendo desenvolvido como um código aberto do projeto, sob a versão 2 da licença Apache .

Metas

Chapel visa melhorar a programabilidade de computadores paralelos em geral e do sistema Cascade em particular, fornecendo um nível de expressão mais alto do que as linguagens de programação atuais e melhorando a separação entre a expressão algorítmica e os detalhes de implementação da estrutura de dados .

Os designers de linguagem desejam que Chapel preencha a lacuna entre os atuais praticantes de programação HPC , que eles descrevem como usuários de Fortran, C ou C ++ que escrevem código procedural usando tecnologias como OpenMP e MPI de um lado, e programadores de computador recém-formados que tendem a preferir Java, Python ou Matlab com apenas alguns deles tendo experiência com C ++ ou C. Chapel deve oferecer os avanços de produtividade oferecidos pelo último conjunto de linguagens, sem alienar os usuários do primeiro.

Características

Chapel oferece suporte a um modelo de programação paralela multithread em alto nível, suportando abstrações para paralelismo de dados , paralelismo de tarefas e paralelismo aninhado . Ele permite otimizações para a localidade de dados e computação no programa por meio de abstrações para distribuição de dados e colocação de subcomputações orientada por dados. Ele permite a reutilização e a generalidade do código por meio de conceitos orientados a objetos e recursos de programação genéricos . Por exemplo, Chapel permite a declaração de localidades .

Enquanto Chapel empresta conceitos de muitas linguagens anteriores, seus conceitos paralelos estão mais estreitamente com base em idéias de High Performance Fortran (HPF), ZPL , eo MTA Cray 's extensões para Fortran e C .

Veja também

Notas

Referências

  • Chamberlain, Bradford L. (2011). "Chapel (Cray Inc. HPCS Language)". Em Pádua, David (ed.). Enciclopédia de Computação Paralela, Volume 4 . Springer. ISBN   9780387097657 .

Leitura adicional

links externos