Chapel (programming language)

Source: Wikipedia, the free encyclopedia.
Chapel
Developer
Hewlett Packard Enterprise (previously Cray Inc.)
First appeared2009; 15 years ago (2009)
Stable release
2.0.0 / March 21, 2024; 22 days ago (2024-03-21)
Apache License 2.0
Filename extensions.chpl
Websitechapel-lang.org
Influenced by
Ada, C#,[1] C, Fortran, C++, Java, HPF, ZPL, Cray MTA / XMT extensions to C and Fortran.[2]

Chapel, the Cascade High Productivity Language, is a

Apache license.[4]

The Chapel compiler is written in C and C++ (C++14). The backend (i.e. the optimizer) is LLVM, written in C++. Python 3.7 or newer is required for some optional components such Chapel’s test system and c2chapel, a tool to generate C bindings for Chapel. By default Chapel compiles to binary executables, but it can also compile to C code, and then LLVM is not used. Chapel code can be compiled to libraries to be callable from C, or Fortran or e.g. Python also supported. Chapel supports GPU programming through code generation for NVIDIA and AMD graphics processing units.[5]

Goals

Chapel aims to improve the programmability of

parallel computers in general and the Cascade system in particular, by providing a higher level of expression than current programming languages do and by improving the separation between algorithmic expression and data structure
implementation details.

The language designers aspire for Chapel to bridge the gap between current

MPI on one side, and newly graduating computer programmers who tend to prefer Java, Python or Matlab with only some of them having experience with C++ or C. Chapel should offer the productivity advances offered by the latter suite of languages while not alienating the users of the first.[2]

Features

Chapel supports a

object-oriented concepts and generic programming features. For instance, Chapel allows for the declaration of locales.[6]

While Chapel borrows concepts from many preceding languages, its parallel concepts are most closely based on ideas from High Performance Fortran (HPF), ZPL, and the Cray MTA's extensions to Fortran and C.

See also

Notes

  1. ^ "Chapel spec (Acknowledgments)" (PDF). Cray Inc. 2015-10-01. Retrieved 2016-01-14.
  2. ^ a b Chamberlain, Bradford L. "A Brief Overview of Chapel" (PDF). Cray Inc. Retrieved 22 April 2015.
  3. .
  4. ^ "Chapel license information". chapel-lang.org. Retrieved November 15, 2015.
  5. ^ "Chapel Technote: GPU Programming". Hewlett Packard Enterprise. 2023-09-28. Retrieved 2023-11-03.
  6. ^ Bongen Gu; Wikuan Yu; Yoonsik Kwak (June 28–30, 2011). "Communication and Computation Overlap through Task Synchronization in Multi-locale Chapel Environment". In James J. Park, Laurence T. Yang and Changhoon Lee (ed.). Future Information Technology, Part I: 6th International Conference. Loutraki, Greece: Springer-Verlag. pp. 285–292. .

References

Further reading

External links